Bagikan melalui


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.