Delen via


Problemen met gespiegelde Fabric-databases oplossen vanuit Azure SQL Database

Dit artikel behandelt stappen voor het oplossen van problemen met het spiegelen van Azure SQL Database.

Voor het oplossen van problemen met de automatisch geconfigureerde mirroring voor de Fabric SQL-database, raadpleegt u Problemen met mirroring vanuit de Fabric SQL-database oplossen (voorvertoning).

Wijzigingen in Fabriccapaciteit of -werkruimte

Wijzigingen in de Fabric-capaciteit of werkruimte kan van invloed zijn op spiegeling. Bekijk voor meer informatie de effecten op spiegeling van wijzigingen in de Fabriccapaciteit.

Problemen met Azure SQL Database oplossen

Oorzaak Resultaat Aanbevolen oplossing
Werkruimte verwijderd Spiegelen stopt automatisch en schakelt de wijzigingenfeed in Azure SQL Database uit Als spiegeling nog steeds actief is in de Azure SQL Database, voert u de volgende opgeslagen procedure uit op uw Azure SQL Database: exec sp_change_feed_disable_db;
Permanente fouten Spiegelen is uitgeschakeld Om ervoor te zorgen dat uw rekenresources niet worden beïnvloed en om uw bron Azure SQL Database te beveiligen, kan spiegeling worden uitgeschakeld bij blijvende fouten. Bekijk sys.dm_change_feed_errors en los de onderliggende fouten op voordat u de tabel opnieuw inschakelt voor spiegeling.
De instelling 'Gebruikers kunnen toegang krijgen tot gegevens die zijn opgeslagen in OneLake met apps buiten Fabric' is uitgeschakeld. "Replicator - Tabellen kunnen de replicatiestatus niet bereiken" Schakel de tenantinstelling in Gebruikers hebben toegang tot gegevens die zijn opgeslagen in OneLake met apps buiten Fabric.

Zie Problemen met gespiegelde fabricdatabases oplossen - Microsoft Fabric voor aanvullende scenario's voor probleemoplossing.

T-SQL-query's voor probleemoplossing

Als u problemen ondervindt met spiegelen, voert u de volgende controles op databaseniveau uit met dynamische beheerweergaven (DMV's) en opgeslagen procedures om de configuratie te valideren.

  1. Voer de volgende query uit om te controleren of de wijzigingen correct stromen:

    SELECT * FROM sys.dm_change_feed_log_scan_sessions;
    
  2. Als de sys.dm_change_feed_log_scan_sessions DMV geen voortgang toont bij het verwerken van incrementele wijzigingen, voert u de volgende T-SQL-query uit om te controleren of er problemen zijn gerapporteerd:

    SELECT * FROM sys.dm_change_feed_errors;
    
  3. Als er geen problemen zijn gerapporteerd, voert u de volgende opgeslagen procedure uit om de huidige configuratie van de gespiegelde Azure SQL Database te controleren. Controleer of deze juist is ingeschakeld.

    EXEC sp_help_change_feed;
    

    De belangrijkste kolommen die u hier kunt zoeken, zijn de table_name en state. Elke waarde geeft naast 4 een mogelijk probleem aan.

  4. Als de replicatie nog steeds niet werkt, controleert u of het juiste SAMI-object machtigingen heeft.

    1. Selecteer in de Fabric-portal de optie '...' Beletseltekens op het gespiegelde database-item.
    2. Selecteer de optie Machtigingen beheren .
    3. Controleer of de naam van de logische Azure SQL-server wordt weergegeven met lees-, schrijfmachtigingen.
    4. Zorg ervoor dat de AppId die wordt weergegeven overeenkomt met de id van de SAMI van uw logische Azure SQL Database-server.
  5. Neem contact op met de ondersteuning als probleemoplossing is vereist.

Beheerde identiteit

De door het systeem toegewezen beheerde identiteit (SAMI) van de logische Azure SQL-server moet zijn ingeschakeld en moet de primaire identiteit zijn. Zie Een Azure SQL Database-server maken voor meer informatie. Schakel de SAMI in de Azure-portal in, in het resourcemenu onder Beveiliging, op de pagina Identiteit .

Als na het inschakelen de SAMI-instellingsstatus is uitgeschakeld of in eerste instantie is ingeschakeld, vervolgens uitgeschakeld en vervolgens weer is ingeschakeld, mislukt het spiegelen van Azure SQL Database naar Fabric OneLake.

De SAMI moet de primaire identiteit zijn. Controleer of de SAMI de primaire identiteit is met het volgende T-SQL-script: SELECT * FROM sys.dm_server_managed_identities;

Door de gebruiker toegewezen beheerde identiteit (UAMI) wordt niet ondersteund. Als u een UAMI toevoegt, wordt deze de primaire identiteit, waarbij de SAMI vervangen wordt als primair. Dit zorgt ervoor dat replicatie mislukt. U lost dit als volgt op:

  • Verwijder alle UAMI's. Controleer of de SAMI is ingeschakeld.

SAMI-machtigingen

De door het systeem toegewezen beheerde identiteit (SAMI) van de logische Azure SQL-server moet lees- en schrijfmachtigingen hebben voor het gespiegelde database-item in Microsoft Fabric. Wanneer u de gespiegelde database maakt vanuit de Fabric-portal, wordt de machtiging automatisch verleend. Als er een fout Unable to grant required permission to the source server. User does not have permission to reshare optreedt tijdens de installatie, moet u ervoor zorgen dat u een lid- of beheerdersrol hebt in de werkruimte met voldoende bevoegdheden. Wanneer u API gebruikt om de gespiegelde database te maken, moet u de machtiging expliciet verlenen.

Verwijder SAMI-lees - en schrijfmachtigingen niet voor het gespiegelde database-item van Fabric. Als u per ongeluk de machtigingen verwijdert, werkt het spiegelen van Azure SQL Database niet zoals verwacht. Er kunnen geen nieuwe gegevens worden gespiegeld vanuit de brondatabase.

Als u Azure SQL Database SAMI-machtigingen verwijdert of als de machtigingen niet correct zijn ingesteld, volg dan de volgende stappen.

  1. Voeg de SAMI toe als gebruiker door de ... optie beletselteken bij het gespiegelde database-item te selecteren.
  2. Selecteer de optie Machtigingen beheren .
  3. Voer de naam in van de logische servernaam van Azure SQL Database. Geef lees - en schrijfmachtigingen op.

Fouten door verouderde machtigingen met Microsoft Entra-aanmeldingen

Controleer de beperkingen in Microsoft Entra-server-principals voordat u Microsoft Entra-id-verificatie gebruikt.

Databasegebruikers die zijn gemaakt met behulp van Microsoft Entra-aanmeldingen, kunnen vertragingen ondervinden bij het verlenen van rollen en machtigingen. Dit kan leiden tot een fout zoals het volgende in de Fabric-portal:

"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: ..."

Tijdens de huidige preview moeten de volgende opdrachten worden gebruikt om deze problemen op te lossen.

  • Verwijder de gebruiker uit de gebruikersdatabase.
  • Voer DBCC FREESYSTEMCACHE('TokenAndPermUserStore') uit om beveiligingscaches op de database te wissen.
  • Voer deze opdracht uit DBCC FLUSHAUTHCACHE om de cache met federatieve verificatiecontext te wissen.
  • Maak de gebruiker opnieuw in de gebruikersdatabase op basis van de aanmelding.

Gebruik van transactielogboeken

Het gebruik van de transactielogboekomvang voor een database die is ingeschakeld voor spiegeling, kan blijven groeien en het verkorten van logboeken vertragen. Zodra de maximale gedefinieerde limiet voor het transactielogboek is bereikt, mislukken schrijfbewerkingen naar de database. Om dit te voorkomen, zorgt spiegeling ervoor dat de hele database automatisch opnieuw wordt gesynchroniseerd wanneer de logboekruimte die wordt gebruikt een ingestelde drempel overschrijdt binnen de totale geconfigureerde logboekruimte. Zie Automatisch opnieuw zaaien voor gespiegelde Fabric-databases uit Azure SQL Database om dit te diagnosticeren en meer te leren over automatisch opnieuw zaaien.

Opnieuw verzenden is automatisch gestart

Fabric Mirroring van Azure SQL Database kan automatisch opnieuw worden verzonden onder bepaalde omstandigheden, op het niveau van de afzonderlijke tabel of voor de hele database. Voor meer informatie, automatisch opnieuw verzenden voor gespiegelde Fabric-databases vanuit Azure SQL Database.