Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan
Pencerminan Database di SQL Server adalah teknologi yang berbeda dari Microsoft Fabric Database Mirroring.
Pencerminan database di SQL Server memungkinkan Anda untuk menyimpan salinan, atau proyeksi, dari database SQL Server pada server siaga. Pencerminan memastikan dua salinan terpisah dari data selalu ada, memberikan ketersediaan tinggi dan redundansi data lengkap. Penyedia Microsoft SqlClient untuk SQL Server menyediakan dukungan implisit untuk pencerminan database. Pengembang tidak perlu melakukan apa pun setelah klien dikonfigurasi untuk database SQL Server. Selain itu SqlConnection , objek mendukung mode koneksi eksplisit yang memungkinkan penyediaan nama server mitra failover di ConnectionString.
Urutan aktivitas sederhana berikut ini muncul untuk SqlConnection objek yang menargetkan database yang dikonfigurasi untuk pencerminan:
- Aplikasi klien berhasil terhubung ke database utama, dan server mengirim kembali nama server mitra, yang di-cache klien.
- Jika server yang berisi database utama gagal atau konektivitas terputus, status koneksi dan transaksi hilang. Aplikasi klien mencoba membangun kembali koneksi ke database utama dan gagal.
- Aplikasi klien kemudian secara transparan mencoba membuat koneksi ke database cermin pada server mitra. Jika berhasil, koneksi diarahkan ke database cermin, yang kemudian menjadi database utama baru.
Menentukan mitra failover di string koneksi
Jika Anda memberikan nama server mitra failover di string koneksi dan database utama tidak tersedia ketika aplikasi klien terhubung, klien akan secara transparan mencoba koneksi dengan mitra failover.
";Failover Partner=PartnerServerName"
Jika Anda menghilangkan nama server mitra failover dan database utama tidak tersedia saat aplikasi klien pertama kali terhubung, maka SqlException terjadi.
SqlConnection Ketika berhasil dibuka, server mengembalikan nama mitra failover, yang menggantikan nilai apa pun yang disediakan dalam string koneksi.
Catatan
Anda harus secara eksplisit menentukan katalog awal atau nama database pada koneksi string untuk skenario pencerminan database. Jika klien menerima informasi failover pada koneksi yang tidak memiliki katalog atau database awal yang ditentukan secara eksplisit, informasi failover tidak disimpan di tembolok dan aplikasi tidak mengupayakan pemulihan jika server utama gagal. Jika string koneksi memiliki nilai untuk mitra failover, namun tidak ada nilai untuk katalog atau database awal, maka sebuah InvalidArgumentException ditambahkan.
Mengambil nama server saat ini
Ketika failover terjadi, Anda dapat mengambil nama server tempat koneksi saat ini tersambung dengan menggunakan DataSource properti SqlConnection objek. Fragmen kode berikut mengambil nama server aktif, dengan asumsi bahwa variabel koneksi mereferensikan SqlConnection terbuka.
Ketika peristiwa failover terjadi dan koneksi beralih ke server cermin, properti DataSource diperbarui untuk mencerminkan nama cermin.
string activeServer = connection.DataSource;
Perilaku pencerminan SqlClient
Klien selalu mencoba menyambungkan ke server utama. Jika gagal, maka mitra failover akan dicoba. Jika database cermin telah dialihkan ke peran utama di server mitra, koneksi berhasil dan pemetaan cermin prinsipal baru dikirim ke klien dan disimpan di tembolok selama masa panggilan AppDomain. Ini tidak disimpan dalam penyimpanan persisten dan tidak tersedia untuk koneksi di masa mendatang di AppDomain atau proses yang berbeda. Namun, tersedia untuk koneksi nanti dalam AppDomain yang sama. AppDomain atau proses lain yang berjalan pada komputer yang sama atau berbeda selalu memiliki kumpulan koneksinya, dan koneksi tersebut tidak diatur ulang. Dalam hal ini, jika database utama turun, setiap proses atau AppDomain pernah gagal, dan kumpulan secara otomatis dibersihkan.
Catatan
Pencerminan dukungan pada server dikonfigurasi berdasarkan per database. Jika operasi manipulasi data dijalankan terhadap database lain yang tidak termasuk dalam rangkaian prinsipal /kaca, baik dengan menggunakan nama multipart atau dengan mengubah database saat ini, perubahan pada database lain ini tidak menyebar jika terjadi kegagalan. Tidak ada kesalahan yang dihasilkan ketika data dimodifikasi dalam database yang tidak dicerminkan. Pengembang harus mengevaluasi kemungkinan dampak dari operasi tersebut.
Langkah berikutnya
Sumber daya pencerminan database
Untuk dokumentasi konseptual dan informasi tentang mengonfigurasi, menyebarkan, dan mengelola pencerminan, lihat sumber daya berikut dalam dokumentasi SQL Server.
| Sumber daya | Deskripsi |
|---|---|
| Pencerminan Database | Menjelaskan cara mengatur dan mengonfigurasi pencerminan di SQL Server. |