Mengonfigurasi grup failover untuk Azure SQL Managed Instance

Berlaku untuk:Azure SQL Managed Instance

Artikel ini mengajarkan cara mengonfigurasi grup failover untuk Azure SQL Managed Instance menggunakan portal Azure dan Azure PowerShell.

Agar skrip PowerShell end-to-end membuat kedua instans dalam grup failover, tinjau Menambahkan instans ke grup failover.

Prasyarat

Pertimbangkan prasyarat berikut:

  • Instans terkelola sekunder harus kosong yaitu, tidak berisi database pengguna.
  • Dua instans SQL Managed Instance harus berupa tingkat layanan yang sama, dan memiliki ukuran penyimpanan yang sama. Meskipun tidak diperlukan, sangat disarankan agar dua instans memiliki ukuran komputasi yang sama, untuk memastikan bahwa instans sekunder dapat secara berkelanjutan memproses perubahan yang direplikasi dari instans utama, termasuk periode aktivitas puncak.
  • Rentang alamat IP untuk jaringan virtual instans utama tidak boleh tumpang tindih dengan rentang alamat jaringan virtual untuk instans terkelola sekunder, atau jaringan virtual lain yang di-peering dengan jaringan virtual utama atau sekunder.
  • Saat membuat instans terkelola sekunder, Anda harus menentukan ID zona DNS instans utama sebagai nilai DnsZonePartner parameter. Jika Anda tidak menentukan nilai untuk DnsZonePartner, ID zona dihasilkan sebagai string acak saat instans pertama dibuat di setiap jaringan virtual dan ID yang sama ditetapkan ke semua instans lain di subnet yang sama. Setelah ditetapkan, zona DNS tidak dapat dimodifikasi.
  • Aturan Network Security Groups (NSG) pada instans hosting subnet harus memiliki port 5022 (TCP) dan rentang port 11000-11999 (TCP) terbuka masuk dan keluar untuk koneksi dari dan ke subnet yang menghosting instans terkelola lainnya. Ini berlaku untuk subnet, menghosting instans primer dan sekunder.
  • Kolase dan zona waktu instans terkelola sekunder harus cocok dengan instans terkelola utama.
  • Instans terkelola harus disebarkan di wilayah berpasangan karena alasan performa. Instans terkelola yang berada di wilayah yang dipasangkan secara geografis mendapat manfaat dari kecepatan replikasi geografis yang jauh lebih tinggi dibandingkan dengan wilayah yang tidak berpasangan.

Rentang ruang alamat

Untuk memeriksa ruang alamat instans utama, buka sumber daya jaringan virtual untuk instans utama dan pilih Ruang alamat di bawah Pengaturan. Periksa rentang di bawah Rentang alamat:

Cuplikan layar ruang alamat untuk jaringan virtual utama di portal Azure.

Tentukan ID zona instans utama

Saat membuat instans sekunder, Anda harus menentukan ID zona instans utama sebagai DnsZonePartner.

Jika Anda membuat instans sekunder di portal Azure, pada tab Pengaturan tambahan, di bawah Replikasi geografis, pilih Ya untuk Digunakan sebagai sekunder failover lalu pilih instans utama dari menu drop-down:

Cuplikan layar portal Azure menentukan instans terkelola utama sebagai sekunder failover di halaman pengaturan tambahan.

Mengaktifkan konektivitas antar instans

Koneksi ivitas antara subnet jaringan virtual yang menghosting instans primer dan sekunder harus dibuat untuk arus lalu lintas replikasi geografis yang tidak terganggu. Ada beberapa cara untuk membangun konektivitas antara instans terkelola di berbagai wilayah Azure, termasuk:

Peeringjaringan virtual global direkomendasikan sebagai cara paling berkinerja dan kuat untuk membangun konektivitas antar instans dalam grup failover. Peering jaringan virtual global menyediakan koneksi privat latensi rendah bandwidth tinggi antara jaringan virtual yang di-peering menggunakan infrastruktur backbone Microsoft. Tidak ada Internet publik, gateway, atau enkripsi tambahan yang diperlukan dalam komunikasi antara jaringan virtual yang di-peering.

Penting

Cara alternatif untuk menghubungkan instans yang melibatkan perangkat jaringan tambahan dapat mempersulit masalah konektivitas pemecahan masalah konektivitas atau kecepatan replikasi, mungkin memerlukan keterlibatan aktif administrator jaringan, dan berpotensi memperpanjang waktu resolusi secara signifikan.

Terlepas dari mekanisme konektivitas, ada persyaratan yang harus dipenuhi agar lalu lintas georeplikasi mengalir:

  • Tabel rute dan grup keamanan jaringan yang ditetapkan ke subnet instans terkelola tidak dibagikan di dua jaringan virtual yang di-peering.
  • Aturan Network Security Group (NSG) pada subnet yang menghosting instans utama memungkinkan:
    • Lalu lintas masuk pada port 5022 dan rentang port 11000-11999 dari subnet yang menghosting instans sekunder.
    • Lalu lintas keluar pada port 5022 dan rentang port 11000-11999 ke subnet yang menghosting instans sekunder.
  • Aturan Network Security Group (NSG) pada subnet yang menghosting instans sekunder memungkinkan:
    • Lalu lintas masuk pada port 5022 dan rentang port 11000-11999 dari subnet yang menghosting instans utama.
    • Lalu lintas keluar pada port 5022 dan rentang port 11000-11999 ke subnet yang menghosting instans utama.
  • Rentang alamat IP VNet yang menghosting instans primer dan sekunder tidak boleh tumpang tindih.
  • Tidak ada tumpang tindih tidak langsung rentang alamat IP antara VNet yang menghosting instans utama dan sekunder, atau VNet lain yang mereka serekan melalui peering jaringan virtual lokal atau cara lain.

Selain itu, jika Anda menggunakan mekanisme lain untuk menyediakan konektivitas antara instans daripada peering jaringan virtual global yang direkomendasikan, Anda perlu memastikan hal berikut:

  • Perangkat jaringan apa pun yang digunakan, seperti firewall atau appliance virtual jaringan (NVA), tidak memblokir lalu lintas pada port yang disebutkan sebelumnya.
  • Perutean dikonfigurasi dengan benar, dan perutean asimetris dihindari.
  • Jika Anda menyebarkan grup failover di topologi jaringan hub-and-spoke lintas wilayah, lalu lintas replikasi harus langsung berada di antara dua subnet instans terkelola daripada diarahkan melalui jaringan hub. Ini membantu Anda menghindari masalah kecepatan konektivitas dan replikasi.
  1. Di portal Azure, buka Sumber daya jaringan virtual untuk instans terkelola utama Anda.
  2. Pilih Peering di bawah Pengaturan lalu pilih + Tambahkan.

Cuplikan layar halaman peering untuk jaringan virtual A di portal Azure.

  1. Masukkan atau pilih nilai untuk pengaturan berikut:

    Pengaturan Deskripsi
    Jaringan virtual ini
    Nama tautan penyerekan Nama untuk peering harus unik dalam jaringan virtual.
    Lalu lintas ke jaringan virtual jarak jauh Pilih Izinkan (default) untuk mengaktifkan komunikasi antara dua jaringan virtual melalui alur default VirtualNetwork . Mengaktifkan komunikasi antara jaringan virtual memungkinkan sumber daya yang terhubung ke salah satu jaringan virtual untuk berkomunikasi satu sama lain dengan bandwidth dan latensi yang sama seolah-olah mereka terhubung ke jaringan virtual yang sama. Semua komunikasi antara sumber daya dalam dua jaringan virtual adalah melalui jaringan pribadi Azure.
    Lalu lintas diteruskan dari jaringan virtual jarak jauh Opsi Diizinkan (default) dan Blokir akan berfungsi untuk tutorial ini. Untuk informasi selengkapnya, lihat Membuat peering
    Gateway jaringan virtual atau Route Server Pilih Tidak ada. Untuk informasi selengkapnya tentang opsi lain yang tersedia, lihat Membuat peering.
    Jaringan virtual jarak jauh
    Nama tautan penyerekan Nama peering yang sama untuk digunakan dalam instans sekunder hosting jaringan virtual.
    Model penyebaran jaringan virtual Pilih Resource manager.
    Saya mengetahui ID sumber daya saya Biarkan kotak centang ini tidak dicentang.
    Langganan Pilih langganan Azure dari jaringan virtual yang menghosting instans sekunder yang ingin Anda rekan.
    Jaringan virtual Pilih jaringan virtual yang menghosting instans sekunder yang ingin Anda rekan. Jika jaringan virtual terdaftar, tetapi berwarna abu-abu, mungkin karena ruang alamat untuk jaringan virtual tumpang tindih dengan ruang alamat untuk jaringan virtual ini. Jika ruang alamat jaringan virtual tumpang tindih, ruang tersebut tidak dapat di-peering.
    Lalu lintas ke jaringan virtual jarak jauh Pilih Izinkan (default)
    Lalu lintas diteruskan dari jaringan virtual jarak jauh Opsi Diizinkan (default) dan Blokir akan berfungsi untuk tutorial ini. Untuk informasi selengkapnya, lihat Membuat peering.
    Gateway jaringan virtual atau Route Server Pilih Tidak ada. Untuk informasi selengkapnya tentang opsi lain yang tersedia, lihat Membuat peering.
  2. Pilih Tambahkan untuk mengonfigurasi peering dengan jaringan virtual yang Anda pilih. Setelah beberapa detik, pilih tombol Segarkan dan status peering akan berubah dari Memperbarui menjadi Terhubung.

    Cuplikan layar status peering jaringan virtual pada halaman peering di portal Azure.

Buat grup kegagalan

Membuat grup kegagalan dan menambahkan kumpulan elastis ke dalamnya menggunakan portal Microsoft Azure atau PowerShell.

Membuat grup kegagalan untuk SQL Managed Instances Anda menggunakan portal Microsoft Azure.

  1. Pilih Azure SQL di menu sebelah kiri portal Microsoft Azure. Jika Azure SQL tidak ada dalam daftar, pilih Semua layanan, lalu ketik Azure SQL di kotak pencarian. (Opsional) Pilih bintang di samping Azure SQL untuk menambahkannya sebagai item favorit ke navigasi sebelah kiri.

  2. Pilih instans terkelola utama yang ingin Anda tambahkan ke grup kegagalan.

  3. Di bawah Pengaturan, navigasikan ke Grup Failover Instans lalu pilih Tambahkan grup untuk membuka halaman pembuatan grup failover instans.

    Cuplikan layar menambahkan halaman grup failover di portal Azure.

  4. Pada halaman Grup Kegagalan Instans, ketik nama grup kegagalan Anda lalu pilih instans terkelola sekunder dari drop-down. Pilih Buat untuk membuat grup kegagalan Anda.

    Cuplikan layar untuk membuat grup failover di portal Azure.

  5. Setelah penyebaran grup failover selesai, Anda akan dibawa kembali ke halaman grup Failover.

Menguji failover

Menguji grup kegagalan Anda menggunakan portal Microsoft Azure atau PowerShell.

Menguji grup kegagalan Anda menggunakan portal Microsoft Azure.

  1. Navigasikan ke instans terkelola sekunder Anda di dalam portal Azure dan pilih Grup Failover Instans di bawah pengaturan.

  2. Perhatikan instans terkelola dalam peran utama dan sekunder.

  3. Pilih Failover lalu pilih Ya pada peringatan tentang sesi TDS yang terputus.

    Cuplikan layar untuk melakukan failover pada grup failover di portal Azure.

  4. Perhatikan instans terkelola dalam peran utama dan sekunder. Jika kegagalan berhasil, kedua instans harus telah beralih peran.

    Cuplikan layar status grup failover peran instans yang dialihkan setelah failover.

Penting

Jika peran tidak beralih, periksa konektivitas antara instans dan aturan NSG dan firewall terkait. Lanjutkan dengan langkah berikutnya hanya setelah peran beralih.

  1. Buka instans terkelola sekunder baru dan pilih Failover sekali lagi untuk menggagalkan kembali instans utama ke peran utama.

Lokasikan titik akhir pendengar

Setelah grup kegagalan Anda dikonfigurasi, perbarui string koneksi untuk aplikasi Anda ke titik akhir pendengar. Ini membuat aplikasi Anda tetap terhubung ke pendengar grup failover, bukan database utama, kumpulan elastis, atau database instans. Dengan demikian, Anda tidak perlu memperbarui string koneksi secara manual setiap kali entitas database Anda gagal, dan lalu lintas dirutekan ke entitas mana pun yang saat ini menjadi utama.

Titik akhir pendengar dalam bentuk fog-name.database.windows.net, dan terlihat di portal Microsoft Azure, saat melihat grup kegagalan:

Cuplikan layar tempat menemukan grup failover string koneksi di portal Azure.

Membuat grup di antara instans pada langganan yang berbeda

Anda dapat membuat grup failover antara SQL Managed Instances dalam dua langganan yang berbeda, selama langganan dikaitkan dengan penyewa Microsoft Entra yang sama.

  • Saat menggunakan PowerShell API, Anda dapat melakukannya dengan menentukan parameter PartnerSubscriptionId untuk SQL Managed Instance sekunder.
  • Saat menggunakan REST API, setiap ID instans yang disertakan dalam parameter properties.managedInstancePairs dapat memiliki ID langganan sendiri.
  • portal Azure tidak mendukung pembuatan grup failover di berbagai langganan.

Penting

Portal Azure tidak mendukung pembuatan grup failover di berbagai langganan. Untuk grup failover di berbagai langganan dan/atau grup sumber daya, failover tidak dapat dimulai secara manual melalui portal Azure dari instans terkelola SQL utama. Sebagai gantinya, mulai dari instans geo-sekunder.

Mencegah hilangnya data penting

Dikarenakan latensi jaringan area luas yang tinggi, salinan berkelanjutan menggunakan mekanisme replikasi asinkron. Replikasi asinkron membuat kemungkinan kehilangan data tidak dapat dihindari jika primer gagal. Untuk melindungi pembaruan penting ini, pengembang aplikasi dapat memanggil prosedur sistem sp_wait_for_database_copy_sync segera setelah melakukan transaksi. Memanggil sp_wait_for_database_copy_sync akan memblokir utas panggilan hingga transaksi terakhir yang dilakukan telah dikirim ke database sekunder. Namun, tidak menunggu transaksi yang dikirimkan diputar ulang (redone) pada sekunder. sp_wait_for_database_copy_sync dicakup ke tautan geo-replikasi tertentu. Setiap pengguna dengan hak koneksi ke database utama dapat memanggil prosedur ini.

Catatan

sp_wait_for_database_copy_sync mencegah kehilangan data setelah geo-failover untuk transaksi tertentu, tetapi tidak menjamin sinkronisasi penuh untuk akses baca. Keterlambatan yang disebabkan oleh panggilan sp_wait_for_database_copy_sync prosedur dapat menjadi signifikan dan bergantung pada ukuran log transaksi pada saat panggilan.

Mengubah wilayah sekunder

Mari kita asumsikan bahwa instans A adalah instans utama, instans B adalah instans sekunder yang ada, dan instans C adalah instans sekunder baru di wilayah ketiga. Untuk melakukan transisi, ikuti langkah-langkah berikut:

  1. Buat instans C dengan ukuran yang sama dengan A dan di zona DNS yang sama.
  2. Hapus grup failover antara instans A dan B. Pada titik ini, upaya untuk masuk mulai gagal karena alias SQL untuk pendengar grup failover telah dihapus dan gateway tidak akan mengenali nama grup failover. Database sekunder terputus dari utama dan menjadi database baca-tulis.
  3. Buat grup failover dengan nama yang sama antara instans A dan C. Ikuti instruksi dalam mengonfigurasi panduan grup failover. Ini adalah operasi ukuran data dan selesai ketika semua database dari instans A disemai dan disinkronkan.
  4. Hapus instans B jika tidak diperlukan untuk menghindari biaya yang tidak perlu.

Catatan

Setelah langkah 2 dan sampai langkah 3 selesai, database di instans A akan tetap tidak terlindungi dari kegagalan fatal instans A.

Mengubah wilayah utama

Mari kita asumsikan bahwa instans A adalah instans utama, instans B adalah instans sekunder yang sudah ada, dan instans C adalah instans sekunder baru di wilayah ketiga. Untuk melakukan transisi, ikuti langkah-langkah berikut:

  1. Buat instans C dengan ukuran yang sama dengan B dan di zona DNS yang sama.
  2. Koneksi ke instans B dan failover secara manual untuk mengalihkan instans utama ke B. Instans A menjadi instans sekunder baru secara otomatis.
  3. Hapus grup failover antara instans A dan B. Pada titik ini, upaya masuk menggunakan titik akhir grup failover mulai gagal. Database sekunder pada A terputus dari utama dan menjadi database baca-tulis.
  4. Buat grup failover dengan nama yang sama antara instans B dan C. Ikuti instruksi dalam panduan grup failover. Ini adalah operasi ukuran data dan selesai ketika semua database dari instans A disemai dan disinkronkan. Pada titik ini upaya masuk berhenti gagal.
  5. Failover secara manual untuk mengalihkan instans C ke peran utama. Instans B menjadi instans sekunder baru secara otomatis.
  6. Hapus instans A jika tidak diperlukan untuk menghindari biaya yang tidak perlu.

Perhatian

Setelah langkah 3 dan sampai langkah 4 selesai, database dalam instans A akan tetap tidak terlindungi dari kegagalan bencana instans A.

Penting

Saat grup failover dihapus, catatan DNS untuk titik akhir pendengar juga dihapus. Pada saat itu, ada kemungkinan non-nol orang lain membuat grup failover dengan nama yang sama. Karena nama grup failover harus unik secara global, ini akan mencegah Anda menggunakan nama yang sama lagi. Untuk meminimalkan risiko, jangan gunakan nama grup failover yang umum.

Mengaktifkan skenario yang bergantung pada objek dari database sistem

Database sistem tidak direplikasi ke instans sekunder dalam grup failover. Untuk mengaktifkan skenario yang bergantung pada objek dari database sistem, pastikan untuk membuat objek yang sama pada instans sekunder dan tetap sinkronkan dengan instans utama.

Misalnya, jika Anda berencana untuk menggunakan login yang sama pada instans sekunder, pastikan untuk membuatnya dengan SID yang identik.

-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;

Untuk mempelajari selengkapnya, lihat Replikasi login dan pekerjaan agen.

Menyinkronkan properti instans dan instans kebijakan retensi

Instans dalam grup failover tetap memisahkan sumber daya Azure, dan tidak ada perubahan yang dilakukan pada konfigurasi instans primer akan secara otomatis direplikasi ke instans sekunder. Pastikan untuk melakukan semua perubahan yang relevan baik pada contoh primer dan sekunder. Misalnya, jika Anda mengubah redundansi penyimpanan cadangan atau kebijakan retensi cadangan jangka panjang pada contoh primer, pastikan untuk mengubahnya pada instans sekunder juga.

Menskalakan instans

Anda dapat meningkatkan atau menurunkan instans primer dan sekunder ke ukuran komputasi yang berbeda dalam tingkat layanan yang sama atau ke tingkat layanan yang berbeda. Saat meningkatkan skala dalam tingkat layanan yang sama, kami sarankan Anda meningkatkan skala geo-sekunder terlebih dahulu, lalu meningkatkan skala primer. Saat menurunkan skala dalam tingkat layanan yang sama, balikkan urutan: turunkan skala primer terlebih dahulu, lalu turunkan skala sekunder. Saat Anda menskalakan instans ke tingkat layanan yang berbeda, rekomendasi ini diberlakukan.

Urutan ini direkomendasikan khususnya untuk menghindari masalah di mana instans sekunder di SKU yang lebih rendah mengalami kelebihan beban dan harus ditambahkan kembali selama proses peningkatan atau penurunan.

Izin

Izin untuk grup failover dikelola melalui kontrol akses berbasis peran Azure (Azure RBAC).

Peran Kontributor SQL Managed Instance, yang tercakup dalam grup sumber daya instans terkelola utama dan sekunder, cukup untuk melakukan semua operasi manajemen pada grup failover.

Tabel berikut ini menyediakan tampilan terperinci dari izin minimal yang diperlukan dan tingkat cakupan minimal yang diperlukan masing-masing untuk operasi manajemen pada grup failover:

Operasi manajemen Izin Cakupan
Membuat/Memperbarui grup failover Microsoft.Sql/locations/instanceFailoverGroups/write Grup sumber daya instans terkelola primer dan sekunder
Membuat/Memperbarui grup failover Microsoft.Sql/managedInstances/write Instans terkelola primer dan sekunder
Grup failover failover failover Microsoft.Sql/locations/instanceFailoverGroups/failover/action Grup sumber daya instans terkelola primer dan sekunder
Paksa grup failover failover Microsoft.Sql/locations/instanceFailoverGroups/forceFailoverAllowDataLoss/action Grup sumber daya instans terkelola primer dan sekunder
Menghapus grup failover Microsoft.Sql/locations/instanceFailoverGroups/delete Grup sumber daya instans terkelola primer dan sekunder

Batasan

Ketahui batasan berikut:

  • Grup failover tidak dapat dibuat di antara dua instans di wilayah Azure yang sama.
  • Grup failover tidak dapat diganti namanya. Anda harus menghapus grup dan membuatnya kembali dengan nama yang berbeda.
  • Grup failover berisi tepat dua instans terkelola. Menambahkan instans tambahan ke grup failover tidak didukung.
  • Instans hanya dapat berpartisipasi dalam satu grup failover kapan saja.
  • Grup failover tidak dapat dibuat di antara dua instans milik penyewa Azure yang berbeda.
  • Grup failover antara dua instans milik langganan Azure yang berbeda tidak dapat dibuat menggunakan portal Azure atau Azure CLI. Gunakan Azure PowerShell atau REST API sebagai gantinya untuk membuat grup failover tersebut. Setelah dibuat, grup failover lintas langganan secara teratur terlihat di portal Azure dan semua operasi berikutnya termasuk failover dapat dimulai dari portal Azure atau Azure CLI.
  • Penggantian nama database tidak didukung untuk database dalam grup failover. Anda harus menghapus grup failover untuk sementara agar dapat mengganti nama database.
  • Database sistem tidak direplikasi ke instans sekunder dalam grup failover. Oleh karena itu, skenario yang bergantung pada objek dari database sistem seperti pekerjaan Server Logins dan Agent, mengharuskan objek dibuat secara manual pada instans sekunder dan juga secara manual disimpan sesuai dengan perubahan yang telah dibuat pada instans utama. Satu-satunya pengecualian adalah Kunci master layanan (SMK) untuk SQL Managed Instance yang direplikasi secara otomatis ke instans sekunder selama pembuatan grup failover. Setiap perubahan SMK berikutnya pada instans utama namun tidak akan direplikasi ke instans sekunder. Untuk mempelajari selengkapnya, lihat cara Mengaktifkan skenario yang bergantung pada objek dari database sistem.
  • Grup failover tidak dapat dibuat di antara instans jika salah satunya berada dalam kumpulan instans.

Mengelola grup failover secara terprogram

Grup failover juga dapat dikelola secara terprogram menggunakan Azure PowerShell, Azure CLI, dan REST API. Tabel berikut ini menjelaskan kumpulan perintah yang tersedia. Grup failover mencakup sekumpulan API Azure Resource Manager untuk manajemen, termasuk azure SQL Database REST API dan cmdlet Azure PowerShell. API tersebut ini memerlukan penggunaan grup sumber daya dan mendukung kontrol akses berbasis peran Azure (Azure RBAC). Untuk informasi selengkapnya tentang cara menerapkan peran akses, lihat Kontrol akses berbasis peran Azure (Azure RBAC).

Cmdlet Deskripsi
Baru-AzSqlDatabaseInstanceFailoverGroup Perintah ini membuat grup failover dan mendaftarkannya di instans utama dan sekunder
Set-AzSqlDatabaseInstanceFailoverGroup Memodifikasi konfigurasi grup failover
Mendapatkan-AzSqlDatabaseInstanceFailoverGroup Mengambil konfigurasi grup failover
Switch-AzSqlDatabaseInstanceFailoverGroup Memicu failover grup failover ke instans sekunder
Remove-AzSqlDatabaseInstanceFailoverGroup Menghapus grup failover

Langkah berikutnya

Untuk langkah-langkah mengonfigurasi grup failover, lihat panduan Menambahkan instans terkelola ke grup failover.

Untuk gambaran umum fitur, lihat Grup failover. Untuk mempelajari cara menghemat biaya lisensi, lihat Mengonfigurasi replika siaga.