|
MSSQL 2000 Database File Manipulation
To remove damaged database from the list of databases stop the SQL server. Move the mdf file with Windows Explorer. Start the SQL server and delete the database in Enterprise Manager.
If a database is detached and can not be attached in the normal way, create
a new one with the same name. Stop SQL Server, copy the original database files
and start the server.
Now DBCC tools can be run.
Put the database in Emergency mode:
EXEC sp_configure 'allow updates', 1 RECONFIGURE WITH OVERRIDE GO BEGIN TRAN UPDATE master..sysdatabases SET status = status | 32768 WHERE name = 'Lonovi' IF @@ROWCOUNT = 1 BEGIN COMMIT TRAN RAISERROR('emergency mode set', 0, 1) END ELSE BEGIN ROLLBACK RAISERROR('unable to set emergency mode', 16, 1) END GO EXEC sp_configure 'allow updates', 0 RECONFIGURE WITH OVERRIDE GO
-- Restart SQL Server at this point.
Now recreate the new log file:
DBCC REBUILD_LOG('Lonovi','e:\SQLData\Lonovi_Log.ldf')
/*
Perform physical and logical integrity checks at this point.
Bcp data out if your integrity checks demonstrate that problems exist.
*/
DBCC CHECKDB ALTER DATABASE Lonovi SET MULTI_USER GO
/*
Set database options and recovery model as desired.
*/
ALTER database Lonovi set recovery simple GO
Then reset database status (if not already):
use master go sp_resetstatus 'Lonovi'
/*
Stop and restart SQL Server.
Verify that the database was recovered and is available.
*/
Use Lonovi DBCC NEWALLOC Go DBCC TEXTALL Go DBCC CHECKDB Go
/*
Enable replication: Tools -> Configure... -> Publication Databases, enable.
Recreate replication publications and agents.
Everything should be running fine now.
*/
Some additional helpful commands:
alter database Lonovi remove file Lonovi_data
* Detach database:
sp_detach_db @dbname = 'Lonovi', @skipchecks = TRUE
DBCC SHRINKFILE ('Lonovi_data', EMPTYFILE )
alter database Lonovi add log file (name='Lonovi_data', filename='e:\sqldata\Lonovi_Log.ldf')
sp_attach_single_file_db 'Lonovi', 'e:\SQLData\Lonovi_Data.mdf'