Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Denne artikel dækker fejlfindingstrin til at spejle Azure Database for PostgreSQL fleksibel server.
Fejlfinding af fejl-/advarselsmeddelelser under tabelvalg til spejling
Når du opretter en ny spejlet database, kan du på Choose-datasiden modtage visuel feedback vedrørende specifikke tabeller i kildedatabasen. Følgende tabel giver en liste over potentielle problemer, inklusive den viste besked og den relaterede beskrivelse af, hvordan problemet løses.
| Statuskode | Statustype | Meddelelse | Beskrivelse |
|---|---|---|---|
SCHEMA_DOES_NOT_EXIST |
ERROR | Skemaet {} eksisterer ikke | Givet skema eksisterer ikke. Det kunne være blevet fjernet, mens Fabric trak relevante tabeloplysninger. Prøv igen. |
TABLE_DOES_NOT_EXIST |
ERROR | I skema {}eksisterer tabellen {} ikke. | Givet tabel eksisterer ikke. Det kunne være blevet fjernet, mens Fabric trak relevante tabeloplysninger. Prøv igen. |
FORBIDDEN_CHARS_IN_COLUMN_NAME |
ERROR | Tabel {}.{} indeholder forbudte tegn i kolonnenavnene {} | Den givne kolonne har et tegn uden understøttelse i navnet. 1 |
UNSUPPORTED_DATA_TYPE |
ERROR | Tabel {}.{} har en ikke-understøttet datatype i kolonnen {} | En (eller flere) af tabellens kolonner har i øjeblikket ikke-understøttede datatyper. 3 |
FORBIDDEN_CHARS_IN_TABLE_NAME |
ERROR | Tabel {}.{} indeholder forbudte tegn i navnet | Tabelnavnet har ikke-understøttede tegn. 1 |
NOT_REGULAR_TABLE |
ERROR | Tabel {}.{} er ikke en almindelig tabel | Tabeltype understøttes ikke til spejling. 2 |
HAS_PRIMARY_KEY |
OK | Tabel {}.{} har en primær nøgle | Tabellen er en almindelig tabel og har en gyldig primærnøgle, der bruges til spejling. |
HAS_UNIQUE_INDEX |
OK | Tabel {}.{} har et passende unikt indeks | Tabellen har ikke en primærnøgle, men har et ikke-nullbart unikt indeks, som skal bruges til spejling. Nullbare unikke indekser vil forårsage en fejl under replikationsfasen og understøttes ikke. |
NO_INDEX_FULL_IDENTITY |
ADVARSEL | Tabel {}.{} har ikke et passende unikt indeks. Brug af fuld identitet | Tabellen har hverken en primærnøgle eller et unikt indeks, så REPLICA IDENTITY FULL den er nødvendig for at understøtte spejling, hvilket kan forårsage ydeevneproblemer og yderligere WAL-brug. |
1 Objektidentifikatorer med mellemrum (' ') tegn understøttes ikke.
2 Denne tabeltype understøttes ikke til spejling. I øjeblikket understøttes visninger, materialiserede visninger, fremmede tabeller og partitionerede tabeller ikke. TimescaleDB-hypertabeller understøttes heller ikke til Fabric Mirroring.
3 For en liste over ikke-understøttede datatyper, se Begrænsninger. Kun kolonner med følgende typer understøttes:
bigintbigserialbooleanbyteacharactercharacter varyingdatedouble precisionintegernumericrealserialoidmoneysmallintsmallserialtexttime without time zone-
time with time zone(* ikke som primærnøgle) timestamp without time zonetimestamp with time zoneuuidxmljsonjsonbinetcidrmacaddrmacaddr8tsvectortsqueryint4rangeint8rangenumrangetsrangetstzrangedaterangecirclelinelsegboxpathpointpolygoninterval
I Postgres betragtes to 'tid med tidszone'-værdier, der svarer til præcis det samme øjeblik, men i forskellige tidszoner, som forskellige. For eksempel: 06:24:00.59+05 og 05:24:00.59+04 svarer til samme epoke, men Postgres behandler dem forskelligt.
Standard ubegrænsede numeriske kolonner i kildedatabasens skemaer (uden defineret præcision og skala) konverteres til Decimal128(38, 0), før de replikeres til OneLake-tabeller, i overensstemmelse med SQL-standardkonventionen om, at uspecificeret skala betyder heltalspræcision.
Data definition language (DDL)-operationer understøttet på kildedatabasen
- Omdøb kolonne: en kolonne med det nye navn tilføjes til den spejlede tabel i Fabric og indeholder data for nyindsatte rækker (for eksisterende rækker vil være NULL). Den gamle kolonne vedligeholdes stadig med værdier for de eksisterende rækker (for nye rækker er NULL).
- Tilføj kolonne: tilføjet kolonne er synlig i den spejlede tabel og indeholder data for nyindsatte rækker (for eksisterende rækker er NULL).
- Fjern kolonne: fjernet kolonne forbliver synlig i den spejlede tabel og indeholder data for eksisterende rækker (for nye rækker er NULL).
- Skift primærnøgle: spejlingssessionen fortsætter regelmæssigt.
Enhver anden DDL-operation på kildetabeller understøttes i øjeblikket ikke og kan forårsage replikeringsfejl.
Ændringer af Fabric-kapacitet eller arbejdsområde
| Årsag | Resultat | Anbefalet opløsning |
|---|---|---|
| Fabric-kapacitet pauset/slettet | Spejlingsstop | 1. Genoptag eller tildel kapacitet fra Azure-portalen 2. Gå til Fabric spejlet databaseelement. Fra værktøjslinjen vælger du Stop replikering. 3. Start replikering ved at vælge Spejldatabase for det spejlede element i Fabric-portalen. |
| Strukturkapaciteten genoptaget | Spejling vil ikke blive genoptaget | 1. Gå til Fabric spejlet databaseelement. Fra værktøjslinjen vælger du Stop replikering. 2. Start replikation ved at vælge Mirror database for det spejlede element i Fabric-portalen. |
| Arbejdsområde slettet | Spejling stopper automatisk | Hvis mirroring stadig er aktiv på den Azure Database for PostgreSQL fleksible server, skal du oprette forbindelse via en serveradministrator og udføre følgende kommandoer på din PostgreSQL-server: select azure_cdc.list_tracked_publications();, brug derefter det returnerede publikationsnavn og udfør select azure_cdc.stop_publication(<publication_name>); |
| Prøvekapacitet for struktur er udløbet | Spejling stopper automatisk | Se Fabric prøvekapacitet udløber. |
| Stofkapaciteten overskrides | Spejling af pauser | Vent, indtil overbelastningstilstanden er overstået, eller opdater din kapacitet. Få flere oplysninger i Handlinger, du kan udføre for at genoprette efter overbelastningssituationer. Mirroring fortsætter, når kapaciteten er genoprettet. |
| Eventuelle andre ressourcefejl | Spejling er deaktiveret | For at sikre, at dine beregningsressourcer ikke bliver påvirket, og for at minimere påvirkningen på Azure Database for PostgreSQL fleksibel server, deaktiverer mirroring eventuelle vedvarende ressourcefejl. |
| Indstillingen "Brugere kan få adgang til data, der er gemt i OneLake, med apps uden for Fabric" er deaktiveret | "Replicator - Tabeller kan ikke nå replikeringsstatus" | Aktivér lejerindstillingen Brugere kan få adgang til data, der er gemt i OneLake, med apps uden for Fabric. |
SQL-forespørgsler til fejlfinding
Hvis du oplever mirroring-problemer, så forbind til kildeserveren Azure Database for PostgreSQL og udfør disse kontroller ved hjælp af systemvisninger og funktioner til at validere konfigurationen.
- Udfør følgende forespørgsel for at validere, om alle forudsætninger er opfyldt, før du starter CDC-spejlingen. Denne funktion kontrollerer forskellige system- og konfigurationskrav for at sikre, at serveren er klar til CDC-operationer.
-- Check if all prerequisites are met
SELECT * FROM azure_cdc.check_prerequisites();
-- Example output when all checks pass (on mock mode with identity configured):
status | data
--------+----------------------------------------------------------------------------------------------------------------------------------
ERROR | [{"status": "ERROR", "details": {"current_value": "12", "required_value": "13"}, "status_code": "MAX_WORKER_PROCESSES_TOO_LOW"}]
-- Example output on standby replica:
status | data
--------+---------------------------------------------------------------------------------------------------
ERROR | [{"status": "ERROR", "status_code": "SERVER_IN_RECOVERY"}]
-- Example output when identity not configured:
status | data
--------+---------------------------------------------------------------------
ERROR | [{"status": "ERROR", "status_code": "IDENTITY_NOT_CONFIGURED"}]
Returer:(status text, data jsonb)
-
status: Overordnet status -OKhvis alle checks består,ERRORhvis nogen kontrol fejler -
data: JSONB-array med detaljerede statusindgange medstatus,status_code, og valgfritdetails
Statuskoder:
| Statuskode | Niveau | Beskrivelse |
|---|---|---|
| IDENTITY_NOT_CONFIGURED | ERROR | Service principal-legitimationsoplysninger er ikke konfigurerede (azure.service_principal_id eller azure.service_principal_tenant_id GUCs ikke sat) |
| CDC_ADMIN_ROLE_NOT_EXISTS | ERROR | Den azure_cdc_admin rolle eksisterer ikke i databasen |
| USER_NOT_CDC_ADMIN | ERROR | Den nuværende bruger har ikke rollen azure_cdc_admin |
| NO_CREATE_PRIVILEGE_ON_DATABASE | ERROR | Den nuværende bruger mangler CREATE-privilegiet på databasen |
| PUBLICATION_LIMIT_REACHED | ERROR | Maksimum antal publikationer (1) er nået for databasen |
| SERVER_IN_RECOVERY | ERROR | Serveren er en standby-replika i recovery-tilstand (CDC-spejling understøttes ikke på standbys) |
| MAX_WORKER_PROCESSES_TOO_LOW | ERROR | max_worker_processes er under den anbefalede grænse (13) |
- Udfør følgende forespørgsel for at validere, om tabeller i din kildedatabase er egnede til replikering. Udelukker systemskemaer (
pg_catalog,information_schema, )pg_toastog udvidelses-ejede tabeller.
SELECT * FROM azure_cdc.get_all_tables_mirror_status();
table_schema | table_name | mirroring_status | mirroring_data
--------------+------------+------------------+------------------------------------------------------
public | customers | OK | [{"status": "OK", "status_code": "HAS_PRIMARY_KEY"}]
public | orders | OK | [{"status": "OK", "status_code": "HAS_UNIQUE_INDEX"}]
public | logs | WARNING | [{"status": "WARNING", "status_code": "NO_INDEX_FULL_IDENTITY"}]
Returer: Mængden af (table_schema text, table_name text, mirroring_status text, mirroring_data jsonb)
-
table_schema: Skemanavn for tabellen -
table_name: Bordets navn -
mirroring_status: Overordnet status -OK, ,WARNINGellerERROR -
mirroring_data: JSONB-array med detaljerede statusindgange medstatus,status_code, og valgfritdetails
Statuskoder:
| Statuskode | Niveau | Beskrivelse |
|---|---|---|
| SCHEMA_DOES_NOT_EXIST | ERROR | Det specificerede skema eksisterer ikke |
| TABLE_DOES_NOT_EXIST | ERROR | Den angivne tabel findes ikke i skemaet |
| FORBIDDEN_CHARS_IN_COLUMN_NAME | ERROR | Kolonnenavne indeholder forbudte tegn (f.eks. mellemrum) |
| FORBIDDEN_CHARS_IN_TABLE_NAME | ERROR | Tabelnavnet indeholder forbudte tegn |
| UNSUPPORTED_DATA_TYPE | ADVARSEL | Tabellen har kolonner med ikke-understøttede datatyper |
| UNSUPPORTED_TYPE_IN_REPLICA_IDENTITY | ERROR | Uunderstøttet datatype i replika-identitetskolonner (når der ikke findes et unikt indeks) |
| NOT_REGULAR_TABLE | ERROR | Tabel er ikke en regulær, permanent tabel (f.eks. visning, midlertidig, partition) |
| NOT_TABLE_OWNER | ERROR | Den nuværende bruger er ikke ejeren af tabellen |
| HAS_PRIMARY_KEY | OK | Tabel har en primærnøgle |
| HAS_UNIQUE_INDEX | OK | Tabellen har et passende unikt indeks |
| NO_INDEX_FULL_IDENTITY | ADVARSEL | Intet egnet unikt indeks; fuld rækkeidentitet vil blive brugt (kan påvirke ydeevnen) |
- Udfør følgende forespørgsel for at returnere fejl og problemer, der opdages under replikationsoperationer, herunder systemomfattende fejl, publikationsspecifikke fejl og fejl pr. tabel.
-- Get only system-wide errors
SELECT * FROM azure_cdc.get_health_status('', '');
-- Get system-wide errors and publication-specific errors
SELECT * FROM azure_cdc.get_health_status('my_database', 'my_publication');
Parametre:
-
db_name(tekst): Databasenavn -
pub_name(tekst): Publikationens navn
Adfærd:
- Når den kaldes med tomme strenge for begge parametre (
azure_cdc.get_health_status('', '')): Returnerer kun systemomfattende fejl (fejltype 'S'). - Når den kaldes med gyldige database- og publikationsnavne: Returnerer både systemomfattende fejl og publikations-/tabelspecifikke fejl for den specificerede publikation.
Returer: Mængden af (error_time timestamptz, schema_name text, table_name text, error_type char(1), error_code text, params jsonb)
Fejltyper:
| Fejltype | Beskrivelse |
|---|---|
| S | Systemomfattende fejl |
| P | Publikationsspecifik fejl |
| T | Tabelspecifik fejl |
Fejlkoder:
| Fejlkode | Type | Beskrivelse |
|---|---|---|
| CDC_ERR_SYS_MAX_NUMBER_OF_WORKERS_REACHED | S | Maksimalt antal arbejdere nået |
| CDC_ERR_SYS_MAX_NUMBER_OF_PUBLICATIONS_REACHED | S | Maksimalt antal publikationer for databasen opnået |
| CDC_ERR_SYS_ONELAKE_PERMISSION_DENIED | S | Tilladelse afvist til OneLake-aktion |
| CDC_ERR_SYS_ONELAKE_ARTIFACT_DOES_NOT_EXIST | S | OneLake-artefakt ikke fundet |
| CDC_ERR_SYS_ONELAKE_COMM_FAILED | S | OneLake-kommunikationen fejlede |
| CDC_ERR_SYS_ONELAKE_BAD_REQUEST | S | Dårlig anmodning til OneLake |
| CDC_ERR_PUB_SNAPSHOT_TIMEOUT | P | Snapshot ikke klar efter timeout |
| CDC_ERR_PUB_SNAPSHOT_WORKER_TIMEOUT | P | Snapshot-worker timeout for en specifik tabel |
| CDC_ERR_PUB_ONELAKE_PERMISSION_DENIED | P | Tilladelse afvist til OneLake-aktion |
| CDC_ERR_PUB_ONELAKE_ARTIFACT_DOES_NOT_EXIST | P | OneLake-artefakt ikke fundet |
| CDC_ERR_PUB_ONELAKE_COMM_FAILED | P | OneLake-kommunikationen fejlede |
| CDC_ERR_PUB_MAX_NUMBER_OF_WORKERS_REACHED | P | Maksimalt antal medarbejdere, der blev udgivet for offentliggørelse |
| CDC_ERR_PUB_ONELAKE_BAD_REQUEST | P | Dårlig anmodning til OneLake |
| CDC_ERR_PUB_TOO_MANY_ERRORS | P | For mange fejl under publiceringsprocessen |
| CDC_ERR_TABLE_TRUNCATE_NOT_SUPPORTED | T | Afbrød operation understøttes ikke (kan forårsage datainkonsistens) |
Udfør følgende forespørgsel for at tjekke, om publikationen er oprettet korrekt, og om replikationsændringerne forløber korrekt:
select * from azure_cdc.tracked_publications;Tjek om publikationen er aktiv, og om snapshot er genereret. Du kan også tjekke, om efterfølgende ændringsbatches er genereret ved at forespørge:
select * from azure_cdc.tracked_batches;Hvis visningen
azure_cdc.tracked_publicationsikke viser fremskridt med behandling af inkrementelle ændringer, udfør følgende SQL-forespørgsel for at tjekke, om der er rapporterede problemer:SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';Hvis der ikke er rapporteret nogen problemer, udfør følgende kommando for at gennemgå den aktuelle konfiguration af den spejlede PostgreSQL-database. Bekræft, at den er aktiveret korrekt.
SELECT * FROM pg_replication_slots;De vigtigste kolonner, der skal søges efter her, er og
slot_nameactive. Enhver værdi udovert(sand) indikerer et potentielt problem.Kontakt support , hvis fejlfinding er påkrævet.
Administreret identitet
System Assigned Managed Identity (SAMI) for Azure Database for PostgreSQL fleksibel server skal aktiveres og skal være den primære identitet. For mere information, se Systemtildelt administreret identitet for PostgreSQL fleksibel server.
Efter aktivering, hvis SAMI-indstillingen senere deaktiveres og aktiveres igen, fejler spejlingen af Azure Database for PostgreSQL fleksibel server til Fabric OneLake.
Verificér, at SAMI er aktiveret med følgende forespørgsel: show azure.service_principal_id;
SAMI tilladelser
Fjern ikke Azure Database for PostgreSQL fleksibel server System Assigned Managed Identity (SAMI) bidragyderrettigheder på Fabric spejlet databaseobjekt.
Hvis du ved et uheld fjerner SAMI-tilladelser, fungerer Mirroring Azure Database for PostgreSQL fleksibel server ikke som forventet. Der kan ikke spejles nye data fra kildedatabasen.
Hvis du fjerner Azure Database for PostgreSQL fleksible server-SAMI-tilladelser eller tilladelser, der ikke er sat korrekt op, skal du bruge følgende trin.
- Tilføj den fleksible server SAMI som bruger ved at vælge ellipsemuligheden
...på det spejlede databaseelement. - Vælg indstillingen Administrer tilladelser .
- Indtast navnet på Azure Database for PostgreSQL flexible server. Giv læse - og skrivetilladelser .