Pencerminan Database (SQL Server)

Berlaku untuk:SQL Server

Catatan

Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan grup ketersediaan AlwaysOn sebagai gantinya.
Pencerminan Database di SQL Server adalah teknologi yang berbeda dari Microsoft Fabric Database Mirroring.

Pencerminan database adalah solusi untuk meningkatkan ketersediaan database SQL Server. Pencerminan diterapkan per database dan hanya berfungsi dengan database yang menggunakan model pemulihan penuh.

Penting

Untuk informasi tentang dukungan untuk pencerminan database, pembatasan, prasyarat, rekomendasi untuk mengonfigurasi server mitra, dan rekomendasi untuk menyebarkan pencerminan database, lihat Prasyarat, Pembatasan, dan Rekomendasi untuk Pencerminan Database.

Manfaat Pencerminan Database

Pencerminan database adalah strategi sederhana yang menawarkan manfaat berikut:

  • Meningkatkan ketersediaan database.

    Jika terjadi bencana, dalam mode keamanan tinggi dengan failover otomatis, failover dengan cepat membawa salinan siaga database online (tanpa kehilangan data). Dalam mode operasi lainnya, administrator database memiliki alternatif untuk memaksa layanan (dengan kemungkinan kehilangan data) ke salinan database siaga. Untuk informasi selengkapnya, lihat Pengalihan Peran, nanti dalam topik ini.

  • Meningkatkan perlindungan data.

    Pencerminan database memberikan redundansi data yang lengkap atau hampir lengkap, tergantung pada apakah mode operasi adalah keamanan tinggi atau berperforma tinggi. Untuk informasi selengkapnya, lihat Mode Operasi, nanti dalam topik ini.

    Mitra pencerminan database yang berjalan di SQL Server 2008 (10.0.x) Enterprise atau versi yang lebih baru secara otomatis mencoba mengatasi jenis kesalahan tertentu yang mencegah membaca halaman data. Mitra yang tidak dapat membaca halaman meminta salinan baru dari mitra lain. Jika permintaan ini berhasil, halaman yang tidak dapat dibaca digantikan oleh salinan, yang biasanya menyelesaikan kesalahan. Untuk informasi selengkapnya, lihat Perbaikan Halaman Otomatis (Grup Ketersediaan: Pencerminan Database).

  • Meningkatkan ketersediaan database produksi selama peningkatan.

    Untuk meminimalkan waktu henti untuk database cermin, Anda dapat secara berurutan meningkatkan instans SQL Server yang menghosting mitra failover. Ini akan menimbulkan waktu henti hanya dari satu failover. Bentuk peningkatan ini dikenal sebagai peningkatan bergulir. Untuk informasi selengkapnya, lihat Meningkatkan Instans Cermin.

Istilah dan Definisi Pencerminan Database

failover otomatis
Proses di mana, ketika server utama menjadi tidak tersedia, server cermin untuk mengambil alih peran server utama dan membawa salinan database online sebagai database utama.

mitra failover
Dua instans server (server utama atau server cermin) yang bertindak sebagai mitra peralihan peran untuk database cermin.

layanan paksa
Failover yang dimulai oleh pemilik database setelah kegagalan server utama yang mentransfer layanan ke database cermin saat berada dalam status tidak diketahui.

Mode performa tinggi
Sesi pencerminan database beroperasi secara asinkron dan hanya menggunakan server utama dan server cermin. Satu-satunya bentuk pengalihan peran adalah layanan paksa (dengan kemungkinan kehilangan data).

Mode keamanan tinggi
Sesi pencerminan database beroperasi secara sinkron dan, secara opsional, menggunakan bukti, serta server utama dan server cermin.

failover manual
Failover yang dimulai oleh pemilik database, saat server utama masih berjalan, yang mentransfer layanan dari database utama ke database cermin saat mereka dalam status disinkronkan.

database cermin
Salinan database yang biasanya sepenuhnya disinkronkan dengan database utama.

server cermin
Dalam konfigurasi pencerminan database, instans server tempat database cermin berada.

database utama
Dalam pencerminan database, database baca-tulis yang catatan log transaksinya diterapkan ke salinan database baca-saja (database cermin).

server utama
Dalam pencerminan database, mitra yang databasenya saat ini adalah database utama.

ulangi antrean
Menerima catatan log transaksi yang menunggu di disk server cermin.

role
Server utama dan server cermin melakukan peran utama dan cermin pelengkap. Secara opsional, peran saksi dilakukan oleh instans server ketiga.

pengalihan peran
Mengambil alih peran utama oleh cermin.

kirim antrean
Catatan log transaksi yang tidak dikirim yang telah terakumulasi pada disk log server utama.

sesi
Hubungan yang terjadi selama pencerminan database di antara server utama, server cermin, dan server saksi (jika ada).

Setelah sesi pencerminan dimulai atau dilanjutkan, proses di mana catatan log database utama yang telah terakumulasi di server utama dikirim ke server cermin, yang menulis catatan log ini ke disk secepat mungkin untuk mengejar ketinggalan dengan server utama.

Keamanan transaksi
Properti database khusus pencerminan yang menentukan apakah sesi pencerminan database beroperasi secara sinkron atau asinkron. Ada dua tingkat keamanan: PENUH dan NONAKTIF.

saksi
Untuk digunakan hanya dengan mode keamanan tinggi, instans opsional SQL Server yang memungkinkan server cermin mengenali kapan memulai failover otomatis. Tidak seperti dua mitra failover, saksi tidak melayani database. Mendukung failover otomatis adalah satu-satunya peran saksi.

Gambaran Umum Pencerminan Database

Pencerminan database mempertahankan dua salinan database tunggal yang harus berada di instans server yang berbeda dari Mesin Database SQL Server. Biasanya, instans server ini berada di komputer di lokasi yang berbeda. Memulai pencerminan database pada database, memulai hubungan, yang dikenal sebagai sesi pencerminan database, di antara instans server ini.

Satu instans server melayani database ke klien ( server utama). Instans lain bertindak sebagai server siaga panas atau hangat ( server cermin), tergantung pada konfigurasi dan status sesi pencerminan. Saat sesi pencerminan database disinkronkan, pencerminan database menyediakan server siaga panas yang mendukung failover cepat tanpa kehilangan data dari transaksi yang dilakukan. Ketika sesi tidak disinkronkan, server cermin biasanya tersedia sebagai server siaga hangat (dengan kemungkinan kehilangan data).

Server utama dan cermin berkomunikasi dan bekerja sama sebagai mitra dalam sesi pencerminan database. Kedua mitra melakukan peran pelengkap dalam sesi: peran utama dan peran cermin. Pada waktu tertentu, satu mitra melakukan peran utama, dan mitra lain melakukan peran cermin. Setiap mitra digambarkan memiliki perannya saat ini. Mitra yang memiliki peran utama dikenal sebagai server utama, dan salinan databasenya adalah database utama saat ini. Mitra yang memiliki peran cermin dikenal sebagai server cermin, dan salinan databasenya adalah database cermin saat ini. Saat pencerminan database disebarkan di lingkungan produksi, database utama adalah database produksi.

Pencerminan database melibatkan pengulangan setiap operasi sisipan, pembaruan, dan penghapusan yang terjadi pada database utama ke database cermin secepat mungkin. Pengulangan dilakukan dengan mengirim aliran rekaman log transaksi aktif ke server cermin, yang menerapkan rekaman log ke database cermin, secara berurutan, secepat mungkin. Tidak seperti replikasi, yang bekerja pada tingkat logis, pencerminan database berfungsi pada tingkat catatan log fisik. Dimulai di SQL Server 2008 (10.0.x), server utama mengompresi aliran rekaman log transaksi sebelum mengirimkannya ke server cermin. Pemadatan log ini terjadi di semua sesi pencerminan.

Catatan

Instans server tertentu dapat berpartisipasi dalam beberapa sesi pencerminan database bersamaan dengan mitra yang sama atau berbeda. Instans server dapat menjadi mitra dalam beberapa sesi dan saksi di sesi lain. Instans server cermin harus menjalankan SQL Server edisi yang sama.

Di bagian ini:

Mode Operasi

Sesi pencerminan database berjalan dengan operasi sinkron atau asinkron. Di bawah operasi asinkron, transaksi berkomitmen tanpa menunggu server cermin menulis log ke disk, yang memaksimalkan performa. Dalam operasi sinkron, transaksi dilakukan pada kedua mitra, tetapi dengan biaya peningkatan latensi transaksi.

Ada dua mode operasi pencerminan. Salah satunya, mode keamanan tinggi mendukung operasi sinkron. Dalam mode keamanan tinggi, ketika sesi dimulai, server cermin menyinkronkan database cermin bersama dengan database utama secepat mungkin. Setelah database disinkronkan, transaksi dilakukan pada kedua mitra, dengan biaya latensi transaksi yang meningkat.

Mode operasi kedua, mode performa tinggi, berjalan secara asinkron. Server cermin mencoba mengikuti rekaman log yang dikirim oleh server prinsipal. Database cermin mungkin agak tertinggal di belakang database pokok. Namun, biasanya kesenjangan di antara database kecil. Namun, kesenjangan dapat menjadi signifikan jika server utama berada di bawah beban kerja yang berat atau sistem server cermin kelebihan beban.

Dalam mode performa tinggi, segera setelah server utama mengirim catatan log ke server cermin, server utama mengirimkan konfirmasi ke klien. Ini tidak menunggu pengakuan dari server cermin. Ini berarti bahwa transaksi berkomitmen tanpa menunggu server cermin menulis log ke disk. Seperti operasi asinkron memungkinkan server utama untuk berjalan dengan latensi transaksi minimum, dengan potensi risiko beberapa kehilangan data.

Semua sesi pencerminan database hanya mendukung satu server utama dan satu server cermin. Konfigurasi ini ditampilkan dalam ilustrasi berikut.

Mitra dalam sesi pencerminan database

Mode keamanan tinggi dengan failover otomatis memerlukan instans server ketiga, yang dikenal sebagai saksi. Tidak seperti kedua mitra, saksi tidak melayani database. Saksi mendukung failover otomatis dengan memverifikasi apakah server utama aktif dan berfungsi. Server cermin memulai failover otomatis hanya jika cermin dan saksi tetap terhubung satu sama lain setelah keduanya terputus dari server utama.

Ilustrasi berikut menunjukkan konfigurasi yang menyertakan saksi.

Sesi pencerminan yang mencakup saksi

Untuk informasi selengkapnya, lihat Pengalihan Peran, nanti dalam topik ini.

Catatan

Membuat sesi pencerminan baru atau menambahkan bukti ke konfigurasi pencerminan yang ada mengharuskan semua instans server yang terlibat menjalankan versi SQL Server yang sama. Namun, ketika Anda meningkatkan ke SQL Server 2008 (10.0.x) atau versi yang lebih baru, versi instans yang terlibat dapat bervariasi. Untuk informasi selengkapnya, lihat Meningkatkan Instans Cermin.

Brankas Transaksi dan Mode Operasi

Apakah mode operasi asinkron atau sinkron tergantung pada pengaturan keamanan transaksi. Jika Anda secara eksklusif menggunakan SQL Server Management Studio untuk mengonfigurasi pencerminan database, pengaturan keamanan transaksi dikonfigurasi secara otomatis saat Anda memilih mode operasi.

Jika Anda menggunakan Transact-SQL untuk mengonfigurasi pencerminan database, Anda harus memahami cara mengatur keamanan transaksi. Keamanan transaksi dikendalikan oleh properti SAFETY dari pernyataan ALTER DATABASE. Pada database yang sedang dicerminkan, SAFETY bersifat PENUH atau NONAKTIF.

  • Jika opsi SAFETY diatur ke PENUH, operasi pencerminan database sinkron, setelah fase sinkronisasi awal. Jika saksi diatur dalam mode keamanan tinggi, sesi mendukung failover otomatis.

  • Jika opsi SAFETY diatur ke NONAKTIF, operasi pencerminan database tidak sinkron. Sesi berjalan dalam mode performa tinggi, dan opsi WITNESS juga harus NONAKTIF.

Untuk informasi selengkapnya, lihat Mode Operasi Pencerminan Database.

Pengalihan Peran

Dalam konteks sesi pencerminan database, peran utama dan cermin biasanya dapat dipertukarkan dalam proses yang dikenal sebagai pengalihan peran. Pengalihan peran melibatkan transfer peran utama ke server cermin. Dalam pengalihan peran, server cermin bertindak sebagai mitra failover untuk server utama. Ketika peralihan peran terjadi, server cermin mengambil alih peran utama dan membawa salinan database secara online sebagai database utama baru. Server utama sebelumnya, jika tersedia, mengasumsikan peran cermin, dan databasenya menjadi database cermin baru. Berpotensi, peran dapat beralih bolak-balik berulang kali.

Ada tiga bentuk pengalihan peran berikut.

  • Failover otomatis

    Ini membutuhkan mode keamanan tinggi dan keberadaan server cermin dan saksi. Database harus sudah disinkronkan, dan saksi harus terhubung ke server cermin.

    Peran saksi adalah untuk memverifikasi apakah server mitra tertentu aktif dan berfungsi. Jika server cermin kehilangan koneksinya ke server utama tetapi saksi masih terhubung ke server utama, server cermin tidak memulai failover. Untuk informasi selengkapnya, lihat Bukti Pencerminan Database.

  • Failover manual

    Ini membutuhkan mode keamanan tinggi. Mitra harus terhubung satu sama lain, dan database harus sudah disinkronkan.

  • Layanan paksa (dengan kemungkinan kehilangan data)

    Dalam mode performa tinggi dan mode keamanan tinggi tanpa failover otomatis, memaksa layanan dimungkinkan jika server utama telah gagal dan server cermin tersedia.

    Penting

    Mode performa tinggi dimaksudkan untuk berjalan tanpa saksi. Tetapi jika ada saksi, memaksa layanan mengharuskan saksi terhubung ke server cermin.

Dalam skenario pengalihan peran apa pun, segera setelah database utama baru online, aplikasi klien dapat pulih dengan cepat dengan menyambungkan kembali ke database.

Sesi Bersamaan

Instans server tertentu dapat berpartisipasi dalam beberapa sesi pencerminan database bersamaan (sekali per database cermin) dengan instans server yang sama atau berbeda. Seringkali, instans server berfungsi secara eksklusif sebagai mitra atau saksi di semua sesi pencerminan databasenya. Namun, karena setiap sesi tidak bergantung pada sesi lain, instans server dapat bertindak sebagai mitra dalam beberapa sesi dan sebagai saksi di sesi lain. Misalnya, pertimbangkan empat sesi berikut di antara tiga instans server (SSInstance_1, SSInstance_2, dan SSInstance_3). Setiap instans server berfungsi sebagai mitra dalam beberapa sesi dan sebagai saksi di sesi lain:

Instans server Sesi untuk database A Sesi untuk database B Sesi untuk database C Sesi untuk database D
SSInstance_1 saksi Mitra Mitra Mitra
SSInstance_2 Mitra saksi Mitra Mitra
SSInstance_3 Mitra Mitra saksi saksi

Gambar berikut mengilustrasikan dua instans server yang berpartisipasi sebagai mitra bersama-sama dalam dua sesi pencerminan. Satu sesi adalah untuk database bernama Db_1, dan sesi lainnya adalah untuk database bernama Db_2.

Dua instans server dalam dua sesi bersamaan

Masing-masing database tidak bergantung pada database lainnya. Misalnya, instans server awalnya mungkin menjadi server cermin untuk dua database. Jika salah satu database tersebut gagal, instans server menjadi server utama untuk database failed-over sambil tetap menjadi server cermin untuk database lain.

Sebagai contoh lain, pertimbangkan instans server yang merupakan server utama untuk dua database atau lebih yang berjalan dalam mode keamanan tinggi dengan failover otomatis, Jika instans server gagal, semua database secara otomatis failover ke database cermin masing-masing.

Saat menyiapkan instans server untuk beroperasi baik sebagai mitra maupun saksi, pastikan bahwa titik akhir pencerminan database mendukung kedua peran (untuk informasi selengkapnya, lihat Titik Akhir Pencerminan Database (SQL Server)). Selain itu, pastikan bahwa sistem memiliki sumber daya yang memadai untuk mengurangi pertikaian sumber daya.

Catatan

Karena database cermin independen satu sama lain, database tidak dapat gagal sebagai grup.

Koneksi Klien

Dukungan koneksi klien untuk sesi pencerminan database disediakan oleh Penyedia Data Microsoft .NET untuk SQL Server. Untuk informasi selengkapnya, lihat Koneksi Klien ke Sesi Pencerminan Database (SQL Server).

Dampak Menjeda Sesi pada Log Transaksi Utama

Kapan saja, pemilik database dapat menjeda sesi. Menjeda mempertahankan status sesi saat menghapus pencerminan. Ketika sesi dijeda, server utama tidak mengirim rekaman log baru ke server cermin. Semua rekaman ini tetap aktif dan terakumulasi dalam log transaksi database utama. Selama sesi pencerminan database tetap dijeda, log transaksi tidak dapat dipotong. Oleh karena itu, jika sesi pencerminan database dijeda terlalu lama, log dapat terisi.

Untuk informasi selengkapnya, lihat Menjeda dan Lanjutkan Pencerminan Database (SQL Server).

Menyiapkan Sesi Pencerminan Database

Sebelum sesi pencerminan dapat dimulai, pemilik database atau administrator sistem harus membuat database cermin, menyiapkan titik akhir dan login, dan, dalam beberapa kasus, membuat dan menyiapkan sertifikat. Untuk informasi selengkapnya, lihat Menyiapkan Pencerminan Database (SQL Server).

Interoperabilitas dan Koeksistensi dengan Fitur Mesin Database Lainnya

Pencerminan database dapat digunakan dengan fitur atau komponen SQL Server berikut.

Di Bagian Ini

Prasyarat, Pembatasan, dan Rekomendasi untuk Pencerminan Database
Menjelaskan prasyarat dan rekomendasi untuk menyiapkan pencerminan database.

Mode Operasi Mirroring Database
Berisi informasi tentang mode operasi sinkron dan asinkron untuk sesi pencerminan database, dan tentang beralih peran mitra selama sesi pencerminan database.

Bukti Pencerminan Database
Menjelaskan peran saksi dalam pencerminan database, cara menggunakan satu saksi dalam beberapa sesi pencerminan, rekomendasi perangkat lunak dan perangkat keras untuk saksi, dan peran saksi dalam failover otomatis. Ini juga berisi informasi tentang menambahkan atau menghapus saksi.

Pengalihan Peran Selama Sesi Pencerminan Database (SQL Server)
Berisi informasi tentang beralih peran mitra selama sesi pencerminan database, termasuk failover otomatis, failover manual, dan layanan paksa (dengan kemungkinan kehilangan data). Selain itu, berisi informasi tentang memperkirakan gangguan layanan selama pengalihan peran.

Kemungkinan Kegagalan Selama Pencerminan Database
Membahas masalah fisik, sistem operasi, dan SQL Server, termasuk kesalahan keras dan kesalahan lunak, yang dapat menyebabkan kegagalan dalam sesi pencerminan database. Membahas bagaimana mekanisme waktu habis pencerminan merespons kesalahan lunak.

Titik Akhir Pencerminan Database (SQL Server)
Membahas bagaimana fungsi titik akhir pencerminan database.

Menyiapkan Pencerminan Database (SQL Server)
Berisi topik tentang prasyarat, rekomendasi, dan langkah-langkah untuk menyiapkan pencerminan database.

Menyambungkan Klien ke Sesi Pencerminan Database (SQL Server)
Berisi topik yang mencakup atribut string koneksi klien dan algoritma untuk menyambungkan dan menyambungkan kembali klien ke database cermin.

Menjeda dan Membalas Pencerminan Database (SQL Server)
Membahas apa yang terjadi saat pencerminan database dijeda, termasuk dampak pada pemotongan log transaksi, dan berisi deskripsi tentang cara menjeda dan melanjutkan pencerminan database.

Menghapus Pencerminan Database (SQL Server)
Membahas dampak penghapusan pencerminan dan berisi deskripsi tentang cara mengakhiri sesi

Memantau Pencerminan Database (SQL Server)
Berisi informasi tentang menggunakan Monitor Pencerminan Database atau prosedur tersimpan dbmmonitor untuk memantau pencerminan atau sesi database.

Tugas Terkait

Tugas Konfigurasi

Menggunakan SQL Server Management Studio

Menggunakan T-SQL

Menggunakan Transact-SQL atau SQL Server Management Studio

Tugas Administratif

T-SQL

SQL Server Management Studio

Lihat Juga

Titik Akhir Pencerminan Database (SQL Server)
Perbaikan Halaman Otomatis (Grup Ketersediaan: Pencerminan Database)
Memecahkan Masalah Konfigurasi Pencerminan Database (SQL Server)
Pencerminan Database: Interoperabilitas dan Koeksistensi (SQL Server)
Prasyarat, Pembatasan, dan Rekomendasi untuk Pencerminan Database
Gambaran Umum Grup Ketersediaan AlwaysOn (SQL Server)
Tentang Pengiriman Log (SQL Server)