Mengonfigurasi grup kegagalan untuk Azure SQL Database

Berlaku untuk:Azure SQL Database

Artikel ini mengajarkan cara mengonfigurasi grup failover untuk database tunggal dan terkumpul di Azure SQL Database dengan menggunakan portal Azure, Azure PowerShell, dan Azure CLI.

Untuk skrip end-to-end, tinjau cara menambahkan database tunggal ke grup failover dengan Azure PowerShell atau Azure CLI.

Prasyarat

Pertimbangkan prasyarat berikut untuk membuat grup failover otomatis bagi database tunggal:

  • Pengaturan masuk dan firewall untuk server sekunder harus cocok dengan yang ada pada server utama Anda.

Membuat grup failover

Membuat grup kegagalan Anda dan menambahkan database tunggal Anda ke dalamnya 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 menyukainya dan menambahkannya sebagai item di navigasi sebelah kiri.

  2. Pilih database yang ingin Anda tambahkan ke grup kegagalan.

  3. Pilih nama server di bawah Nama server untuk membuka pengaturan untuk server.

    Open server for single db

  4. Pilih Grup kegagalan di bawah panel Pengaturan, lalu pilih Tambahkan grup untuk membuat grup kegagalan baru.

    Add new failover group

  5. Pada halaman Grup Kegagalan, masukkan atau pilih nilai yang perlukan, lalu pilih Buat. Buat server sekunder baru, atau pilih server sekunder yang ada. Server sekunder dalam grup failover harus berada di wilayah yang berbeda dari server utama.

    • Database dalam grup: Pilih database yang ingin Anda tambahkan ke grup kegagalan Anda. Menambahkan database ke grup kegagalan akan secara otomatis memulai proses replikasi geografis.

    Add SQL Database to failover group

Uji failover yang direncanakan

Uji failover grup failover Anda tanpa kehilangan data menggunakan portal Azure atau PowerShell.

Menguji grup kegagalan 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 menyukainya dan menambahkannya sebagai item di navigasi sebelah kiri.

  2. Pilih database yang ingin Anda tambahkan ke grup kegagalan.

    Open server for single db

  3. Pilih Grup kegagalan di bawah panel Pengaturan lalu pilih grup kegagalan yang baru saja Anda buat.

    Screenshot shows Failover groups where you can select a failover group for your SQL Server.

  4. Ulas server mana yang utama, dan server mana yang sekunder.

  5. Pilih Kegagalan dari panel tugas untuk menggagalkan grup kegagalan Anda yang berisi kumpulan elastis Anda.

  6. Pilih Ya pada peringatan yang memberi tahu Anda bahwa sesi TDS akan terputus.

    Fail over your failover group containing your database

  7. Ulas server mana yang utama, dan server mana yang sekunder. Jika kegagalan berhasil, kedua server seharusnya bertukar peran.

  8. Pilih Kegagalan lagi untuk menggagalkan server kembali ke peran aslinya.

Penting

Jika Anda perlu menghapus database sekunder, hapus database tersebut dari grup kegagalan sebelum menghapusnya. Menghapus database sekunder sebelum dihapus dari grup kegagalan dapat menyebabkan perilaku yang tidak dapat diprediksi.

Untuk skrip end-to-end, tinjau cara menambahkan kumpulan elastis ke grup failover dengan Azure PowerShell atau Azure CLI.

Prasyarat

Pertimbangkan prasyarat berikut untuk membuat grup failover bagi kumpulan database:

  • Pengaturan masuk dan firewall untuk server sekunder harus cocok dengan yang ada pada server utama Anda.

Membuat grup failover

Buat grup kegagalan dan tambahkan kumpulan elastis ke dalamnya menggunakan portal Microsoft Azure atau PowerShell.

Membuat grup kegagalan Anda dan menambahkan kumpulan elastis Anda ke dalamnya 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 menyukainya dan menambahkannya sebagai item di navigasi sebelah kiri.

  2. Pilih kumpulan elastis yang ingin Anda tambahkan ke grup kegagalan.

  3. Pada panel Ringkasan, pilih nama server di bawah Nama server untuk membuka pengaturan untuk server.

    Open server for elastic pool

  4. Pilih Grup kegagalan di bawah panel Pengaturan, lalu pilih Tambahkan grup untuk membuat grup kegagalan baru.

    Add new failover group

  5. Pada halaman Grup Kegagalan, masukkan atau pilih nilai yang perlukan, lalu pilih Buat. Buat server sekunder baru, atau pilih server sekunder yang ada.

  6. Pilih Database dalam grup, dan pilih kumpulan elastis yang ingin Anda tambahkan ke grup failover. Jika kumpulan elastis belum ada di server sekunder, peringatan akan muncul yang meminta Anda untuk membuat kumpulan elastis di server sekunder. Pilih peringatan, lalu pilih OK untuk membuat kumpulan elastis pada server sekunder.

    Add elastic pool to failover group

  7. Gunakan Pilih untuk menerapkan pengaturan kumpulan elastis Anda ke grup failover, lalu pilih Buat untuk membuat grup failover Anda. Menambahkan kumpulan elastis ke grup kegagalan akan secara otomatis memulai proses replikasi geografis.

Uji failover yang direncanakan

Uji failover tanpa kehilangan data kumpulan elastis Anda menggunakan portal Azure atau PowerShell.

Menggagalkan grup kegagalan Anda ke server sekunder, lalu gagalkan kembali 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 menyukainya dan menambahkannya sebagai item di navigasi sebelah kiri.

  2. Pilih kumpulan elastis yang ingin Anda failover.

  3. Pada panel Ringkasan, pilih nama server di bawah Nama server untuk membuka pengaturan untuk server.

    Screenshot of select server for elastic pool in the Azure portal.

  4. Pilih Grup failover di bawah Pengaturan lalu pilih grup failover yang Anda buat sebelumnya.

    Screenshot shows Failover groups where you can select a failover group for your SQL Server.

  5. Ulas server mana yang utama, dan server mana yang sekunder.

  6. Pilih Kegagalan dari panel tugas untuk menggagalkan grup kegagalan Anda yang berisi kumpulan elastis Anda.

  7. Pilih Ya pada peringatan yang memberi tahu Anda bahwa sesi TDS akan terputus.

    Fail over your failover group containing your database

  8. Ulas server mana yang utama, dan server mana yang sekunder. Jika kegagalan berhasil, kedua server seharusnya bertukar peran.

  9. Pilih Kegagalan lagi untuk menggagalkan kembali grup kegagalan ke pengaturan asli.

Penting

Jika Anda perlu menghapus database sekunder, hapus database tersebut dari grup kegagalan sebelum menghapusnya. Menghapus database sekunder sebelum dihapus dari grup kegagalan dapat menyebabkan perilaku yang tidak dapat diprediksi.

Menggunakan tautan pribadi memungkinkan Anda untuk mengaitkan server logis ke alamat IP privat tertentu dalam jaringan virtual dan subnet.

Untuk menggunakan tautan privat dengan grup kegagalan Anda, lakukan hal berikut:

  1. Pastikan server utama dan sekunder Anda berada di wilayah yang dipasangkan.
  2. Buat jaringan virtual dan subnet di setiap wilayah untuk menghosting titik akhir privat untuk server primer dan sekunder sehingga mereka memiliki ruang alamat IP yang tidak tumpang tindih. Misalnya, rentang alamat jaringan virtual utama 10.0.0.0/16 dan rentang alamat jaringan virtual sekunder 10.0.0.1/16 tumpang tindih. Untuk informasi selengkapnya tentang rentang alamat jaringan virtual, lihat blog mendesain jaringan virtual Azure.
  3. Buat titik akhir privat dan zona DNS Privat Azure untuk server utama.
  4. Buat titik akhir privat untuk server sekunder juga, tetapi kali ini pilih untuk menggunakan kembali Zona DNS Privat yang sama yang dibuat untuk server utama.
  5. Setelah tautan privat dibuat, Anda bisa membuat grup kegagalan mengikuti langkah-langkah yang diuraikan sebelumnya di artikel ini.

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, atau kumpulan elastis. 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 Azure saat melihat grup failover:

Failover group connection string

Menskalakan database dalam grup failover

Anda dapat menskalakan database utama ke atas atau ke bawah ke ukuran komputasi yang berbeda (dalam tingkat layanan yang sama) tanpa memutuskan sambungan geo-sekunder apa pun. Saat meningkatkan, kami sarankan Anda meningkatkan geo-sekunder terlebih dahulu, dan kemudian meningkatkan primer. Saat menskalakan, balikkan urutan: skala bawah primer pertama, dan kemudian skala bawah sekunder. Ketika Anda menskalakan database ke tingkat layanan yang berbeda, rekomendasi ini diberlakukan.

Urutan ini disarankan secara khusus untuk menghindari masalah di mana geo-sekunder pada SKU yang lebih rendah kelebihan beban dan harus di-reseed selama proses peningkatan atau penurunan. Anda juga dapat menghindari masalah dengan menjadikan instans utama sebagai baca-saja, yang akan memengaruhi semua beban kerja baca-tulis terhadap instans utama.

Catatan

Jika Anda membuat geosekunder sebagai bagian dari konfigurasi grup failover, tidak disarankan untuk mengurangi geosekunder. Ini untuk memastikan tingkat data Anda memiliki kapasitas yang cukup untuk memproses beban kerja reguler Anda setelah failover diaktifkan. Anda mungkin tidak dapat menskalakan geo-sekunder setelah failover yang tidak direncanakan ketika bekas geo-primer tidak tersedia karena pemadaman. Ini adalah keterbatasan yang diketahui.

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

Untuk mengilustrasikan urutan perubahan, kita akan menganggap bahwa server A adalah server utama, server B adalah server sekunder yang ada, dan server C adalah sekunder baru di wilayah ketiga. Untuk melakukan transisi, ikuti langkah-langkah berikut:

  1. Buat sekunder tambahan dari setiap database di server A ke server C menggunakan geo-replikasi aktif. Setiap database di server A akan memiliki dua sekunder, satu di server B dan satu di server C. Ini menjamin bahwa database utama tetap dilindungi selama transisi.
  2. Menghapus grup failover. Pada titik ini upaya masuk menggunakan titik akhir grup failover mulai gagal.
  3. Buat ulang grup failover dengan nama yang sama antara server A dan C.
  4. Tambahkan semua database utama di server A ke grup failover baru. Pada titik ini upaya masuk berhenti gagal.
  5. Tinggalkan server B. Semua database di B akan dihapus secara otomatis.

Mengubah wilayah utama

Untuk mengilustrasikan urutan perubahan, kami akan menganggap server A adalah server utama, server B adalah server sekunder yang ada, dan server C adalah primer baru di wilayah ketiga. Untuk melakukan transisi, ikuti langkah-langkah berikut:

  1. Lakukan geo-failover yang direncanakan untuk mengalihkan server utama ke B. Server A menjadi server sekunder baru. Failover dapat mengakibatkan beberapa menit waktu henti. Waktu aktual tergantung pada ukuran grup failover.
  2. Buat sekunder tambahan dari setiap database di server B ke server C menggunakan geo-replikasi aktif. Setiap database di server B akan memiliki dua sekunder, satu di server A dan satu di server C. Ini menjamin bahwa database utama tetap dilindungi selama transisi.
  3. Menghapus grup failover. Pada titik ini upaya masuk menggunakan titik akhir grup failover mulai gagal.
  4. Buat ulang grup failover dengan nama yang sama antara server B dan C.
  5. Tambahkan semua database utama pada B ke grup failover baru. Pada titik ini upaya masuk berhenti gagal.
  6. Lakukan geo-failover yang direncanakan dari grup failover untuk beralih B dan C. Sekarang server C menjadi yang utama dan B sekunder. Semua database sekunder di server A akan secara otomatis ditautkan ke utama di C. Seperti pada langkah 1, failover dapat mengakibatkan beberapa menit waktu henti.
  7. Tinggalkan server A. Semua database di A akan dihapus secara otomatis.

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 atau alias DNS server dengan nama yang sama. Karena nama grup failover dan alias DNS harus unik secara global, ini akan mencegah Anda menggunakan nama yang sama lagi. Untuk meminimalkan risiko, jangan gunakan nama grup failover yang umum.

Grup failover dan keamanan jaringan

Untuk beberapa aplikasi, aturan keamanan mengharuskan akses jaringan ke tingkat data dibatasi untuk komponen atau komponen tertentu seperti VM, layanan web, dll. Persyaratan ini menghadirkan beberapa tantangan untuk desain kelangsungan bisnis dan penggunaan grup failover. Pertimbangkan opsi berikut saat menerapkan akses terbatas tersebut.

Gunakan grup failover dan titik akhir layanan jaringan virtual

Jika Anda menggunakan titik akhir dan aturan layanan Virtual Network untuk membatasi akses ke database Anda, ketahuilah bahwa setiap titik akhir layanan jaringan virtual hanya berlaku untuk satu wilayah Azure. Titik akhir tidak memungkinkan wilayah lain untuk menerima komunikasi dari subnet. Oleh karena itu, hanya aplikasi klien yang disebarkan di wilayah yang sama yang dapat terhubung ke database utama. Karena geo-failover menghasilkan sesi klien SQL Database yang dialihkan ke server di wilayah (sekunder) yang berbeda, sesi ini mungkin gagal jika berasal dari klien di luar wilayah tersebut. Untuk alasan itu, kebijakan failover terkelola Microsoft tidak dapat diaktifkan jika server yang berpartisipasi disertakan dalam aturan Virtual Network. Untuk mendukung kebijakan failover manual, ikuti langkah-langkah berikut:

  1. Menyediakan salinan redundan dari komponen frontend aplikasi Anda (layanan web, komputer virtual, dll.) di wilayah sekunder.
  2. Konfigurasikan aturan jaringan virtual satu per satu untuk server utama dan sekunder.
  3. Aktifkan failover frontend menggunakan konfigurasi Traffic manager.
  4. Mulai geo-failover manual saat pemadaman terdeteksi. Opsi ini dioptimalkan untuk aplikasi yang memerlukan latensi konsisten antara frontend dan tingkat data dan mendukung pemulihan ketika frontend, tingkat data, atau keduanya terpengaruh oleh pemadaman.

Catatan

Jika Anda menggunakan pendengar baca-saja untuk menyeimbangkan beban kerja baca-saja, pastikan beban kerja ini dijalankan di VM atau sumber daya lain di wilayah sekunder sehingga dapat tersambung ke database sekunder.

Menggunakan grup failover dan aturan firewall

Jika rencana kelangsungan bisnis Anda memerlukan failover menggunakan grup failover, Anda dapat membatasi akses ke SQL Database Anda dengan menggunakan aturan firewall IP publik. Konfigurasi ini memastikan bahwa geo-failover tidak akan memblokir koneksi dari komponen frontend dan mengasumsikan bahwa aplikasi dapat mentolerir latensi yang lebih lama antara frontend dan tingkat data.

Untuk mendukung failover grup failover, ikuti langkah-langkah berikut:

  1. Buat IP publik.
  2. Buat load balancer publik dan tetapkan IP publik ke dalamnya.
  3. Buat jaringan virtual dan mesin virtual untuk komponen front-end Anda.
  4. Buat grup keamanan jaringan dan konfigurasikan sambungan masuk.
  5. Pastikan koneksi keluar terbuka ke Azure SQL Database di suatu wilayah dengan menggunakan Sql.<Region>tag layanan.
  6. Buat aturan firewall SQL Database untuk memungkinkan lalu lintas masuk dari alamat IP publik yang Anda buat di langkah 1.

Untuk informasi selengkapnya tentang cara mengonfigurasi akses keluar dan IP apa yang digunakan dalam aturan firewall, lihat Sambungan keluar load balancer.

Penting

Untuk menjamin kelangsungan bisnis selama pemadaman regional, Anda harus memastikan redundansi geografis untuk komponen frontend dan database.

Izin

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

Akses tulis RBAC Azure sangat diperlukan untuk membuat dan mengelola grup failover. Peran Kontributor SQL Server mempunyai semua izin yang diperlukan untuk mengelola grup failover.

Tabel berikut mencantumkan cakupan izin khusus untuk Azure SQL Database:

Perbuatan Izin Cakupan
Membuat grup failover Akses tulis RBAC Azure Server utama
Server sekunder
Semua database dalam grup failover
Perbarui grup failover Akses tulis RBAC Azure Grup failover
Semua database di server utama saat ini
Melakukan failover pada grup failover Akses tulis RBAC Azure Grup failover di server baru

Pembatasan

Ketahui batasan berikut:

  • Grup failover tidak dapat dibuat di antara dua server di wilayah Azure yang sama.
  • Grup failover mendukung replikasi geografis semua database dalam grup ke hanya satu server logis sekunder di wilayah yang berbeda.
  • Grup failover tidak dapat diganti namanya. Anda harus menghapus grup dan membuatnya kembali dengan nama yang berbeda.
  • Penggantian nama database tidak didukung untuk database dalam grup failover. Anda harus menghapus grup failover untuk sementara agar dapat mengganti nama database, atau menghapus database, dari grup failover.
  • Menghapus grup kegagalan untuk database tunggal atau terkumpul tidak menghentikan replikasi, dan tidak menghapus database yang direplikasi. Anda harus menghentikan replikasi geografis secara manual dan menghapus database dari server sekunder jika Anda ingin menambahkan database tunggal atau terkumpul kembali ke grup failover setelah dihapus. Gagal melakukan mungkin mengakibatkan kesalahan yang mirip The operation cannot be performed due to multiple errors dengan saat mencoba menambahkan database ke grup failover.
  • Nama grup failover tunduk pada pembatasan penamaan.

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-AzSqlDatabaseFailoverGroup Perintah ini membuat grup failover dan mendaftarkannya di server utama dan sekunder
Remove-AzSqlDatabaseFailoverGroup Menghapus grup failover dari server
Dapatkan-AzSqlDatabaseFailoverGroup Mengambil konfigurasi grup failover
Set-AzSqlDatabaseFailoverGroup Memodifikasi konfigurasi grup failover
Alihkan-AzSqlDatabaseFailoverGroup Memicu failover grup failover ke server sekunder
Tambahkan-AzSqlDatabaseToFailoverGroup Menambahkan satu atau beberapa database ke grup failover

Catatan

Dimungkinkan untuk menyebarkan grup failover Anda di seluruh langganan dengan menggunakan -PartnerSubscriptionId parameter di Azure Powershell yang dimulai dengan Az.SQL 3.11.0. Untuk mempelajari lebih lanjut, tinjau Contoh berikut.

Langkah berikutnya

Untuk gambaran umum opsi ketersediaan tinggi Azure SQL Database, lihat grup replikasi geografis dan failover.