Perangkat hilang menyebabkan database untuk ditandai tersangka

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 180500 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

GEJALA

SQL Server menandai tersangka database jika salah satu file perangkat untuk Database tersedia ketika mencoba untuk memulai. Anda dapat melihat salah satu dari set berikut pesan log galat SQL Server:
Pesan galat 1
96/11/18 10:48:32.60 kernel udopen: sistem operasi kesalahan 32 (
proses tidak dapat mengakses file karena sedang digunakan oleh orang lain
proses.) selama penciptaan/pembukaan perangkat fisik,
C:\DATA\SQL\MSDB.DAT (atau C:\DATA\SQL\MSDB.MDF)

96/11/18 10:48:32.60 kernel udactivate (utama): gagal untuk membuka
perangkat C:\MSSQL\DATA\MSDB.DAT (atau C:\DATA\SQL\MSDB.MDF) untuk vdn 127
Pesan galat 2
96/11/18 10:48:32.60 kernel udopen: sistem operasi kesalahan 2 (
sistem tidak dapat menemukan berkas yang dicari.) selama penciptaan/pembukaan
perangkat fisik C:\MSSQL\DATA\MSDB.DAT (atau C:\DATA\SQL\MSDB.MDF)

96/11/18 10:48:32.60 kernel udactivate (utama): gagal untuk membuka perangkat C:\MSSQL\DATA\MSDB.DAT (atau C:\DATA\SQL\MSDB.MDF) untuk vdn 127
Ini akan mengikuti kemudian di log oleh:
96/11/18 10:48:36.70 kernel udread: sistem operasi kesalahan 6 (
menangani tidak sah.) pada perangkat ' C:\MSSQL\DATA\MSDB.DAT' (atau C:\DATA\SQL\MSDB.MDF) (virtpage
0x7f000018).

96/11/18 10:48:36.77 spid11 Error: 840, keparahan: 17, negara: 2

96/11/18 10:48:36.77 spid11 perangkat 'MSDBData' (dengan nama fisik
' C:\MSSQL\DATA\MSDB.DAT' (atau C:\DATA\SQL\MSDB.MDF), dan perangkat virtual nomor 127) tidak
tersedia. Silakan hubungi Administrator sistem untuk bantuan.

96/11/18 10:48:36.77 spid11 Buffer 1092480 dari database 'msdb'
memiliki nomor halaman 0 di header halaman dan halaman nomor 24 di
penyangga header

96/11/18 10:48:37.43 spid11 tidak dapat melanjutkan dengan pemulihan
dbid <5>karena dari kesalahan sebelumnya. Melanjutkan dengan berikutnya</5>
database.
Misalnya, melakukan langkah-langkah berikut akan menunjukkan masalah:
  1. Berhenti SQL Server.
  2. Mengeluarkan perintah berikut dari prompt perintah pada Mssql\Data direktori:

    Ren msdb.dat msdb.sav
  3. Mulai SQL Server.
Anda akan melihat kesalahan di atas (orang-orang dari set kedua) dalam SQL Server errorlog. Jika Anda kemudian mengeluarkan query berikut di master database
   select name, dbid, mode, status from sysdatabases where dbid =
   db_id('msdb')
				

Anda menerima hasil sebagai berikut:
   name     dbid   mode   status
   ------------------------------
   msdb      5      0      328
				

Status 328 mengevaluasi untuk:
   truncate log on chkpt
   database not recovered yet
   database is suspect
				

Untuk selengkapnya, lihat topik "Sysdatabases (Master Database hanya)" dalam SQL Server buku secara Online.

PENYEBAB

Pada saat startup, SQL Server cuba mendapatkan exclusive lock pada perangkat file. Jika perangkat yang digunakan oleh proses lainnya (misalnya, cadangan perangkat lunak) atau jika berkas hilang, skenario yang dijelaskan di atas akan dihadapi. Dalam kasus ini, biasanya ada tidak ada yang salah dengan perangkat dan database. Untuk database untuk pulih dengan benar, perangkat harus dibuat tersedia, dan database status harus di-reset.

TEKNIK PEMECAHAN MASALAH

Untuk mengatasi masalah ini, lakukan langkah-langkah di bawah ini. Perhatikan bahwa langkah terakhir kritis.
  1. Memastikan bahwa berkas perangkat ini benar-benar tersedia.
  2. Menggunakan sp_resetstatus tambahan disimpan prosedur untuk me-reset status database tersangka. Jika Anda tidak melakukannya, membuat ini prosedur dengan mengeksekusi skrip Instsupl.sql, ditemukan di Mssql\Install direktori. Untuk informasi lebih lanjut tentang sp_resetstatus, lihat "Reset menduga Status" topik dalam SQL Server buku Online.
  3. Jalankan sp_resetstatus dalam database master untuk database curiga:
          use master
          go
          exec sp_resetstatus msdb   -- replace msdb with your database name
     
    						
    Anda akan melihat output berikut:
          Prior to Update sysdatabases attempt for DBName='msdb', the mode=0
          and status=328 (status suspect_bit=256). For DBName='msdb' in
          sysdatabases, status bit 256 was forced Off and mode was forced to
          0. WARNING: You MUST stop/restart SQL Server prior to accessing this
          database!
     
    					
  4. Berhenti dan restart SQL Server.
  5. Verifikasi bahwa database ditemukan dan tersedia.
  6. Menjalankan DBCC NEWALLOC, DBCC TEXTALL, dan DBCC CHECKDB.

INFORMASI LEBIH LANJUT

Jika database masih ditandai sebagai tersangka setelah melakukan langkah-langkah ini, mungkin ada masalah lain mencegah database pulih. Pada titik ini, Anda dapat memulihkan dari cadangan baik atau mengatur database untuk modus darurat-menyalurkan dan menggunakan sebagian besar salinan program (BCP) untuk sebagian besar menyalin data keluar. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
165918Bypass (darurat) mode dan MEMBUANG transaksi dengan NO_LOG
Penting Jika Anda menggunakan artikel ini (Q165918) dan tidak yakin penuh konsekuensi dari tindakan yang dijalankan, hubungi dasar Anda dukungan Anda untuk bantuan.

Properti

ID Artikel: 180500 - Kajian Terakhir: 16 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
Kata kunci: 
kbprb kbmt KB180500 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:180500
Sanggahan Konten KB yang Tidak Lagi Diperbarui
Artikel ini berisi tentang produk yang tidak lagi didukung oleh Microsoft. Oleh karena itu, artikel ini disajikan ?sebagaimana adanya? dan tidak akan diperbarui.

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com