PDA

Просмотр полной версии : MSSQL



Самогон
22.11.2011, 19:30
Базы 2005,8 сервера очень устойчивы, надо отдать должное. Но если полетела файловая система и физически повредился лог файл, то можно (с риском потери некоторых данных) вернуть базу к жизни.
Конечно резервное копирование скажете вы, а вот так случилось и точка.


Restore MSSQL DB 2005
1. Move mdf and ndf files to another directory (Data_old)
2. Create a database with the same name and same file names and locations as the original databases. (this only applies to the mdf and ndf files the log file can go anywhere)
3. Stop the SQL Server service.
4. Overwrite new mdf and ndf files with the original ones.
5. Start SQL Server.
6. Run this script (Set the @DB variable to the name of your database before running):
Declare @DB sysname;
set @DB = ‘DBName’;
– Put the database in emergency mode
EXEC(‘ALTER DATABASE [' + @DB + '] SET EMERGENCY’);
– Set single user mode
exec sp_dboption @DB, ‘single user’, ‘TRUE’;
– Repair database
DBCC checkdb (@DB, repair_allow_data_loss);
– Turn off single user mode
exec sp_dboption @DB, ‘single user’, ‘FALSE’;
I got an error stating that the log file did not match the data file. You can ignore this as we are rebuilding the log file.