Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Memulihkan Database Master SQL Server

PENGANTAR

Basis data master berisi catatan struktur/konfigurasi untuk instance saat ini dan semua basis data lainnya. Saat Anda menjalankan sp_configure , Anda sedang menulis data ke database master. Ini juga berisi sebagian besar tampilan manajemen dinamis yang diperlukan untuk memantau instance.

Pentingnya database master sangat penting. Pertama, ia memiliki informasi yang diperlukan untuk membuka semua database lain dan harus dibuka terlebih dahulu. Kemudian, melibatkan semua kepala sekolah tingkat instance untuk instance saat ini.

Sangat penting untuk membuat cadangan database master setiap hari. Sama pentingnya adalah mengetahui cara memulihkan database master ke instance. Kasus yang paling sering terjadi adalah database crash atau keharusan untuk mengembalikan database master ke instance lain saat tidak lagi menggunakan instance sumber. Pada artikel ini, kita akan memeriksa kasus spesifik pemindahan database master ke instance lain.

PERIKSA STATUS LAYANAN APLIKASI

Memulihkan database master ke instans lain akan melibatkan memulai instans dalam mode pengguna tunggal. Oleh karena itu, penting untuk memastikan bahwa sesi aktif adalah satu-satunya yang mengontrol instance.

Untuk itu, hentikan semua layanan aplikasi agar tidak mengakses instance, terutama jika aplikasi tersebut memiliki akses istimewa. Masalah dapat terjadi jika Anda memulai instans dalam mode pengguna tunggal saat aplikasi telah membuat sesi. Dalam hal ini, Anda tidak akan dapat melanjutkan sesi interaktif dari SQL Server Management Studio.

HENTIKAN LAYANAN SQL SERVER

Hentikan semua Layanan SQL Server dengan SQL Server Configuration Manager:klik kanan setiap layanan dan pilih Stop dari menu konteks (lihat gbr. 2).

MULAI SQL SERVER DALAM MODE PENGGUNA TUNGGAL

Untuk memulihkan database master, Anda memerlukan contoh SQL Server dalam mode pengguna tunggal. Lakukan langkah-langkah berikut:

  1. Buka Perintah CMD
  2. Navigasikan ke C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
  3. Masalahkan sqlservr –m ATAU NET mulai MSSQLServer /c /m /T3604

ATAU

Perhatikan bahwa langkah 2 mengacu pada Binn lokasi direktori. Ini bisa berbeda dalam penginstalan Anda.

Anda dapat menemukan direktori yang diperlukan dengan memeriksa tab Service dari properti layanan SQL Server di SQL Server Configuration Manager (Lihat Gambar 4):

KEMBALIKAN MASTER

Saat Anda memulihkan master dari satu instans ke instans lainnya, Anda mendapatkan prinsip-prinsip baru dan nilai-nilai baru dalam katalog sistem yang berisi nilai-nilai seperti nama instans dan bahkan lokasi tempdb.

Sebelum memulihkan master, pastikan bahwa jalur server tujuan tersedia untuk file TempDB seperti yang ditentukan di server sumber. Jika tidak, instance baru tidak akan berhasil dijalankan setelah pemulihan selesai.

  1. Buka SQL Server Management Studio
  2. Jalankan kode di Listing 1 di SQL Server Management Studio
-- Listing 1: Restore Master Database
restore database master from disk ='<full_path_of_backup>' with replace;

NB: Instance akan dimatikan setelah pemulihan selesai.

PERUBAHAN AKUN LAYANAN

Untuk memulai SQL Server setelah pemulihan selesai, lakukan hal berikut:

  1. Ubah Akun Layanan SQL Server ke akun yang saat ini masuk.
  2. Buka Mulai> Semua Program> Microsoft SQL Server 2005> Alat Konfigurasi> Manajer Konfigurasi SQL Server
  3. Klik kanan setiap layanan dan pilih Properti
  4. Di Masuk tab, masukkan Nama Akun yang diinginkan dan kata sandi yang sesuai.

NAMA SERVER

Basis data master berisi nama instance di mana ia berada. Karena cadangan yang dipulihkan dalam skenario ini berasal dari contoh yang berbeda, Anda perlu memperbarui nama server menggunakan prosedur tersimpan, seperti yang ditunjukkan pada Daftar 2.

-- Listing 2: Change the Instance Name for a SQL Server Instance
-- Check the current server name

select @@SERVERNAME

-- Change the server name as seen by the database

sp_dropserver 'EUK-POSTSVR-01'--Present Server name goes here
go 
sp_addserver 'EUK-POSTBKP-01','local'--New Server name goes here 
go

Mulai ulang SQL Server dari SQL Server Configuration Manager agar perubahan nama diterapkan.

MASUK LAYANAN

Basis data master juga mencatat semua login yang terkait dengan instance sumber. Dalam contoh baru, Anda perlu membersihkan login yang tidak perlu. Setelah itu, Anda dapat menambahkan Grup SQL Server default lokal ke instance saat ini.

-- Listing 3: Remove Unnecessary Logins
drop login [EUK-POSTSVR-01\SQLServer2005MSSQLUser$EUK-POSTSVR-01$MSSQLSERVER]
drop login [EUK-POSTSVR-01\SQLServer2005MSFTEUser$EUK-POSTSVR-01$MSSQLSERVER]
drop login [EUK-POSTSVR-01\SQLServer2005SQLAgentUser$EUK-POSTSVR-01$MSSQLSERVER]

-- Listing 4: Add local default SQL Server Groups
create login [EUK-POSTBKP-01\SQLServer2005MSSQLUser$EUK-POSTBKP-02$MSSQLSERVER] from windows;
create login [EUK-POSTBKP-01\SQLServer2005SQLAgentUser$EUK-POSTBKP-02$MSSQLSERVER] from windows;
create login [EUK-POSTBKP-01\SQLServer2005MSFTEUser$EUK-POSTBKP-02$MSSQLSERVER] from windows;

NB: Pastikan bahwa server dan akun layanan agen milik grup masing-masing pada level OS dan grup OS ini memiliki izin yang diperlukan. Tabel 1 menunjukkan izin untuk akun Layanan SQL Server.

S/Tidak Hak Istimewa Diperlukan Oleh
1. Masuk sebagai layanan Akun Layanan SQL Server Akun Layanan Integrasi Akun Agen SQL
2. Bertindak sebagai bagian dari sistem operasi Akun Layanan SQL Server Akun Layanan Agen SQL
3 Masuk sebagai tugas batch Akun Layanan SQL Server Akun Layanan Agen SQL
4. Ganti token tingkat proses Akun Layanan SQL Server Akun Layanan Agen SQL
5. Lewati pemeriksaan lintasan Akun Layanan SQL Server Akun Layanan Integrasi Akun Agen SQL
6. Menyesuaikan kuota memori untuk suatu proses Akun Layanan SQL Server Akun Layanan Agen SQL
7. Buat objek global Akun Layanan Integrasi
8. Kunci halaman di Memori (AWE) Akun Layanan SQL Server

Setelah housekeeping selesai di tingkat database, kembalikan ke akun layanan reguler. Mulai ulang instance sekali lagi dari SQL Server Configuration Manager.

Pada titik ini, Anda dapat memulai layanan aplikasi.

kesimpulan

Selama pelaksanaan skenario di atas, kesalahan dapat terjadi. Di bawah, Anda akan melihat informasi tentang kesalahan ini.

Jika Anda memecahkan masalah, Anda dapat menggunakan alat seperti ProcMon SysInternal. Mereka mengisolasi masalah izin file saat memulai SQL Server (Lihat Gambar 7).

S/T Kesalahan Penyebab/Solusi
1. SQLServerAgent tidak dapat dimulai (alasan:Tidak dapat terhubung ke server '(local)'; SQLServerAgent tidak dapat memulai). Buat login untuk semua akun layanan lokal
2. Penyedia koneksi lokal server gagal mendengarkan [ \\.\pipe\SQLLocal\MSSQLSERVER ]. Kesalahan:inisialisasi 0x5 TDSSNIClient gagal dengan kesalahan 0x5, kode status 0x40. Inisialisasi TDSSNIClient gagal dengan kesalahan 0x5, kode status 0x1. SQL Server tidak dapat menelurkan utas FRunCM. Periksa log galat SQL Server dan log peristiwa Windows untuk informasi tentang kemungkinan masalah terkait. Tidak dapat memulai pustaka jaringan karena kesalahan internal di pustaka jaringan. Untuk menentukan penyebabnya, tinjau kesalahan tepat sebelum kesalahan ini di log kesalahan. SQL Server dimulai sebelumnya dengan akun layanan yang berbeda dan dihentikan secara paksa. Itu terjadi selama pemulihan database master. Untuk memperbaikinya, mulai instans dengan akun layanan yang digunakan di langkah 3, lalu hentikan layanan dengan baik. Setelah itu, Anda dapat memulai dengan akun layanan reguler.
3. SQLServerAgent tidak dapat dimulai (alasan:Kesalahan membuat sesi baru). Berikan izin yang sesuai ke Akun Agen SQL

REFERENSI

Basis Data Utama


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ketahui Cara Memulihkan Tabel yang Dihapus di SQL Server 2012 Tanpa Cadangan

  2. Ekspresi Tabel Umum, mengapa titik koma?

  3. Bagaimana saya bisa membuat kunci utama sebagai AUTOINCREMENT

  4. Periksa apakah tabel ada di SQL Server

  5. Daftar Fungsi Tanggal dan Waktu di SQL Server (T-SQL)