Menyiapkan Database Cermin untuk Pencerminan (SQL Server)

Berlaku untuk:SQL Server

Sebelum sesi pencerminan database dapat dimulai, pemilik database atau administrator sistem harus memastikan bahwa database cermin telah dibuat dan siap untuk pencerminan. Membuat database cermin baru secara minimal memerlukan pencadangan penuh database utama dan cadangan log berikutnya dan memulihkannya ke instans server cermin, menggunakan WITH NORECOVERY.

Topik ini menjelaskan cara menyiapkan database cermin di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL.

Sebelum Anda mulai

Persyaratan

  • Instans server utama dan cermin harus berjalan pada versi SQL Server yang sama. Meskipun dimungkinkan bagi server cermin untuk memiliki versi SQL Server yang lebih tinggi, konfigurasi ini hanya direkomendasikan selama proses peningkatan yang direncanakan dengan hati-hati. Dalam konfigurasi seperti itu, Anda menjalankan risiko failover otomatis, di mana pergerakan data secara otomatis ditangguhkan karena data tidak dapat berpindah ke versi SQL Server yang lebih rendah. Untuk informasi selengkapnya, lihat Meningkatkan Instans Cermin.

  • Instans server utama dan cermin harus berjalan pada edisi SQL Server yang sama. Untuk informasi tentang dukungan untuk pencerminan database di SQL Server, lihat Edisi dan fitur yang didukung SQL Server 2022.

  • Database harus menggunakan model pemulihan penuh.

    Untuk informasi selengkapnya, lihat Menampilkan atau Mengubah Model Pemulihan Database (SQL Server) atau sys.databases (Transact-SQL) dan ALTER DATABASE (Transact-SQL).

  • Nama database cermin harus sama dengan nama database utama.

  • Database cermin harus dalam status PEMULIHAN agar pencerminan berfungsi. Saat menyiapkan database cermin, Anda harus menggunakan RESTORE WITH NORECOVERY untuk setiap operasi pemulihan. Minimal, Anda harus memulihkan DENGAN NORECOVERY cadangan penuh database utama, diikuti oleh semua cadangan log berikutnya.

  • Sistem tempat Anda berencana untuk membuat database cermin harus memiliki drive disk dengan ruang yang cukup untuk menahan database cermin.

Batasan dan Pembatasan

  • Anda tidak dapat mencerminkan database sistem master, msdb, temp, atau model .

  • Anda tidak dapat mencerminkan database yang termasuk dalam grup ketersediaan AlwaysOn.

Rekomendasi

  • Gunakan cadangan database lengkap yang sangat baru-baru ini atau cadangan database diferensial terbaru dari database utama.

  • Jika pekerjaan pencadangan log dijadwalkan untuk berjalan sangat sering pada database utama, Anda mungkin harus menonaktifkan pekerjaan pencadangan hingga pencerminan dimulai.

  • Jika memungkinkan, jalur (termasuk huruf kandar) database cermin harus identik dengan jalur database utama.

    Jika jalur file harus berbeda, misalnya, jika database utama berada di drive 'F:' tetapi sistem cermin tidak memiliki drive F: , Anda harus menyertakan opsi MOVE dalam PERNYATAAN PEMULIHAN.

    Penting

    Menambahkan file selama sesi pencerminan tanpa memengaruhi sesi mengharuskan jalur file ada di kedua server. Oleh karena itu, jika Anda memindahkan file database saat membuat database cermin, operasi add-file yang lebih baru mungkin gagal pada database cermin dan menyebabkan pencerminan ditangguhkan. Untuk informasi tentang menangani operasi buat-file yang gagal, lihat Memecahkan Masalah Konfigurasi Pencerminan Database (SQL Server).

  • Jika database utama memiliki katalog teks lengkap, kami sarankan Anda melihat Pencerminan Database dan Katalog Teks Lengkap (SQL Server).

  • Untuk database produksi, selalu cadangkan ke perangkat terpisah.

Keamanan

TRUSTWORTHY diatur ke NONAKTIF saat database dicadangkan. Oleh karena itu, TRUSTWORTHY selalu NONAKTIF pada database cermin baru. Jika database harus dapat dipercaya setelah failover, langkah-langkah penyiapan tambahan diperlukan. Untuk informasi selengkapnya, lihat Menyiapkan Database Cermin untuk Menggunakan Properti Tepercaya (Transact-SQL).

Untuk informasi tentang mengaktifkan dekripsi otomatis kunci master database database cermin, lihat Menyiapkan Database Cermin Terenkripsi.

Izin

Pemilik database atau administrator sistem.

Untuk Menyiapkan Database Cermin yang Ada untuk Memulai Ulang Pencerminan

Jika pencerminan telah dihapus dan database cermin masih dalam status PEMULIHAN, Anda dapat memulai ulang pencerminan.

  1. Ambil setidaknya satu cadangan log pada database utama. Untuk informasi selengkapnya, lihat Mencadangkan Log Transaksi (SQL Server).

  2. Pada database cermin, gunakan RESTORE WITH NORECOVERY untuk memulihkan semua cadangan log yang diambil pada database utama sejak pencerminan dihapus. Untuk informasi selengkapnya, lihat Memulihkan Pencadangan Log Transaksi (SQL Server).

Untuk Menyiapkan Database Cermin Baru

Untuk menyiapkan database cermin

Catatan

Untuk contoh Transact-SQL dari prosedur ini, lihat Contoh (Transact-SQL), nanti di bagian ini.

  1. Koneksi ke instans server utama.

  2. Buat cadangan database lengkap atau cadangan database diferensial dari database utama.

  3. Biasanya, Anda perlu mengambil setidaknya satu cadangan log pada database utama. Namun, cadangan log mungkin tidak perlu, jika database baru saja dibuat dan belum ada cadangan log yang diambil, atau jika model pemulihan baru saja diubah dari SIMPLE ke FULL.

  4. Kecuali cadangan berada di drive jaringan yang dapat diakses dari kedua sistem, salin database dan cadangan log ke sistem yang akan menghosting instans server cermin.

  5. Koneksi untuk mencerminkan instans server.

  6. Menggunakan RESTORE WITH NORECOVERY, buat database cermin dengan memulihkan cadangan database lengkap dan, secara opsional, cadangan database diferensial terbaru, ke instans server cermin.

    Catatan

    Jika Anda memulihkan grup file database dengan grup file, pastikan untuk memulihkan seluruh database.

  7. Dengan menggunakan RESTORE WITH NORECOVERY, terapkan cadangan log atau cadangan yang luar biasa ke database cermin.

Contoh (Transact-SQL)

Sebelum bisa memulai sesi pencerminan database, Anda harus membuat database cermin. Anda harus melakukan ini tepat sebelum memulai sesi pencerminan.

Contoh ini menggunakan AdventureWorks2022 database sampel, yang menggunakan model pemulihan sederhana secara default.

  1. Untuk menggunakan pencerminan database dengan AdventureWorks2022 database, ubah untuk menggunakan model pemulihan penuh:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
    SET RECOVERY FULL;  
    GO  
    
  2. Setelah memodifikasi model pemulihan database dari SIMPLE ke FULL, buat cadangan lengkap, yang dapat digunakan untuk membuat database cermin. Karena model pemulihan baru saja diubah, opsi WITH FORMAT ditentukan untuk membuat set media baru. Ini berguna untuk memisahkan cadangan di bawah model pemulihan penuh dari cadangan sebelumnya yang dibuat di bawah model pemulihan sederhana. Untuk tujuan contoh ini, file cadangan (C:\AdventureWorks.bak) dibuat pada drive yang sama dengan database.

    Catatan

    Untuk database produksi, Anda harus selalu mencadangkan ke perangkat terpisah.

    Pada instans server utama (di PARTNERHOST1), buat cadangan lengkap database utama sebagai berikut:

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
        WITH FORMAT  
    GO  
    
  3. Salin cadangan lengkap ke server cermin.

  4. Dengan menggunakan RESTORE WITH NORECOVERY, pulihkan cadangan penuh ke instans server cermin. Perintah pemulihan tergantung pada apakah jalur database utama dan cermin identik.

    • Jika jalurnya identik:

      Pada instans server cermin (aktif PARTNERHOST5), pulihkan pencadangan lengkap sebagai berikut:

      RESTORE DATABASE AdventureWorks   
          FROM DISK = 'C:\AdventureWorks.bak'   
          WITH NORECOVERY  
      GO  
      
    • Jika jalur berbeda:

      Jika jalur database cermin berbeda dari jalur database utama (misalnya, huruf drive mereka berbeda), membuat database cermin mengharuskan operasi pemulihan menyertakan klausul MOVE.

      Penting

      Jika nama jalur database utama dan cermin berbeda, Anda tidak dapat menambahkan file. Ini karena saat menerima log untuk operasi tambahkan file, instans server cermin mencoba menempatkan file baru di lokasi yang digunakan oleh database utama.

      Misalnya, perintah berikut memulihkan cadangan database utama yang berada di C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ ke lokasi lain, D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, tempat database cermin berada.

      RESTORE DATABASE AdventureWorks  
         FROM DISK='C:\AdventureWorks.bak'  
         WITH NORECOVERY,   
            MOVE 'AdventureWorks_Data' TO   
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Data.mdf',   
            MOVE 'AdventureWorks_Log' TO  
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Log.ldf';  
      GO  
      
  5. Setelah membuat cadangan lengkap, Anda harus membuat cadangan log pada database utama. Misalnya, pernyataan Transact-SQL berikut mencadangkan log ke file yang sama yang digunakan oleh cadangan penuh sebelumnya:

    BACKUP LOG AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
    GO  
    
  6. Sebelum dapat mulai mencerminkan, Anda harus menerapkan cadangan log yang diperlukan (dan cadangan log berikutnya).

    Misalnya, pernyataan Transact-SQL berikut memulihkan log pertama dari C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=1, NORECOVERY  
    GO  
    
  7. Jika ada cadangan log tambahan yang terjadi sebelum Anda mulai mencerminkan, Anda juga harus memulihkan semua cadangan log tersebut, secara berurutan, ke server cermin menggunakan WITH NORECOVERY.

    Misalnya, pernyataan Transact-SQL berikut memulihkan dua log tambahan dari C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=2, NORECOVERY  
    GO  
    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=3, NORECOVERY  
    GO  
    

Untuk contoh lengkap penyiapan pencerminan database, memperlihatkan penyiapan keamanan, menyiapkan database cermin, menyiapkan mitra, dan menambahkan bukti, lihat Menyiapkan Pencerminan Database (SQL Server).

Tindak Lanjut: Setelah Menyiapkan Database Cermin

  1. Jika ada cadangan log tambahan yang telah diambil sejak operasi RESTORE LOG terbaru, Anda harus menerapkan setiap cadangan log tambahan secara manual, menggunakan RESTORE WITH NORECOVERY.

  2. Mulai sesi pencerminan. Untuk informasi selengkapnya, lihat Membuat Sesi Pencerminan Database Menggunakan Autentikasi Windows (SQL Server Management Studio) atau Membuat Sesi Pencerminan Database Menggunakan Autentikasi Windows (Transact-SQL).

  3. Jika Anda menonaktifkan pekerjaan pencadangan pada database utama, aktifkan kembali pekerjaan tersebut.

  4. Jika database harus dapat dipercaya setelah failover, langkah-langkah penyiapan tambahan diperlukan setelah pencerminan dimulai. Untuk informasi selengkapnya, lihat Menyiapkan Database Cermin untuk Menggunakan Properti Tepercaya (Transact-SQL).

Tugas Terkait

Lihat Juga

Pencerminan Database (SQL Server)
Keamanan Transportasi untuk Pencerminan Database dan Grup Ketersediaan AlwaysOn (SQL Server)
Menyiapkan Pencerminan Database (SQL Server)
Cadangkan dan Pulihkan Katalog dan Indeks Teks Lengkap
Pencerminan Database dan Katalog Teks Lengkap (SQL Server)
Pencerminan dan Replikasi Database (SQL Server)
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
Argumen RESTORE (Transact-SQL)