Database SQL Server "Tersangka"?


40

Apa yang Anda lakukan ketika Anda memiliki database yang ditandai Suspect?

Pulihkan dari cadangan terakhir?

Mohon saran.

Jawaban:


41

Hal pertama adalah memastikan Anda TIDAK melepaskan basis data itu.

Memulihkan dari goodbackup terakhir yang diketahui baik-baik saja. Kalau tidak, Anda perlu menggunakan mode perbaikan DARURAT (saya berasumsi Anda menjalankan SQL 2005 atau lebih tinggi). Berikut adalah beberapa posting dari Paul Randal tentang masalah ini. Baca keduanya sebelum Anda mulai mengambil tindakan apa pun.

Membuat, melepaskan, melampirkan kembali, dan memperbaiki basis data SUSPECT

Perbaikan mode DARURAT: pilihan terakhir


5

Cukup banyak ya.

Secara umum itu berarti file-file bollixed atau hilang atau kesalahan disk atau semacamnya (saya telah melihat sektor yang buruk menyebabkan ini).

Langkah saya:

  • Pastikan semua cadangan ada di sana
  • Matikan SQL Server
  • chkdsk disk yang digunakan oleh SQL Server (semoga bukan C Anda: tentu saja)

Sunting: Saya akan mengklarifikasi jawaban saya

  • jika data penting saya akan memiliki cadangan
  • downtime sambil bermain-main dengan perbaikan dan mode darurat terlalu lama bagi saya

5

Saya telah menulis beberapa panduan tentang ini untuk 2 kasus database tersangka: ketika Anda kehilangan file data atau file log. Silakan baca yang berikut ini:


5
Jadi, inilah masalahnya: Stack Exchange tidak berfungsi jika semua yang Anda posting adalah tautan. Yang perlu Anda lakukan adalah meringkas konten dalam tautan, atau saya hanya akan terpaksa menghapus jawaban Anda (dan kemudian Anda kehilangan perwakilan, dan kami berdua tidak menginginkan ini terjadi)
jcolebrand

4

Dari pertanyaan Anda, sepertinya Anda memiliki cadangan. Memulihkan DB dari cadangan yang baik akan menjadi cara termudah dan tercepat untuk mendapatkan operasional DB Anda dan keluar dari keadaan yang dicurigai.


5
Tetapi Anda akan kehilangan data jika Anda tidak memiliki log transaksi.
mrdenny

0

Nasihat pertama saya adalah; tidak pernah melepaskan basis data tersangka. Mengembalikan database dari cadangan yang diperbarui sangat membantu. Jika cadangan tidak tersedia atau mengalami masalah, EMERGENCYmode dapat berguna:

Atur basis data ke mode darurat:

ALTER DATABASE DB_NAME SET EMERGENCY

Sekarang periksa ketidakkonsistenan basis data dengan ini:

DBCC CHECKDB (‘DB_NAME’)

Perbaikan DBCC CHECKDB memungkinkan opsi kehilangan data adalah pilihan terakhir. Hasilnya mungkin data jadi hilang, saya tidak menyarankan untuk menjalankannya.

Juga periksa Referensi 1 dan referensi 2

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.