Thursday 1 July 2010

SQL Server (Log Database Terhapus)

/* Create a new database sama dengan database
yang tidak bisa diakses (contoh kasus "DBNAME") */

Jalankan script dibawah melalui T-SQL (database MASTER)

Create database
EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
GO

BEGIN TRAN
UPDATE master..sysdatabases
SET status = status | 32768
WHERE name = 'DBNAME'

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


1. Stop SQLserver
2. Replace DBNAME.mdf baru dengan DBNAME.mdf lama
3. Rename DBNAME.ldf baru menjadi DBNAMENew.ldf
4. Start SQLserver (status DBNAME emergency mode)
5. Run command
DBCC REBUILD_LOG('DBNAME','L:\DBNAME_log.LDF')

seharusnya keluar message

--Warning: The log for database 'DBNAME' has been rebuilt.
--Transactional consistency has been lost.

--DBCC CHECKDB should be run to validate physical consistency.
--Database options will have to be reset,
--and extra log files may need to be deleted.
--DBCC execution completed.
--If DBCC printed error messages,
--contact your system administrator.

6. Run data consistancy check (CHECHBD)
DBCC CHECKDB (DBNAME)
GO


7. Alter Database
ALTER DATABASE DBNAME SET MULTI_USER
GO


8. Update status database
EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO

No comments:

Post a Comment