Basis data MSDB tidak dapat dibuka

Saya punya masalah ini dalam contoh lokal SQL Server 2008 R2 di mesin saya. Ada beberapa database mengenai hal ini. Tapi saya tidak bisa melihatnya dari penjelajah objek.

Saya dapat menanyakan database saya dari jendela kueri baru. Namun tidak dapat melihat satupun dari mereka.

Setiap kali saya mencoba menjelajahi database saya mendapatkan kesalahan ini:

Database 'msdb' tidak dapat dibuka. Telah ditandai SUSPECT oleh pemulihan. Lihat log kesalahan SQL Server untuk informasi selengkapnya. (Microsoft SQL Server, Kesalahan: 926).

saya telah mencoba

  1. Menyegarkan koneksi
  2. Menyambungkan kembali koneksi
  3. Memulai ulang layanan Sql Server (MSSQLSERVER).
  4. Memulai ulang Studio Manajemen SQL Server
  5. Memulai ulang mesin saya

Saya juga sudah mencoba kombinasi di atas, tetapi tidak ada yang berhasil.

Sistem operasi saya adalah Windows 7 Ultimate (64 bit).

Versi Studio Manajemen SQL Server adalah 10.50.2500.0.


person Devraj Gadhavi    schedule 26.04.2013    source sumber


Jawaban (3)


Saya menemukan jawaban saya di tautan ini.

EDIT : Menyertakan kedua solusi dari tautan karena kemungkinan Linkrot di masa depan.

Login dengan sa akun, untuk kedua solusi tersebut.

Solusi 1

  1. Buka jendela kueri baru

  2. EXEC sp_resetstatus 'DB_Name'; (Penjelasan :sp_resetstatus mematikan tanda yang dicurigai pada database. Prosedur ini memperbarui kolom mode dan status dari database bernama di sys.databases. Perhatikan juga bahwa hanya login yang memiliki hak istimewa sysadmin yang dapat melakukan ini.)

  3. ALTER DATABASE DB_Name SET EMERGENCY; (Penjelasan : Setelah database diatur ke mode DARURAT, database menjadi salinan READ_ONLY dan hanya anggota server tetap sysadmin yang memiliki hak istimewa untuk mengaksesnya.)

  4. DBCC checkdb('DB_Name'); (Penjelasan : Periksa integritas semua objek.)

  5. ALTER DATABASE DB_Name SET SINGLE_USER WITH ROLLBACK IMMEDIATE; (Penjelasan : Atur database ke mode pengguna tunggal.)

  6. DBCC CheckDB ('DB_Name', REPAIR_ALLOW_DATA_LOSS); (Penjelasan : Memperbaiki kesalahan)

  7. ALTER DATABASE DB_Name SET MULTI_USER; (Penjelasan : Atur database ke mode multi user, sehingga sekarang dapat diakses oleh orang lain.)

Solusi 2

  1. Di Object Explorer --> Item koneksi yang terbuka --> klik kanan --> Stop Object Explorer

  2. Buka Panel Kontrol --> Alat Administratif --> Layanan Panel Kontrol -› Alat Administratif -› Layanan

  3. Pilih Sql Server (MSSQLSERVER) item dari layanan --> klik kanan --> Hentikan Hentikan Sql Server (MSSQLSERVER)

  4. Buka C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

  5. Pindahkan MSDBData.mdf & MSDBlog.ldf ke tempat lain

  6. Kemudian Salin File ini Lagi dari tempat baru dan letakkan di tempat lama

    C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

  7. Dalam koneksi terbuka di objek Explorer --> klik kanan --> Mulai

  8. Kemudian Refresh Basis Data.

  9. Kemudian Anda dapat Melepaskan File MSDB

Solusi ke-2 berhasil untuk saya.

Catatan : Saya harus mendapatkan file mdf dan ldf database "msdb" dari mesin lain yang berfungsi agar dapat berfungsi.

person Devraj Gadhavi    schedule 08.05.2013
comment
Harap dicatat bahwa msdb berisi pekerjaan yang dijalankan oleh agen SQL. Anda akan kehilangan informasi ini jika Anda mengambil file .ldf dan .mdf ini dari SQL Server mana pun. Taruhan terbaik Anda adalah menyalin file msdb dari mesin lain yang berfungsi DAN memulihkan MSDB dari cadangan terbaru dari contoh yang bermasalah, idealnya satu sebelum kejadian. - person Mike J; 11.12.2014
comment
G8. Ketika klien saya menelepon saya untuk ini. saya menemukannya di mana-mana dan tidak mendapatkan jawabannya. akhirnya milikmu dan bekerja untukku. terima kasih untuk pekerjaan g8 ini - person sourabh devpura; 09.04.2015

Yang langsung memperbaiki masalah saya adalah mengganti file MSDBData.mdf & MSDBlog.ldf yang ada

di C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA. Saya mendapatkan 2 file ini disalin dari mesin lain yang berfungsi, Menghentikan layanan SQL yang berjalan di mesin saya, menghapus 2 file yang ada di atas dari lokasinya dan menambahkan 2 file baru yang disalin. Setelah saya memulai ulang layanan, masalah telah diperbaiki.

person Yashwant Kumar Sahu    schedule 18.02.2015

Coba ini

  • Atur database ke mode pengguna tunggal:

    Ubah kumpulan nama db database single_user

  • Sekarang atur database ke mode darurat:

    Ubah nama db basis data menjadi darurat

  • Perbaiki file log yang hilang atau file log yang rusak dengan kehilangan data.

    DBCC CHECKDB ('nama db', REAPIR_ALLOW_DATA_LOSS)

  • Sekarang atur db dalam mode multi pengguna;

    Ubah kumpulan nama db basis data multi_pengguna

Anda mungkin kehilangan data dengan menggunakan perintah ini. Itu juga tergantung pada persetujuan klien. Untuk menghindari hal ini, Anda dapat menggunakan beberapa perangkat lunak khusus lainnya ( Seperti yang Disebutkan di sini ) untuk memulihkan dari mode yang dicurigai.

person Vignesh Kumar A    schedule 07.07.2021