Torafahrudin’s Weblog

Just another WordPress.com weblog

Cara 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 J

Maret 17, 2009 - Posted by | Database

10 Komentar »

  1. Artikel anda di

    http://database.infogue.com/cara_mengatasi_status_suspect_pada_database_di_sql_server_2000

    promosikan artikel anda di infoGue.com. Telah tersedia widget shareGue dan pilihan widget lainnya serta nikmati fitur musikgue.infogue.com, info cinema, game online & kamus online untuk para netter Indonesia. Salam!

    Komentar oleh infoGue | Maret 18, 2009 | Balas

  2. Ok Thanks

    Komentar oleh torafahrudin | Maret 20, 2009 | Balas

  3. thx mas tora, bermanfaat nih tulisannya 🙂
    lanjutkan! (ini bukan iklan partai dem***** lho, hehehe…)

    Komentar oleh wahyu85 | Maret 26, 2009 | Balas

    • @Mas Wahyu
      Amien .. semoga bermanfaat mas 🙂

      Komentar oleh torafahrudin | Maret 26, 2009 | Balas

  4. Wuah,apaan artikel apa nich, kagak ngerti,hehe, kapan atuh di ajarin ama kelas kita 😀

    Komentar oleh AdiyatHamzah | April 12, 2009 | Balas

  5. Klo harus ada tambahan, bisa tuh..

    Komentar oleh AdiyatHamzahPIS0808 | April 12, 2009 | Balas

    • @adiyat
      Di luar cakupan materi OOP, jadi tidak bisa di ajarkan di situ 😛

      tapi di luar kelas boleh tanya tanya dan diskusi kalo mau

      Komentar oleh torafahrudin | April 12, 2009 | Balas

  6. Mas Tora, saya mengalami hal ini tapi saya tidak berani melakukan seperti yang anda sarankan.
    Bisa ga Mas Tora bantu saya melakukannya di kantor saya ?

    Ini no hp saya: 081311186509
    021-70889333

    Komentar oleh Koesharyanto | November 16, 2011 | Balas

    • @mas koes : Jika ragu, maka export dulu database anda ke database lokal di komputer, setelah itu lakukan prosedur di kompi lokal, jika sudah aman baru di coba di server. Jika sesuai prosedur insya allah aman. Mengingat database yang korup statusnya juga sudah tidak bisa di akses lagi. Jadi mau tidak mau kita harus berani mencoba melakukan export ke database lain dulu dan mengamankan isinya. Mohon maaf tidak bisa ke kantor mas, karena kesibukan saya juga di sini.

      Komentar oleh torafahrudin | November 24, 2011 | Balas

  7. http://autobackupdb.tetuku.com/

    Karena suatu sebab bisa jadi database hilang. Entah itu karena di oprek akhirnya terhapus, ataupun karena sistemnya yang sedang kacau. Tidak semua hosting menyediakan auto backup, kalaupun tersedia, biasanya tersimpan di hosting bersangkutan. Data backup tetap hilang jika akun anda kena suspend.
    Solusinya, setelah di backup anda harus mendownload. Pekerjaan ini harus dilakukan secara rutin dan berulang. Suatu pekerjaan yang membosankan bukan?

    AutoBackupDb bisa menjadi solusi paling tepat untuk mengatasi kasus tersebut diatas. AutoBackupDb bisa anda pergunakan secara gratis. Database anda setiap bulannya akan di backup dan dikirim langsung ke email anda. Apalagi saat ini sudah banyak email gratis yang menyediakan kapasitas besar diatas 7GB.

    Backup per bulan -> Gratis
    Backup per hari -> lisensi Rp 50.000 ,- per domain url untuk selamanya

    Jika website masih sepi, barangkali backup beberapa bulan sekali tidak masalah. Akan tetapi jika website sudah ramai dan ada tambahan data member, artikel, transaksi dan seterusnya, maka anda membutuhkan backup tiap hari agar lebih tenang jika ada kejadian tak terduga yang mengakibatkan website error. Jika website anda sudah sangat ramai, pasti profit per bulan anda sudah jauh melampaui harga lisensi tersebut. Tidak ada salahnya anda mencoba dulu sebelum memutuskan membeli. Selanjutnya, anda tinggal mentransfer biaya lisensi dan mengkofirmasikan pembayaran yang telah anda lakukan.

    Komentar oleh teTuku | Juni 8, 2012 | Balas


Tinggalkan Balasan ke torafahrudin Batalkan balasan