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.
Aplikasi ke:Azure SQL Managed Instance
Artikel ini mengajarkan cara melakukan failover pada database linked antara SQL Server dan Azure SQL Managed Instance dengan menggunakan SQL Server Management Studio (SSMS) atau PowerShell untuk tujuan pemulihan bencana atau migrasi.
Prasyarat
Untuk mengalihkan database ke replika sekunder Anda melalui tautan, Anda memerlukan prasyarat berikut:
- Langganan Azure aktif. Jika Anda tidak memilikinya, buat akun gratis.
- Versi SQL Server yang didukung dengan pembaruan layanan yang diperlukan telah terinstal.
- Tautan dikonfigurasi antara replika utama dan sekunder Anda.
- Anda dapat melakukan failover pada tautan dengan menggunakan Transact-SQL yang dimulai dengan SQL Server 2022 CU13 (KB5036432).
Hentikan beban kerja
Jika Anda siap untuk melakukan failover database ke replika sekunder, pertama-tama hentikan beban kerja aplikasi apa pun pada replika utama selama jam pemeliharaan Anda. Ini memungkinkan sinkronisasi replikasi database pada server sekunder, sehingga Anda dapat beralih ke server sekunder tanpa kehilangan data. Pastikan aplikasi Anda tidak melakukan transaksi ke primer sebelum failover.
Periksa jeda replikasi
Penting bahwa replika sekunder mengejar replika utama sebelum melakukan failover yang direncanakan. Failover yang direncanakan dapat kehabisan waktu dan gagal jika replika sekunder tertinggal jauh di belakang replika utama.
Gunakan kueri T-SQL berikut pada SQL Server dan SQL Managed Instance untuk memantau jeda replikasi antara replika:
-- Execute on SQL Server and SQL Managed Instance
USE master
DECLARE @link_name varchar(max) = '<DAGname>'
SELECT
ag.name [Link name],
ars1.role_desc [Link role],
ars2.connected_state_desc [Link connected state],
ars2.synchronization_health_desc [Link sync health],
drs.secondary_lag_seconds [Link replication latency (seconds)]
FROM
sys.availability_groups ag
JOIN sys.dm_hadr_availability_replica_states ars1
ON ag.group_id = ars1.group_id
JOIN sys.dm_hadr_availability_replica_states ars2
ON ag.group_id = ars2.group_id
JOIN sys.dm_hadr_database_replica_states drs
ON ars2.replica_id = drs.replica_id
WHERE
ag.is_distributed = 1 AND ag.name = @link_name AND ars1.is_local = 1 AND ars2.is_local = 0
GO
Jika lag replikasi tinggi, tunggu hingga replika sekunder mengejar ketinggalan dengan replika utama. Anda mungkin perlu melakukan langkah-langkah pemecahan masalah tambahan jika lag berlanjut, seperti meningkatkan throughput jaringan tautan antara dua instans, atau meningkatkan kapasitas sumber daya pada replika sekunder.
Mengalihkan database
Anda dapat melakukan failover pada database tertaut dengan menggunakan Transact-SQL (T-SQL), SQL Server Management Studio, atau PowerShell.
Anda dapat melakukan failover pada tautan dengan menggunakan Transact-SQL yang dimulai dengan SQL Server 2022 CU13 (KB5036432).
Untuk melakukan failover terencana untuk tautan, gunakan perintah T-SQL berikut pada replika utama:
ALTER AVAILABILITY GROUP [<DAGname>] FAILOVER
Untuk melakukan failover paksa, gunakan perintah T-SQL berikut pada replika sekunder:
ALTER AVAILABILITY GROUP [<DAGname>] FORCE_FAILOVER_ALLOW_DATA_LOSS
Penting
Setelah menjalankan failover yang direncanakan, mode replikasi diatur ke asinkron.
Proses failover beberapa database
Jika Anda berencana untuk melakukan failover pada beberapa database dari instans di server yang sama, untuk kinerja dan keterandalan yang optimal, lakukan failover 8 database per instans pada satu waktu. Misalnya, jika Anda memiliki 10 instans dengan masing-masing 32 database tertaut, gagalkan lebih dari 8 database sekaligus dari setiap instans, dan ulangi proses hingga semua database gagal.
Melihat database setelah failover
Untuk SQL Server 2022, jika Anda memilih untuk mempertahankan tautan, Anda dapat memeriksa apakah grup ketersediaan terdistribusi ada di bawah Kelompok Ketersediaan di Object Explorer di SQL Server Management Studio.
Jika Anda memutus tautan selama failover, Anda dapat menggunakan Object Explorer untuk mengonfirmasi bahwa grup ketersediaan terdistribusi tidak ada lagi. Jika Anda memilih untuk menyimpan grup ketersediaan, database akan tetap Disinkronkan.
Bersihkan setelah failover
Kecuali Hapus tautan setelah failover berhasil dipilih, melakukan failover dengan SQL Server 2022 tidak akan memutus tautan tersebut. Anda dapat mempertahankan tautan setelah failover, yang tetap membuat grup ketersediaan dan grup ketersediaan terdistribusi tetap aktif. Tidak ada tindakan lebih lanjut yang diperlukan.
Menghilangkan tautan hanya menghilangkan grup ketersediaan terdistribusi, dan membiarkan grup ketersediaan aktif. Anda dapat memutuskan untuk menyimpan grup ketersediaan, atau menghilangkannya.
Jika Anda memutuskan untuk menghilangkan grup ketersediaan Anda, ganti nilai berikut lalu jalankan sampel kode T-SQL:
-
<AGName>dengan nama grup ketersediaan di SQL Server (digunakan untuk membuat tautan).
-- Run on SQL Server
USE MASTER
GO
DROP AVAILABILITY GROUP <AGName>
GO
Status tidak konsisten setelah failover paksa
Setelah failover paksa, Anda mungkin mengalami skenario split-brain di mana kedua replika berada dalam peran utama, meninggalkan tautan dalam keadaan tidak konsisten. Ini dapat terjadi jika Anda melakukan failover ke replika sekunder selama bencana, dan kemudian replika utama kembali online.
Untuk mengatasi masalah ini, lihat Memperbaiki skenario split-brain.
Konten terkait
Untuk menggunakan tautan:
- Siapkan lingkungan untuk tautan Managed Instance
- Konfigurasi tautan antara SQL Server dan SQL Managed instance dengan SSMS
- Konfigurasi tautan antara SQL Server dan instans Terkelola SQL dengan skrip
- Bermigrasi dengan tautan
- Praktik terbaik untuk mempertahankan tautan
- Mengatasi masalah pada tautan
Untuk mempelajari selengkapnya tentang tautan:
- Gambaran umum tautan Managed Instance
- Pemulihan bencana dengan tautan Managed Instance
Untuk skenario replikasi dan migrasi lainnya, pertimbangkan:
- replikasi transaksi dengan SQL Managed Instance
- Layanan Pemutaran Ulang Log (LRS)