Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
Добрый день.Сгорел сервер и диск с бекапами баз sql2008r2, сами файлы баз данных остались. Но подключить их на другом серваке не получается ни через Manadgment studio ни командами. Перекопал весь интернет уже, не знаю что делать. Может кто поможет?? Заранее благодарен
9 сен 12, 18:27    [13136819]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
qwerty112
Guest
dexis
Добрый день.Сгорел сервер и диск с бекапами баз sql2008r2, сами файлы баз данных остались. Но подключить их на другом серваке не получается ни через Manadgment studio ни командами. Перекопал весь интернет уже, не знаю что делать. Может кто поможет?? Заранее благодарен

такая ошибка ?

К сообщению приложен файл. Размер - 5Kb
9 сен 12, 18:59    [13136911]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
===================================

Действие Присоединить базу данных завершилось неудачно для объекта "Сервер" "SF-ZD". (Microsoft.SqlServer.Smo)

------------------------------
Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1600.1+((KJ_RTM).100402-1539+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Присоединить+базу+данных+Server&LinkId=20476

------------------------------
Расположение программы:

в Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)
в Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabaseData.PrimaryFile.Attach()
в Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabase.SendDataToServer()

===================================

При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)

------------------------------
Расположение программы:

в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType)
в Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries)
в Microsoft.SqlServer.Management.Smo.Server.AttachDatabaseWorker(String name, StringCollection files, String owner, AttachOptions attachOptions)
в Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)

===================================

Произошла ошибка во время обработки журнала для базы данных "БП1.6(27072009)". Если возможно, восстановите из резервной копии. Если резервная копия недоступна, возможно, понадобится перестроить журнал.
Невозможно открыть новую базу данных "БП1.6(27072009)". Операция CREATE DATABASE прервана. (.Net SqlClient Data Provider)

------------------------------
Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=9004&LinkId=20476

------------------------------
Имя сервера: (local)
Номер ошибки: 9004
Серьезность: 21
Состояние: 1
Номер строки: 1


------------------------------
Расположение программы:

в Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
в Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
9 сен 12, 19:00    [13136916]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
qwerty112
Guest
dexis
===================================
Произошла ошибка во время обработки журнала для базы данных "БП1.6(27072009)". Если возможно, восстановите из резервной копии. Если резервная копия недоступна, возможно, понадобится перестроить журнал.
Невозможно открыть новую базу данных "БП1.6(27072009)". Операция CREATE DATABASE прервана. (.Net SqlClient Data Provider)

имхо, сообщение "намекает" на это
F1
To attach a database
CREATE DATABASE database_name 
    ON <filespec> [ ,...n ] 
    FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
        | ATTACH_REBUILD_LOG }


или попытаетесь подключить только файл данных - sp_attach_single_file_db
(?)
9 сен 12, 19:43    [13136958]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
USE master;
GO
EXEC sp_detach_db @dbname = 'БП1.6(2008)';
EXEC sp_attach_single_file_db @dbname = 'БП1.6(2008)',
@physname = N'C:\base\БП1.6(2008).mdf';
пишет:
Сообщение 15010, уровень 16, состояние 1, процедура sp_detach_db, строка 34
База данных "БП1.6(2008)" не существует. Введите допустимое имя базы данных. Просмотреть доступные базы данных можно при помощи хранимой процедуры sys.databases.
Сбой при активации файла. Возможно, физическое имя файла "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6(2008)_1.LDF" неправильное.
Создан новый файл журнала "C:\base\БП1.6(2008)_log.LDF".
Сообщение 1813, уровень 16, состояние 2, строка 1
Невозможно открыть новую базу данных "БП1.6(2008)". Операция CREATE DATABASE прервана.
Сообщение 15010, уровень 16, состояние 1, процедура sp_detach_db, строка 34
База данных "БП1.6(2008)" не существует. Введите допустимое имя базы данных. Просмотреть доступные базы данных можно при помощи хранимой процедуры sys.databases.
Сбой при активации файла. Возможно, физическое имя файла "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6(2008)_1.LDF" неправильное.
Сообщение 5170, уровень 16, состояние 1, строка 1
Невозможно создать файл "C:\base\БП1.6(2008)_log.LDF", так как он уже существует. Измените путь файла или его имя, после чего повторите операцию.
Сообщение 1813, уровень 16, состояние 2, строка 1
Невозможно открыть новую базу данных "БП1.6(2008)". Операция CREATE DATABASE прервана.




CREATE DATABASE БП
ON (FILENAME = 'C:\BASE\БП1.6(2008).mdf'),
(FILENAME = 'C:\BASE\БП1.6(2008)_log.ldf' )
FOR ATTACH_REBUILD_LOG ;
пишет:
Сообщение 1813, уровень 16, состояние 2, строка 1
Невозможно открыть новую базу данных "БП". Операция CREATE DATABASE прервана.
Сообщение 1813, уровень 16, состояние 2, строка 1
Невозможно открыть новую базу данных "БП". Операция CREATE DATABASE прервана.
Сообщение 9004, уровень 21, состояние 1, строка 1
Произошла ошибка во вр
9 сен 12, 21:04    [13137162]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
Еще ... со старого сервера в принципе удалось скопировать всю папку sql, может подсунуть оттуда какие нибудь файлы чтоб подцепились базы? Пробовал тупо заменить все папки с файлами - но служба не запустилась.
9 сен 12, 21:14    [13137177]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
qwerty112
Guest
dexis,

убери вообще файл лога,
и из каталога и из команды атача

как-то так
CREATE DATABASE БП
ON (NAME = БП_data, FILENAME = 'C:\BASE\БП1.6(2008).mdf')
FOR ATTACH_REBUILD_LOG ;
9 сен 12, 21:22    [13137193]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
пишет:
Сбой при активации файла. Возможно, физическое имя файла "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6(2008)_1.LDF" неправильное.
Создан новый файл журнала "C:\BASE\БП_log.LDF".
Сообщение 1813, уровень 16, состояние 2, строка 1
Невозможно открыть новую базу данных "БП". Операция CREATE DATABASE прервана.
Сбой при активации файла. Возможно, физическое имя файла "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6(2008)_1.LDF" неправильное.
Сообщение 5170, уровень 16, состояние 1, строка 1
Невозможно создать файл "C:\BASE\БП_log.LDF", так как он уже существует. Измените путь файла или его имя, после чего повторите операцию.
Сообщение 1813, уровень 16, состояние 2, строка 1
Невозможно открыть новую базу данных "БП". Операция CREATE DATABASE прервана.
9 сен 12, 21:29    [13137212]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
На момент выполнения инструкции create database ... for attach_rebuild_log в папке C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA файла БП1.6(2008)_1.LDF быть не должно.
9 сен 12, 22:36    [13137420]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
В том то и дело что этого файла там нет. Не пойму почему ошибка связана именно с ним
9 сен 12, 22:45    [13137456]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
dexis
В том то и дело что этого файла там нет. Не пойму почему ошибка связана именно с ним
А путь C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA есть?
9 сен 12, 23:36    [13137604]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
qwerty112
убери вообще файл лога,
и из каталога и из команды атача
Так если все файлы есть, логов и данных? Проще и надёжней восстановть с ними.

Тут вопрос, сколько их было, и все ли скопированы...
9 сен 12, 23:38    [13137608]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
Каталог C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA полностью скопирован, настроен сервер с точно такой же конфигурацией, установлен sql2008r2. Но базы не получается подключить. Просто впервые с такой проблемой столкнулся. Бекапы всегда делались и не было проблем при восстановлении. А тут накрылся райд и диск с бекапами, остался от райда диск, только система на нем рухнула. Каталог с \Data 100% не битый, все базы в нем целые, нужно только лишь подключить их.
9 сен 12, 23:51    [13137649]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
qwerty112
Guest
alexeyvg
qwerty112
убери вообще файл лога,
и из каталога и из команды атача
Так если все файлы есть, логов и данных? Проще и надёжней восстановть с ними.

Тут вопрос, сколько их было, и все ли скопированы...

я так понял, из этого
13136916
автор
Произошла ошибка во время обработки журнала для базы данных "БП1.6(27072009)". Если возможно, восстановите из резервной копии. Если резервная копия недоступна, возможно, понадобится перестроить журнал.
Невозможно открыть новую базу данных "БП1.6(27072009)". Операция CREATE DATABASE прервана. (.Net SqlClient Data Provider)

что лог "накрылся" (?)

---
автор
Каталог C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA полностью скопирован

почему вы тогда подключаете файл по пути 'C:\BASE\БП1.6(2008).mdf' ??
9 сен 12, 23:58    [13137669]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
qwerty112
я так понял, из этого
13136916
автор
Произошла ошибка во время обработки журнала для базы данных "БП1.6(27072009)". Если возможно, восстановите из резервной копии. Если резервная копия недоступна, возможно, понадобится перестроить журнал.
Невозможно открыть новую базу данных "БП1.6(27072009)". Операция CREATE DATABASE прервана. (.Net SqlClient Data Provider)

что лог "накрылся" (?)
Там непонятно... Думаю, наиболее вероятно, что у базы было 2 лога, а ТС подставил один из них, который "C:\BASE\БП_log.LDF".

Пути C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA вероятно нет, а путь C:\BASE\ есть, поэтому попытка приаттачить базу без лога приводит к ошибке.

Оптимально, если есть второй файл лога, присоеденить файл с ним, а если нет, сделать отсутствующую папку и восстановить без лога. Но восстановить базу без лога не всегда получается :-(
10 сен 12, 00:04    [13137682]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
Попробовал другую базу, положил ее в папку data

CREATE DATABASE [БП1.6]
ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6.mdf'),
(FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6_log.ldf' )
FOR ATTACH_REBUILD_LOG ;
Сообщение 5173, уровень 16, состояние 2, строка 1
Один или несколько файлов не соответствуют основному файлу базы данных. Если предпринимается попытка присоединить базу данных, повторно выполните операцию с использованием правильных файлов. Если такая база данных существует, файл может быть поврежден и должен быть восстановлен из резервной копии.
10 сен 12, 00:37    [13137753]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
и без лога

CREATE DATABASE [БП1.6]
ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6.mdf')
FOR ATTACH_REBUILD_LOG ;
Сбой при активации файла. Возможно, физическое имя файла "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6_log.LDF" неправильное.
Создан новый файл журнала "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6_log.LDF".
Сообщение 1813, уровень 16, состояние 2, строка 1
Невозможно открыть новую базу данных "БП1.6". Операция CREATE DATABASE прервана.
Сообщение 1813, уровень 16, состояние 2, строка 1
Невозможно открыть новую базу данных "БП1.6". Операция CREATE DATABASE прервана.
Сообщение 824, уровень 24, состояние 2, строка 1
SQL Server обнаружил логическую ошибку ввода-вывода, связанную с согласованностью: неверный идентификатор страницы (ожидаемый 1:87; фактический 1:10599463). Она произошла при прочитать страницы (1:87) в базе данных с идентификатором 7 по смещению 0x000000000ae000 файла "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\БП1.6.mdf". Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий. Это серьезная ошибка, которая угрожает целостности базы данных и должна быть немедленно исправлена. Выполните полную проверку базы данных на согласованность (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения см. в электронной документации по SQL Server.
10 сен 12, 00:38    [13137758]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
Пошел по другому пути: vopi,

1. создать новую пустую базу. например [TMP].
2. ALTER DATABASE [TMP] SET OFFLINE WITH ROLLBACK IMMEDIATE;
3. заменить файлы данных базы [TMP] файлами от Вашей БД.
4. создать путь F:\BASE\SQL\
5. ALTER DATABASE [TMP] SET EMERGENCY, SINGLE_USER;
6. DBCC CHECKDB ('TMP', REPAIR_ALLOW_DATA_LOSS);
7. ALTER DATABASE [TMP] SET ONLINE, MULTI_USER;
8. молицца. :)

на пункте 5 пишет "не удалось продолжить просмотр NOLOCK вследствие перемещения данных"
10 сен 12, 00:59    [13137785]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
Спасайте, вопрос все еще открыт. Хоть скажите пожалуйста реально ли подключить базы или нет? Что я делаю не так?
10 сен 12, 11:02    [13138659]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
dexis
Спасайте, вопрос все еще открыт. Хоть скажите пожалуйста реально ли подключить базы или нет? Что я делаю не так?
Вы на вопросы ответьте.
10 сен 12, 11:18    [13138828]     Ответить | Цитировать Сообщить модератору
 Re: Как подключить mdf и ldf к другому серверу  [new]
dexis
Member

Откуда:
Сообщений: 12
У базы один лог лежало все в папке data на старом сервере
10 сен 12, 12:19    [13139312]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить