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 menguraikan praktik terbaik untuk menggunakan tautan Managed Instance untuk mereplikasi data antara Azure SQL Managed Instance dan instans SQL Server Anda yang dihosting di mana saja. Tautan ini menyediakan duplikasi data hampir real-time antara replika yang ditautkan.
Melakukan cadangan log secara teratur
Jika SQL Server adalah primer awal Anda, ambil cadangan log pertama pada SQL Server setelah penyemaian awal selesai, ketika database tidak lagi berada dalam status Restoring... pada Azure SQL Managed Instance. Lakukan pencadangan log transaksi SQL Server secara teratur untuk menjaga ukuran file log transaksi tetap terkontrol saat SQL Server dalam peran utama.
Fitur tautan mereplikasi data dengan menggunakan teknologi grup ketersediaan terdistribusi berdasarkan grup ketersediaan AlwaysOn. Replikasi data grup ketersediaan terdistribusi didasarkan pada replikasi catatan log transaksi. Instans SQL Server utama tidak dapat memotong catatan log transaksi apa pun dari database hingga direplikasi ke database pada replika sekunder. Jika masalah koneksi jaringan menyebabkan replikasi catatan log transaksi lambat atau diblokir, file log terus bertambah pada instans utama. Intensitas beban kerja dan kecepatan jaringan menentukan kecepatan pertumbuhan. Jika pemadaman koneksi jaringan berkepanjangan dan beban kerja pada instans utama berat, file log dapat mengambil semua ruang penyimpanan yang tersedia.
Mengambil cadangan log transaksi reguler memotong log transaksi dan meminimalkan risiko kehabisan ruang pada instans SQL Server utama karena pertumbuhan file log. Tidak ada tindakan tambahan yang diperlukan ketika SQL Managed Instance adalah yang utama karena cadangan log sudah diambil secara otomatis. Dengan mengambil cadangan log secara teratur pada SQL Server utama Anda, Anda membuat database Anda lebih tahan terhadap peristiwa pertumbuhan log yang tidak diencana. Pertimbangkan untuk menjadwalkan tugas pencadangan log harian dengan menggunakan pekerjaan SQL Server Agent.
Anda dapat menggunakan skrip Transact-SQL (T-SQL) untuk mencadangkan file log, seperti sampel yang disediakan di bagian ini. Ganti tempat penampung dalam skrip sampel dengan nama dari database Anda, nama dan jalur file cadangan, serta deskripsinya.
Untuk mencadangkan log transaksi Anda, gunakan contoh skrip Transact-SQL (T-SQL) berikut di SQL Server:
-- Execute on SQL Server
-- Take log backup
BACKUP LOG [<DatabaseName>]
TO DISK = N'<DiskPathandFileName>'
WITH NOFORMAT, NOINIT,
NAME = N'<Description>', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 1
Gunakan perintah Transact-SQL (T-SQL) berikut untuk memeriksa log berspasi yang digunakan oleh database Anda di SQL Server:
-- Execute on SQL Server
DBCC SQLPERF(LOGSPACE);
Output kueri terlihat seperti contoh berikut untuk database tpccsampel :
Dalam contoh ini, database telah menggunakan 76% dari log yang tersedia, dengan ukuran file log absolut sekitar 27 GB (27.971 MB). Ambang untuk tindakan bervariasi berdasarkan beban kerja Anda. Dalam contoh sebelumnya, ukuran log transaksi dan persentase penggunaan log biasanya menunjukkan bahwa Anda harus mengambil cadangan log transaksi untuk memotong file log dan membebaskan beberapa ruang, atau, Anda harus mengambil cadangan log yang lebih sering. Ini juga bisa menjadi indikasi bahwa pemotongan log transaksi sedang diblokir oleh transaksi terbuka. Untuk informasi lebih lanjut tentang pemecahan masalah log transaksi di SQL Server, silakan lihat Pemecahan Masalah Log Transaksi Penuh (Kesalahan SQL Server 9002). Untuk informasi selengkapnya tentang pemecahan masalah log transaksi di Azure SQL Managed Instance, lihat Troubleshoot transaction log errors with Azure SQL Managed Instance.
Catatan
Saat berpartisipasi dalam tautan, SQL Managed Instance melakukan pencadangan penuh dan log transaksi secara otomatis, terlepas dari apakah itu replika utama atau bukan. Pencadangan diferensial tidak dilakukan, yang dapat menyebabkan waktu pemulihan yang lebih lama.
Mencocokkan kapasitas performa antar replika
Saat Anda menggunakan fitur tautan, cocokkan kapasitas performa antara SQL Server dan SQL Managed Instance. Pencocokan ini membantu Anda menghindari masalah performa jika replika sekunder tidak dapat mengikuti replikasi dari replika utama, atau setelah failover. Kapasitas performa mencakup inti CPU (atau vCore dalam Azure), memori, dan throughput I/O.
Anda dapat memantau performa replikasi dengan memeriksa ukuran antrean pengulangan pada replika sekunder. Ukuran antrean redo menunjukkan jumlah rekaman log yang menunggu untuk diproses ulang pada replika sekunder. Ukuran antrean ulang yang konsisten tinggi menunjukkan bahwa replika sekunder tidak dapat mengimbangi replika utama. Anda dapat memeriksa ukuran antrean redo dengan cara berikut:
- Nilai
redo_queue_sizedalam tampilan manajemen dinamis sys.dm_hadr_database_replica_states pada replika utama. - Nilai
InstanceRedoLagReplicationSecondsdalam Get-AzSqlInstanceLink pada replika utama.
Jika ukuran antrean ulang secara konsisten tinggi, pertimbangkan untuk meningkatkan sumber daya pada replika sekunder.
Memantau jeda replikasi
Memantau lag replikasi membantu Anda menentukan kecepatan replika sekunder yang disinkronkan dengan replika utama. Perbedaan besar menunjukkan bahwa replika sekunder mengalami kesulitan mengikuti replika utama, yang biasanya disebabkan oleh throughput jaringan yang lambat dalam tautan antara dua instans, alokasi sumber daya yang tidak cocok antara kedua replika, atau oleh beban kerja yang terlalu tinggi pada replika utama.
Memantau lag replikasi sangat penting saat melakukan failover yang direncanakan, yang mengharuskan replika sekunder untuk sepenuhnya disinkronkan dengan replika utama sebelum failover dapat dijalankan. Jika lag replikasi tinggi, proses failover mungkin membutuhkan waktu lebih lama untuk diselesaikan, dan dalam beberapa kasus, mungkin bahkan gagal.
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
Putar sertifikat
Anda mungkin perlu memutar sertifikat yang digunakan secara manual untuk mengamankan titik akhir pencerminan database pada SQL Server. Karena layanan mengelola dan secara otomatis memutar sertifikat yang digunakan untuk mengamankan titik akhir pencerminan database pada SQL Managed Instance, Anda tidak perlu memutarnya secara manual.
SQL Server
Sertifikat yang Anda gunakan untuk mengamankan titik akhir pencerminan database pada SQL Server dapat kedaluwarsa. Jika sertifikat kedaluwarsa, sertifikat dapat menyebabkan degradasi tautan. Untuk mencegah masalah ini, putar sertifikat sebelum kedaluwarsa.
Gunakan perintah Transact-SQL (T-SQL) berikut untuk memeriksa tanggal kedaluwarsa sertifikat saat ini:
-- Run on SQL Server
USE MASTER
GO
SELECT * FROM sys.certificates WHERE pvt_key_encryption_type = 'MK'
Jika sertifikat Anda akan kedaluwarsa, atau telah kedaluwarsa, buat sertifikat baru, lalu ubah titik akhir yang ada untuk mengganti sertifikat saat ini.
Setelah mengonfigurasi titik akhir untuk menggunakan sertifikat baru, Anda dapat menghilangkan sertifikat yang kedaluwarsa.
SQL Managed Instance
Sertifikat titik akhir pencerminan database pada SQL Managed Instance secara otomatis diputar secara berkala. Anda tidak perlu memantau tanggal kedaluwarsa untuk sertifikat titik akhir pencerminan database pada SQL Managed Instance, selama Anda dapat validasi rantai sertifikat pada SQL Server berhasil.
Memvalidasi rantai sertifikat pada SQL Server
Catatan
Validasi rantai sertifikat secara berkala untuk tautan yang ada atau untuk memecahkan masalah dengan tautan yang terdegradasi. Jika Anda mengonfigurasi tautan baru atau baru-baru ini menyelesaikan langkah-langkah di bagian Dapatkan kunci umum sertifikat dari SQL Managed Instance dan mengimpornya ke SQL Server dan Mengimpor kunci otoritas sertifikat akar tepercaya Azure ke SQL Server, lewati bagian ini.
Masalah dengan rantai sertifikat dapat menurunkan tautan. Untuk mencegah masalah ini, memvalidasi rantai sertifikat secara teratur pada SQL Server.
Skenario berikut dapat menyebabkan masalah dengan rantai sertifikat pada SQL Server:
- Rotasi sertifikat terjadwal pada SQL Managed Instance.
- Perubahan yang tidak disengaja pada sertifikat di SQL Server, seperti menghapus atau mengubah sertifikat yang digunakan untuk mengamankan titik akhir pencerminan database.
Pertama, tentukan certificate_id sertifikat titik akhir MI yang diimpor dengan mengganti nilai <ManagedInstanceFQDN> lalu jalankan kueri berikut pada SQL Server:
-- Run on SQL Server
USE master
SELECT name, subject, certificate_id, start_date, expiry_date
FROM sys.certificates
WHERE issuer_name LIKE '%Microsoft Corporation%' AND name = '<ManagedInstanceFQDN>'
GO
Selanjutnya, validasi sertifikat dengan mengganti nilai <certificate_id> dari hasil kueri sebelumnya lalu jalankan kueri berikut pada SQL Server:
-- Run on SQL Server
USE master
EXEC sp_validate_certificate_ca_chain <certificate_id>
GO
Respons Commands completed successfully. Completion time: ... menunjukkan sertifikat titik akhir MI berhasil divalidasi.
Penting
Prosedur sp_validate_certificate_ca_chain tersimpan bergantung pada layanan OS host untuk melakukan validasi sertifikat, yang mungkin melibatkan pemeriksaan pencabutan sertifikat online. Jika OS host tidak dikonfigurasi untuk mengakses internet, eksekusi gagal meskipun rantai sertifikat valid.
Jika Anda mengalami kesalahan, mitigasi yang paling andal adalah memulihkan rantai sertifikat dengan terlebih dahulu menghapus semua sertifikat yang dibuat di bagian Impor kunci publik sertifikat dari SQL Managed Instance dan impor ke SQL Server dan Impor kunci otoritas sertifikat akar tepercaya Azure ke SQL Server, lalu mengimpor ulang sertifikat tersebut.
Menambahkan bendera pelacakan startup
Dalam SQL Server, ada dua bendera pelacakan (-T1800 dan -T9567) yang, ketika ditambahkan sebagai parameter startup, dapat mengoptimalkan performa replikasi data melalui tautan. Lihat Mengaktifkan bendera pelacakan startup untuk mempelajari lebih lanjut.
Gunakan komit sinkron dengan hati-hati
Mode penerapan default untuk tautan adalah asinkron. Meskipun dimungkinkan untuk mengubah mode komit menjadi sinkron, tidak disarankan dan tidak perlu untuk mencegah potensi kehilangan data.
Selama failover terhubung yang direncanakan, replikasi untuk sementara beralih ke mode komit sinkron hingga failover selesai. Setelah failover, mode penerapan beralih kembali ke asinkron, meskipun secara eksplisit diatur ke mode penerapan sinkron sebelum failover.
Menggunakan mode penerapan sinkron untuk tautan dapat memengaruhi performa replika utama Anda, terutama jika ada latensi jaringan yang tinggi antara replika. Dalam mode penerapan sinkron, transaksi pada replika utama harus menunggu konfirmasi bahwa catatan log transaksi diperkuat pada replika sekunder sebelum transaksi dapat dilakukan pada primer. Waktu tunggu ini meningkat dengan latensi jaringan yang lebih tinggi, yang dapat menyebabkan peningkatan waktu respons transaksi dan pengurangan throughput pada replika utama.
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
- Gagal melalui tautan
- Bermigrasi dengan tautan
- Mengatasi masalah dengan tautan
Untuk mempelajari selengkapnya tentang tautan:
- Gambaran umum tautan Managed Instance
- Pemulihan bencana dengan tautan Managed Instance
- Praktik terbaik untuk mempertahankan tautan
Untuk skenario replikasi dan migrasi lainnya, pertimbangkan:
- replikasi transaksi dengan SQL Managed Instance
- Layanan Pemutaran Ulang Log (LRS)