Bagikan melalui


Memecahkan masalah database cermin Fabric dari Azure SQL Database

Artikel ini membahas langkah-langkah pemecahan masalah untuk mencerminkan Azure SQL Database.

Untuk memecahkan masalah pencerminan yang dikonfigurasi secara otomatis untuk database Fabric SQL, lihat Memecahkan masalah pencerminan dari database Fabric SQL.

Perubahan pada kapasitas fabric atau ruang kerja

Perubahan pada kapasitas Fabric atau ruang kerja dapat memengaruhi pencerminan. Untuk informasi selengkapnya, tinjau efek pada pencerminan dari perubahan kapasitas Fabric.

Pemecahan masalah Azure SQL Database

Penyebab Result Resolusi yang direkomendasikan
Ruang kerja dihapus Pencerminan berhenti secara otomatis dan menonaktifkan umpan perubahan di Azure SQL Database Jika pencerminan masih aktif di Azure SQL Database, jalankan prosedur tersimpan berikut di Azure SQL Database Anda: exec sp_change_feed_disable_db;.
Kesalahan persisten Pencerminan dinonaktifkan untuk database yang terpengaruh Untuk memastikan sumber daya komputasi Anda tidak terpengaruh dan untuk melindungi sumber Azure SQL Database Anda, pencerminan akan dinonaktifkan pada kesalahan persisten apa pun. Tinjau sys.dm_change_feed_errors dan atasi kesalahan yang mendasarinya sebelum mengaktifkan kembali database untuk pencerminan.
Pengaturan "Pengguna dapat mengakses data yang disimpan di OneLake dengan aplikasi eksternal ke Fabric" dinonaktifkan "Replikator - Tabel Tidak Dapat Mencapai Status Replikasi" Aktifkan pengaturan Penyewa Pengguna dapat mengakses data yang disimpan di OneLake dengan aplikasi di luar Fabric.

Untuk skenario pemecahan masalah tambahan, lihat Memecahkan Masalah Fabric Mirrored Databases - Microsoft Fabric.

Kueri T-SQL untuk pemecahan masalah

Jika Anda mengalami masalah pencerminan, lakukan pemeriksaan tingkat database berikut menggunakan Tampilan Manajemen Dinamis (DMV) dan prosedur tersimpan untuk memvalidasi konfigurasi.

  1. Jalankan kueri berikut untuk memeriksa apakah perubahan mengalir dengan benar:

    SELECT * FROM sys.dm_change_feed_log_scan_sessions;
    
  2. sys.dm_change_feed_log_scan_sessions Jika DMV tidak menunjukkan kemajuan pemrosesan perubahan bertahap, jalankan kueri T-SQL berikut untuk memeriksa apakah ada masalah yang dilaporkan:

    SELECT * FROM sys.dm_change_feed_errors;
    
  3. Jika tidak ada masalah yang dilaporkan, jalankan prosedur tersimpan berikut untuk meninjau konfigurasi Azure SQL Database yang dicerminkan saat ini. Konfirmasikan bahwa ini diaktifkan dengan benar.

    EXEC sp_help_change_feed;
    

    Kolom kunci yang harus dicari di sini adalah table_name dan state. Nilai apa pun selain 4 menunjukkan potensi masalah.

  4. Jika replikasi masih tidak berfungsi, verifikasi bahwa objek identitas terkelola yang benar memiliki izin.

    1. Di portal Fabric, pilih "..." opsi elipsis pada item database cermin.
    2. Pilih opsi Kelola Izin .
    3. Konfirmasikan bahwa nama identitas terkelola ditampilkan dengan izin Baca, Tulis.
    4. Pastikan AppId yang muncul cocok dengan ID identitas terkelola server logis Azure SQL Database Anda.
  5. Hubungi dukungan jika pemecahan masalah diperlukan.

Identitas yang dikelola

Baik System Assigned Managed Identity (SAMI) atau User Assigned Managed Identity (UAMI) dari server logis Azure SQL harus diaktifkan, dan salah satunya harus menjadi identitas utama.

Nota

Dukungan untuk User Assigned Managed Identity (UAMI) sedang dalam tahap pratinjau.

Verifikasi identitas utama yang benar menggunakan kueri Transact-SQL berikut:

SELECT * FROM sys.dm_server_managed_identities;

Untuk informasi selengkapnya, lihat Membuat server Azure SQL Database.

Izin untuk identitas terkelola

Baik System Assigned Managed Identity (SAMI) dan User Assigned Managed Identity (UAMI) untuk server logis Azure SQL harus memiliki izin Baca dan Tulis pada item database cermin di Microsoft Fabric.

Saat Anda membuat database cermin dari portal Fabric, izin diberikan secara otomatis. Jika Anda mengalami kesalahan Unable to grant required permission to the source server. User does not have permission to reshare selama penyiapan, pastikan Anda memiliki peran anggota atau admin di ruang kerja dengan hak istimewa yang memadai. Saat Anda menggunakan API atau CI/CD untuk membuat database cermin, pastikan Anda memberikan izin secara eksplisit.

Jangan hapus izin SAMI dan/atau UAMI pada item database Fabric yang dicerminkan untuk Read dan Write. Jika Anda secara tidak sengaja menghapus hak akses, proses mirroring Azure SQL Database tidak dapat berfungsi dengan benar. Tidak ada data baru yang dapat dicerminkan dari database sumber.

Jika Anda menghapus izin Azure SQL Database SAMI dan/atau UAMI, atau izin tidak disiapkan dengan benar, lihat langkah-langkah yang diuraikan di bagian tutorial untuk menyiapkannya.

Kesalahan dari izin kedaluarsa dengan login Microsoft Entra

Sebelum menggunakan autentikasi ID Microsoft Entra, tinjau batasan di perwakilan server Microsoft Entra.

Pengguna database yang dibuat menggunakan login Microsoft Entra dapat mengalami penundaan saat diberikan peran dan izin. Ini dapat mengakibatkan kesalahan seperti berikut ini di portal Fabric:

"The database cannot be mirrored to Fabric due to below error: Unable to retrieve SQL Server managed identities. A database operation failed with the following error: 'VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action.' VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action. SqlErrorNumber=300,Class=14,State=1, Activity ID: ..."

Selama pratinjau saat ini, perintah berikut harus digunakan untuk mengatasi masalah ini.

  • Hilangkan pengguna dari database pengguna.
  • Jalankan DBCC FREESYSTEMCACHE('TokenAndPermUserStore') untuk menghapus cache keamanan pada database.
  • Jalankan DBCC FLUSHAUTHCACHE untuk menghapus cache konteks autentikasi federasi.
  • Di database pengguna, buat ulang pengguna berdasarkan login.

Penggunaan log transaksi

Penggunaan log transaksi untuk database yang diaktifkan untuk pencerminan dapat terus bertambah dan menahan pemangkasan log. Setelah ukuran log transaksi mencapai batas maksimum yang ditentukan, penulisan ke database gagal. Untuk melindungi terhadap hal ini, proses pencerminan memicu reseed otomatis dari seluruh database ketika penggunaan ruang log melebihi ambang batas dari total ruang log yang dikonfigurasi. Untuk mendiagnosis ini dan mempelajari tentang penyemaian ulang otomatis, lihat Penyemaian ulang otomatis untuk database cermin Fabric dari Azure SQL Database.

Proses pengisian ulang telah dimulai secara otomatis

Fitur Mirroring Fabric dari Azure SQL Database dapat secara otomatis mengisi ulang dalam kondisi tertentu, baik pada tingkat tabel individual maupun untuk seluruh basis data. Untuk mempelajari lebih lanjut, penanaman ulang otomatis untuk database tercermin Fabric dari Azure SQL Database.