Как прикрепить базу данных MSSQL 2000 только с файлом MDF - PullRequest
6 голосов
/ 24 сентября 2008

У меня есть старый сервер с несуществующей оценочной версией SQL 2000 (с 2006 года) и две базы данных, которые на нем сидели.

По неизвестной причине файлы журнала LDF отсутствуют. Предположительно удалено.

У меня есть mdf-файлы (и в одном случае также ndf-файл) для баз данных, которые раньше существовали на этом сервере, и я пытаюсь настроить их и запустить на другом блоке SQL 2000, который я сижу.

sp_attach_db жалуется на отсутствие файла журнала и не присоединяет базу данных. Попытки обмануть его с помощью файла журнала из базы данных с таким же именем потерпели неудачу. sp_attach_single_file_db тоже не будет работать. Файлы mdf явно не были отсоединены.

Как мне присоединить и прочитать базы данных?

Ответы [ 2 ]

6 голосов
/ 24 сентября 2008

Я нашел этот ответ, который работал с моими машинами SQL 2000:

Как прикрепить базу данных с не полностью отсоединенным файлом MDF.

Шаг 1: Создайте новую базу данных с тем же именем, которая будет использовать те же файлы, что и старая, на новом сервере.

Шаг 2: Остановите сервер SQL и переместите ваши mdf-файлы (и любые ваши ndf-файлы) поверх новых, только что созданных вами. Удалите все файлы журнала.

Шаг 3: Запустите SQL и запустите его, чтобы перевести БД в аварийный режим.

sp_configure 'allow updates', 1
go
reconfigure with override
GO
update sysdatabases set status = 32768 where name = 'TestDB'
go
sp_configure 'allow updates', 0
go
reconfigure with override
GO

Шаг 4: Перезапустите сервер SQL и убедитесь, что БД успешно работает в аварийном режиме.

Шаг 5: Запустите эту недокументированную опцию dbcc, чтобы перестроить файл журнала (в правильном месте)

DBCC REBUILD_LOG(TestDB,'D:\SQL_Log\TestDB_Log.LDF')

Шаг 6: Возможно, вам придется сбросить статус. Даже если вы этого не сделаете, это не принесет никакого вреда.

exec sp_resetstatus TestDB

Шаг 7: Остановитесь и запустите SQL, чтобы увидеть вновь восстановленную базу данных.

1 голос
/ 24 сентября 2008

В Enterprise Manager щелкните правой кнопкой мыши сервер и выберите «Присоединить базу данных». Выберите файл MDF и нажмите Ok. Затем он спросит вас, хотите ли вы создать новый файл журнала или нет. Скажи Да.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...