Menghidupkan ulang instans dengan failover manual yang dimulai pengguna - Azure SQL Managed Instance
Berlaku untuk: Azure SQL Managed Instance
Artikel ini menjelaskan cara memulai ulang Azure SQL Managed Instance dengan melakukan failover manual yang dimulai pengguna ke simpul komputasi sekunder dengan menggunakan PowerShell, Azure CLI, atau REST API.
Dimungkinkan untuk melakukan failover pada node utama di tingkat layanan General Purpose (GP) dan Business Critical (BC), dan melakukan failover secara manual pada node replika baca-saja sekunder di tingkat layanan BC.
Catatan
Failover dalam artikel ini mengacu pada memulai proses mesin database SQL Server pada simpul sekunder, dan tidak terkait dengan failover lintas wilayah grup failover.
Kapan menggunakan failover manual
Ketersediaan, bagian mendasar dari platform SQL Managed Instance, bekerja secara transparan untuk aplikasi database Anda dengan menyediakan simpul komputasi siaga lokal untuk menghosting proses mesin database SQL Server. Failover terjadi ketika proses mesin database SQL Server diambil offline pada simpul komputasi utama dan dibawa online pada simpul komputasi sekunder. Biasanya, failover antara simpul komputasi instans terkelola SQL otomatis dan dikelola oleh platform ketika kesalahan terdeteksi, node telah menurun, atau selama pembaruan perangkat lunak bulanan reguler.
Seluruh operasi failover terdiri dari membawa proses mesin database SQL Server secara online pada simpul sekunder, memvalidasi status database, dan akhirnya mengalihkan koneksi klien ke simpul utama baru. Koneksi klien hanya gagal untuk waktu yang singkat, biasanya di bawah satu menit, selama langkah terakhir operasi failover.
Anda dapat menjalankan failover manual untuk memulai ulang proses mesin pada node yang berbeda karena alasan berikut:
- Gagal masuk, atau kelambatan karena masalah performa.
- Menguji aplikasi untuk ketahanan failover sebelum menyebarkan ke produksi.
- Menguji sistem end-to-end untuk ketahanan kesalahan pada failover otomatis.
- Menguji bagaimana failover memengaruhi sesi database yang ada.
- Penurunan performa kueri (menghidupkan ulang instans dapat membantu mengurangi masalah performa).
Memastikan bahwa aplikasi Anda tangguh failover sebelum menyebarkan ke produksi membantu mengurangi risiko kesalahan aplikasi dalam produksi dan berkontribusi pada ketersediaan aplikasi bagi pelanggan Anda. Pelajari selengkapnya tentang menguji aplikasi Anda untuk kesiapan cloud dengan video berikut:
Tabel berikut menjelaskan perilaku yang diharapkan dari SQL Managed Instance selama operasi failover berdasarkan tingkat layanan dan model ketersediaan:
Tingkat layanan | Model ketersediaan | Perilaku failover yang diharapkan | Potensi perilaku failover (pengecualian) |
---|---|---|---|
Tujuan Umum | Redundansi lokal (Zona ketersediaan tunggal) |
Proses SQL dimulai ulang pada VM yang sama. | Proses SQL dimulai ulang pada VM yang berbeda. |
Tujuan Umum | Redundansi zona (pratinjau) (Beberapa zona ketersediaan) |
Proses SQL dimulai ulang pada VM yang sama. | Proses SQL dimulai ulang pada VM yang berbeda. |
Kritis Bisnis | Redundansi lokal (Zona ketersediaan tunggal) |
Replika sekunder acak dipromosikan ke primer. | T/A |
Kritis Bisnis | Zona redundansi (Beberapa zona ketersediaan) |
Replika sekunder acak dipromosikan ke primer, baik di zona ketersediaan yang sama atau berbeda. | T/A |
Izin
Pengguna yang memulai failover harus memiliki salah satu peran Azure berikut:
- Peran Pemilik Langganan, atau
- Peran Kontributor SQL Managed Instance, atau
- Peran kustom dengan izin berikut:
Microsoft.Sql/managedInstances/failover/action
Mulai ulang instans dengan failover manual
Anda dapat memulai ulang instans dengan failover manual dengan menggunakan PowerShell, Azure CLI, atau REST API.
Versi minimum Az.Sql harus v2.9.0. Pertimbangkan untuk menggunakan Azure Cloud Shell dari portal Azure yang selalu memiliki versi PowerShell terbaru yang tersedia.
Sebagai pra-persyaratan, gunakan skrip PowerShell berikut untuk menginstal modul Azure yang diperlukan. Selain itu, pilih langganan tempat SQL Managed Instance yang ingin Anda failover berada.
$subscription = 'enter your subscription ID here'
Install-Module -Name Az
Import-Module Az.Accounts
Import-Module Az.Sql
Connect-AzAccount
Select-AzSubscription -SubscriptionId $subscription
Gunakan perintah PowerShell Invoke-AzSqlInstanceFailover dengan contoh berikut untuk memulai failover node utama, berlaku untuk tingkat layanan BC dan GP.
$ResourceGroup = 'enter resource group of your MI'
$ManagedInstanceName = 'enter MI name'
Invoke-AzSqlInstanceFailover -ResourceGroupName $ResourceGroup -Name $ManagedInstanceName
Gunakan perintah PowerShell berikut untuk failover membaca simpul sekunder, hanya berlaku untuk tingkat layanan BC.
$ResourceGroup = 'enter resource group of your MI'
$ManagedInstanceName = 'enter MI name'
Invoke-AzSqlInstanceFailover -ResourceGroupName $ResourceGroup -Name $ManagedInstanceName -ReadableSecondary
Memantau failover
Memantau kemajuan failover yang dimulai pengguna berbeda untuk instans di tingkat layanan Business Critical dan General Purpose.
Untuk memantau kemajuan failover yang dimulai pengguna, gunakan:
- sys.dm_os_sys_info untuk memeriksa waktu aktif sistem untuk tingkat layanan Tujuan Umum.
sys.dm_hadr_fabric_replica_states
untuk memeriksa replika yang tersedia untuk tingkat layanan Business Critical .
Langkah terakhir dari proses failover adalah pengalihan koneksi klien ke simpul utama baru. Hilangnya konektivitas singkat dari klien Anda selama failover, biasanya berlangsung di bawah satu menit, menunjukkan failover telah berhasil - terlepas dari tingkat layanan.
Tingkat layanan Tujuan Umum
Contoh T-SQL berikut menunjukkan waktu aktif untuk proses SQL pada node untuk tingkat layanan Tujuan Umum:
SELECT sqlserver_start_time, sqlserver_start_time_ms_ticks FROM sys.dm_os_sys_info
Waktu mulai proses SQL adalah waktu ketika proses mesin database SQL Server dimulai pada simpul. Waktu dimulai ulang setelah failover selesai. Jalankan kueri ini sebelum dan sesudah Anda memulai failover instans di tingkat layanan Tujuan Umum untuk memantau kemajuan operasi failover.
Tingkat layanan Bisnis Kritis
Contoh T-SQL berikut menunjukkan simpul mana yang saat ini menjadi replika utama untuk tingkat layanan Business Critical :
SELECT DISTINCT replication_endpoint_url, fabric_replica_role_desc FROM sys.dm_hadr_fabric_replica_states
Simpul yang menghosting perubahan replika utama setelah failover selesai. Jalankan kueri ini sebelum dan sesudah Anda memulai failover instans di tingkat layanan Business Critical untuk memantau kemajuan operasi failover.
Catatan
Proses failover penuh mungkin membutuhkan waktu beberapa menit untuk diselesaikan selama beban kerja intensitas tinggi karena mesin instans memastikan bahwa transaksi pada simpul sekunder terjebak pada transaksi dari simpul utama sebelum memulai failover.
Batasan
Pertimbangkan batasan fungsi berikut dari failover manual yang dimulai pengguna:
- Hanya ada satu (1) failover yang dimulai pada SQL Managed Instance yang sama setiap 15 menit.
- Failover tidak diperbolehkan:
- Hingga pencadangan penuh pertama untuk database baru diselesaikan oleh sistem pencadangan otomatis.
- jika ada pemulihan database yang sedang berlangsung.
- Misalnya di tingkat layanan Business Critical:
- Harus ada kuorum replika agar permintaan failover diterima.
- Tidak dimungkinkan untuk menentukan replika sekunder mana yang dapat dibaca untuk memulai failover.
Konten terkait
- Pelajari selengkapnya tentang menguji aplikasi Anda untuk kesiapan cloud dengan Menguji Kesiapan App Cloud untuk Ketahanan Failover dengan perekaman video SQL Managed Instance .
- Pelajari selengkapnya tentang ketersediaan tinggi instans terkelola Ketersediaan tinggi untuk Azure SQL Managed Instance.
- Untuk gambaran umum, lihat Apa itu Azure SQL Managed Instance?