Oleh: blogfirman | 17 Mei 2010

Mengatasi status “suspect” pada database di SQL Server 2000

Failure pada database bisa terjadi lewat berbagai sebab, salah satunya adalah power outage / mati lampu. Kondisi ini menyebabkan database tidak sempurna dalam melakukan rutin rutin proses penulisan dari memory ke database. Hal buruk yang bisa terjadi adalah ‘corrupt’ pada data file atau log file. Sehingga ketika di hidupkan lagi database tidak bisa langsung up karena filenya ada yang korup.

Berikut salah satu solusi mengatasi kondisi “suspect” database pada SQL Server 2000.

1. Asumsi nama database kita yang “suspect” adalah basdat

2. Backup basdat_Data.MDF dan basdat_Log.LDF ke direktori lain. (* utk jaga jaga saja)

3. Jalankan Query berikut dari query analyzer

use master

go

sp_configure ‘allow updates’, 1

RECONFIGURE WITH OVERRIDE

go

select status from sysdatabases where name = ‘basdat’

update sysdatabases set status= 32768 where name = ‘basdat’

go

*kalo tidak bisa ganti 32768 dengan -32678

4. Eksekusi perintah diatas menjadikan status database di rubah dari ‘suspect’ ke emergency/offline/read only.

5. Dalam status emergency/offline/read only tersebut kita bisa melakukan ekspor data dari database basdat. Buat 1 database baru dengan nama ‘sementara’.

6. Lakukan eksport data dari Enterprise Manager lalu kilk pada Database basdat, masuk ke tabelnya lalu klik kanan All Task -> Export. Ekspor semua table yang di inginkan (* kondisi ini tidak menjamin semua data bisa selamat, jika ada yang korup nanti ada verifikasi error pada saat export, tapi setidaknya data yang tidak korup masih bisa di selamatkan di database basdat tersebut)

7. Setelah selesai mengeksport semua table yang di inginkan ke database ‘sementara’ (* utk menampung sementara sebelum kita kembalikan ke database ‘basdat)’. Maka langkah selanjutnya adalah menghapus database ‘basdat’ yg bersifat read only/emergency/offline. (* database ‘basdat’ tidak bisa di rubah statusnya menjadi online, jadi mau gak mau kita harus menghapusnya dan membuatnya lagi -> tp pastikan semua data yg di inginkan sudah masuk ke database ‘sementara’)

8. Setelah di hapus buat lagi database dengan nama ‘basdat’ lagi, lalu lakukan eksport lagi dari database ‘sementara’ ke database ‘basdat’.

9. Cek kembali dengan query ke database ‘basdat’. Semoga berhasil dan tidak ada masalah

10. Kembalikan status database dengan perintah

use master

go

sp_configure ‘allow updates’, 0

RECONFIGURE WITH OVERRIDE

Go

 

NB : Penulis tidak menanggung efek samping dari prosedur di atas. Selama penulis mencobanya tidak ada masalah. Jadi untuk keamanan tolong backup database anda dahulu sebelum melakukan trik di atas. Semoga bermanfaat dan tidak terjadi apa apa. 🙂


Responses

  1. HHmm,, insyAllah sngat bermanfaat.. tp sygY penulis gak menanggung resikonya ya.. wkwkwkkw

  2. musti backup dulu nih, ehhehehe

    thanks btw 😉


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

%d blogger menyukai ini: