Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Denne artikkelen dekker feilsøkingstrinn for speiling av Azure Database for PostgreSQL fleksibel server.
Feilsøke feil-/advarselsmeldinger under tabellvalg for speiling
Når du oppretter en ny speilet database, kan det hende du får visuell tilbakemelding om bestemte tabeller i kildedatabasen på siden Velg data . Tabellen nedenfor inneholder en liste over potensielle problemer, inkludert meldingen som vises, og relatert beskrivelse av hvordan du løser problemet.
| Status kode | Statustype | Budskap | Description |
|---|---|---|---|
SCHEMA_DOES_NOT_EXIST |
FEIL | Skjema {} eksisterer ikke | Gitt skjema eksisterer ikke. Den kunne ha blitt fjernet mens Fabric hentet relevant tabellinformasjon. Prøve. |
TABLE_DOES_NOT_EXIST |
FEIL | I skjema {}finnes ikke tabellen {} . | Gitt tabell eksisterer ikke. Den kunne ha blitt fjernet mens Fabric hentet relevant tabellinformasjon. Prøve. |
FORBIDDEN_CHARS_IN_COLUMN_NAME |
FEIL | Tabell {}.{} inneholder forbudte tegn i navn på kolonner {} | Den gitte kolonnen har tegn som ikke støttes i navnet. 1 |
UNSUPPORTED_DATA_TYPE |
FEIL | Tabell {}.{} har datatypen som ikke støttes i kolonnen {} | Én (eller flere) av tabellens kolonner har datatyper som for øyeblikket ikke støttes. 3 |
FORBIDDEN_CHARS_IN_TABLE_NAME |
FEIL | Tabell {}.{} inneholder forbudte tegn i navnet | Tabellnavnet har tegn som ikke støttes. 1 |
NOT_REGULAR_TABLE |
FEIL | Tabell {}.{} er ikke en vanlig tabell | Tabelltype støttes ikke for speiling. 2 |
HAS_PRIMARY_KEY |
OK | Tabell {}.{} har en primærnøkkel | Tabell er en vanlig tabell og har en gyldig primærnøkkel som brukes til speiling. |
HAS_UNIQUE_INDEX |
OK | Tabell {}.{} har en passende unik indeks | Tabellen har ikke en primærnøkkel, men har en ikke-nullbar unik indeks som skal brukes til speiling. Nullbare unike indekser vil forårsake en feil under replikeringsfasen og støttes ikke. |
NO_INDEX_FULL_IDENTITY |
ADVARSEL | Tabell {}.{} har ikke en passende unik indeks. Bruke full identitet | Tabellen har verken en primærnøkkel eller en unik indeks, og REPLICA IDENTITY FULL må derfor støtte speiling, noe som kan føre til ytelsesproblemer og økt bruk av WAL. |
1 Objektidentifikatorer med mellomrom (' ') støttes ikke.
2 Denne tabelltypen støttes ikke for speiling. For øyeblikket støttes ikke visninger, materialiserte visninger, sekundære tabeller og partisjonerte tabeller. TimescaleDB-hypertabeller støttes heller ikke for Fabric Mirroring.
3 Hvis du vil ha en liste over datatyper som ikke støttes, kan du se Begrensninger. Bare kolonner med følgende typer støttes:
bigintbigserialbooleanbyteacharactercharacter varyingdatedouble precisionintegernumericrealserialoidmoneysmallintsmallserialtexttime without time zone-
time with time zone(* ikke som primærnøkkel) timestamp without time zonetimestamp with time zoneuuidxmljsonjsonbinetcidrmacaddrmacaddr8tsvectortsqueryint4rangeint8rangenumrangetsrangetstzrangedaterangecirclelinelsegboxpathpointpolygoninterval
I Postgres anses to 'tid med tidssone'-verdier som tilsvarer nøyaktig samme øyeblikk, men i forskjellige tidssoner, som forskjellige. For eksempel: 06:24:00.59+05 og 05:24:00.59+04 tilsvarer samme epoketid, men Postgres behandler dem forskjellig.
Standard ubegrensede numeriske kolonner i kildedatabaseskjemaer (uten definert presisjon og skala) konverteres til Desimal128(38, 0) før de replikeres til OneLake-tabeller, i tråd med SQL-standardkonvensjonen om at uspesifisert skala betyr heltallspresisjon.
Datadefinisjonsspråk (DDL)-operasjoner støttet på kildedatabasen
- Omdøp kolonne: en kolonne med det nye navnet legges til i den speilede tabellen i Fabric og inneholder data for nylig innsatte rader (for eksisterende rader vil være NULL). Den gamle kolonnen opprettholdes fortsatt med verdier for eksisterende rader (for nye rader er NULL).
- Legg til kolonne: Den tilføyde kolonnen er synlig i den speilede tabellen og inneholder data for nylig innsatte rader (for eksisterende rader er NULL).
- Fjern kolonne: fjernet kolonne forblir synlig i den speilede tabellen og inneholder data for eksisterende rader (for nye rader er NULL).
- Endre primærnøkkel: speilingsøkten fortsetter jevnlig.
Enhver annen DDL-operasjon på kildetabeller støttes for øyeblikket ikke og kan forårsake replikeringsfeil.
Endringer i stoffkapasitet eller arbeidsområde
| Årsak | Resultat | Anbefalt oppløsning |
|---|---|---|
| Strukturkapasitet satt på pause/slettet | Speiling stopper | 1. Gjenoppta eller tilordne kapasitet fra Azure-portalen 2. Gå til Stoffspeilet databaseelement. Fra verktøylinjen velger du Stopp replikering. 3. Start replikeringen ved å velge Speildatabase for det speilede elementet i Fabric-portalen. |
| Stoffkapasiteten gjenopptas | Speiling vil ikke bli gjenopptatt | 1. Gå til Stoffspeilet databaseelement. Fra verktøylinjen velger du Stopp replikering. 2. Start replikeringen ved å velge Speil database for det speilede elementet i Fabric-portalen. |
| Arbeidsområdet er slettet | Speiling stopper automatisk | Hvis speiling fortsatt er aktiv på den fleksible Azure Database for PostgreSQL-serveren, kobler du til ved hjelp av en serveradministrator og utfører følgende kommandoer på PostgreSQL-serveren: select azure_cdc.list_tracked_publications();, deretter bruker du det returnerte publikasjonsnavnet og kjører select azure_cdc.stop_publication(<publication_name>); |
| Prøvekapasiteten for Fabric er utløpt | Speiling stopper automatisk | Se Prøvekapasiteten for Fabric utløper. |
| Stoffkapasitet overskredet | Speiling pauser | Vent til overbelastningstilstanden er over, eller oppdater kapasiteten. Finn ut mer i Handlinger du kan utføre for å gjenopprette etter overbelastningssituasjoner. Speilingen fortsetter når kapasiteten er gjenopprettet. |
| Eventuelle andre ressursfeil | Speiling er deaktivert | For å sikre at databehandlingsressursene dine ikke påvirkes og for å minimere innvirkningen på den fleksible Azure Database for PostgreSQL-serveren, deaktiverer speiling eventuelle vedvarende ressursfeil. |
| Innstillingen «Brukere kan få tilgang til data som er lagret i OneLake med apper som er eksterne for Fabric» deaktivert | "Replicator - Tabeller kan ikke nå replikeringsstatus" | Aktiver tenantinnstillingen Brukere kan få tilgang til data som er lagret i OneLake med apper som er eksterne for Fabric. |
SQL-spørringer for feilsøking
Hvis du opplever speilingsproblemer, koble deg til kildeserveren Azure Database for PostgreSQL og utfør disse sjekkene ved hjelp av systemvisninger og funksjoner for å validere konfigurasjonen.
- Kjør følgende spørring for å validere om alle forutsetninger er oppfylt før du starter CDC-speilingen. Denne funksjonen sjekker ulike system- og konfigurasjonskrav for å sikre at serveren er klar for CDC-operasjoner.
-- 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 sjekker består,ERRORhvis noen prøver feiler -
data: JSONB-array som inneholder detaljerte statusoppføringer medstatus,status_code, og valgfrittdetails
Statuskoder:
| Status kode | Nivå | Description |
|---|---|---|
| IDENTITY_NOT_CONFIGURED | FEIL | Tjenesteprincipal-legitimasjoner er ikke konfigurert (azure.service_principal_id eller azure.service_principal_tenant_id GUC-er ikke satt) |
| CDC_ADMIN_ROLE_NOT_EXISTS | FEIL | Den azure_cdc_admin rollen eksisterer ikke i databasen |
| USER_NOT_CDC_ADMIN | FEIL | Nåværende bruker har ikke azure_cdc_admin-rollen |
| NO_CREATE_PRIVILEGE_ON_DATABASE | FEIL | Nåværende bruker mangler CREATE-privilegiet i databasen |
| PUBLICATION_LIMIT_REACHED | FEIL | Maksimalt antall publikasjoner (1) er nådd for databasen |
| SERVER_IN_RECOVERY | FEIL | Serveren er en standby-replika i gjenopprettingsmodus (CDC-speiling støttes ikke på standbyer) |
| MAX_WORKER_PROCESSES_TOO_LOW | FEIL | max_worker_processes er under anbefalt terskel (13) |
- Kjør følgende spørring for å validere om tabeller i kildedatabasen din er kvalifisert for replikasjon. Ekskluderer systemskjemaer (
pg_catalog,information_schema, )pg_toastog utvidelseseide 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: Sett av (table_schema text, table_name text, mirroring_status text, mirroring_data jsonb)
-
table_schema: Skjemanavn på tabellen -
table_name: Navnet på tabellen -
mirroring_status: Overordnet status -OK,WARNING, ellerERROR -
mirroring_data: JSONB-array som inneholder detaljerte statusoppføringer medstatus,status_code, og valgfrittdetails
Statuskoder:
| Status kode | Nivå | Description |
|---|---|---|
| SCHEMA_DOES_NOT_EXIST | FEIL | Det spesifiserte skjemaet eksisterer ikke |
| TABLE_DOES_NOT_EXIST | FEIL | Den angitte tabellen eksisterer ikke i skjemaet |
| FORBIDDEN_CHARS_IN_COLUMN_NAME | FEIL | Kolonnenavn inneholder forbudte tegn (f.eks. mellomrom) |
| FORBIDDEN_CHARS_IN_TABLE_NAME | FEIL | Tabellnavn inneholder forbudte tegn |
| UNSUPPORTED_DATA_TYPE | ADVARSEL | Tabellen har kolonner med ikke-støttede datatyper |
| UNSUPPORTED_TYPE_IN_REPLICA_IDENTITY | FEIL | Ustøttet datatype i kolonner for replikaidentitet (når det ikke finnes noen unik indeks) |
| NOT_REGULAR_TABLE | FEIL | Tabellen er ikke en regulær, permanent tabell (f.eks. visning, midlertidig, partisjon) |
| NOT_TABLE_OWNER | FEIL | Nåværende bruker er ikke eier av tabellen |
| HAS_PRIMARY_KEY | OK | Tabellen har en primærnøkkel |
| HAS_UNIQUE_INDEX | OK | Tabellen har en passende unik indeks |
| NO_INDEX_FULL_IDENTITY | ADVARSEL | Ingen egnet unik indeks; Full radidentitet vil bli brukt (kan påvirke ytelsen) |
- Kjør følgende spørring for å returnere feil og problemer oppdaget under replikeringsoperasjoner, inkludert systemomfattende feil, publikasjonsspesifikke feil og feil per tabell.
-- 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');
Parametere:
-
db_name(tekst): Databasenavn -
pub_name(tekst): Publikasjonens navn
Oppførsel:
- Når det kalles med tomme strenger for begge parameterne (
azure_cdc.get_health_status('', '')): Returnerer kun systemomfattende feil (feiltype 'S'). - Når den kalles med gyldige database- og publikasjonsnavn: Returnerer både systemomfattende feil og publikasjons-/tabellspesifikke feil for den angitte publikasjonen.
Returer: Sett av (error_time timestamptz, schema_name text, table_name text, error_type char(1), error_code text, params jsonb)
Feiltyper:
| Feiltype | Description |
|---|---|
| S | Systemomfattende feil |
| P | Publikasjonsspesifikk feil |
| T | Tabellspesifikk feil |
Feilkoder:
| Feilkode | Type | Description |
|---|---|---|
| CDC_ERR_SYS_MAX_NUMBER_OF_WORKERS_REACHED | S | Maksimalt antall arbeidere nådd |
| CDC_ERR_SYS_MAX_NUMBER_OF_PUBLICATIONS_REACHED | S | Maksimalt antall publikasjoner for databasen som er nådd |
| CDC_ERR_SYS_ONELAKE_PERMISSION_DENIED | S | Tillatelse avslått for OneLake-aksjon |
| CDC_ERR_SYS_ONELAKE_ARTIFACT_DOES_NOT_EXIST | S | OneLake-artefakt ikke funnet |
| CDC_ERR_SYS_ONELAKE_COMM_FAILED | S | OneLake-kommunikasjonen sviktet |
| CDC_ERR_SYS_ONELAKE_BAD_REQUEST | S | Dårlig forespørsel til OneLake |
| CDC_ERR_PUB_SNAPSHOT_TIMEOUT | P | Snapshot er ikke klart etter timeout |
| CDC_ERR_PUB_SNAPSHOT_WORKER_TIMEOUT | P | Snapshot worker timeout for en spesifikk tabell |
| CDC_ERR_PUB_ONELAKE_PERMISSION_DENIED | P | Tillatelse avslått for OneLake-aksjon |
| CDC_ERR_PUB_ONELAKE_ARTIFACT_DOES_NOT_EXIST | P | OneLake-artefakt ikke funnet |
| CDC_ERR_PUB_ONELAKE_COMM_FAILED | P | OneLake-kommunikasjonen sviktet |
| CDC_ERR_PUB_MAX_NUMBER_OF_WORKERS_REACHED | P | Maks antall arbeidere som ble publisert |
| CDC_ERR_PUB_ONELAKE_BAD_REQUEST | P | Dårlig forespørsel til OneLake |
| CDC_ERR_PUB_TOO_MANY_ERRORS | P | For mange feil under publiseringsprosessen |
| CDC_ERR_TABLE_TRUNCATE_NOT_SUPPORTED | T | Truncate-operasjonen støttes ikke (kan forårsake datainkonsistens) |
Kjør følgende spørring for å sjekke om publiseringen er opprettet korrekt og at replikasjonen flyter riktig:
select * from azure_cdc.tracked_publications;Sjekk om publikasjonen er aktiv og øyeblikksbilde er generert. Du kan også sjekke om etterfølgende endringsgrupper er generert ved å spørre:
select * from azure_cdc.tracked_batches;Hvis visningen
azure_cdc.tracked_publicationsikke viser noen fremdrift ved behandling av trinnvise endringer, kjører du følgende SQL-spørring for å kontrollere om det er rapportert problemer:SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';Hvis det ikke er rapportert noen problemer, utfør følgende kommando for å se gjennom gjeldende konfigurasjon av den speilede PostgreSQL-databasen. Bekreft at den er riktig aktivert.
SELECT * FROM pg_replication_slots;Nøkkelkolonnene du vil se etter her, er
slot_nameogactive. Enhver verdi i tillegg tilt(sann) indikerer et potensielt problem.Kontakt kundestøtte hvis feilsøking kreves.
Administrert identitet
Den systemtilordnede administrerte identiteten (SAMI) for den fleksible Azure Database for PostgreSQL-serveren må være aktivert, og må være den primære identiteten. Hvis du vil ha mer informasjon, kan du se Systemtilordnet administrert identitet for PostgreSQL fleksibel server.
Etter aktivering, hvis SAMI-innstillingsstatus senere deaktiveres og deretter aktiveres igjen, mislykkes speilingen av Azure Database for PostgreSQL fleksibel server til Fabric OneLake.
Kontroller at SAMI er aktivert med følgende spørring: show azure.service_principal_id;
SAMI tillatelser
Ikke fjern Azure Database for PostgreSQL fleksibel server System Assigned Managed Identity (SAMI)-bidragsytertillatelser på Fabric speilet databaseelement.
Hvis du ved et uhell fjerner SAMI-tillatelser, fungerer ikke speiling av Azure Database for PostgreSQL fleksibel server som forventet. Ingen nye data kan speiles fra kildedatabasen.
Hvis du fjerner Azure Database for PostgreSQL fleksible server-SAMI-tillatelser eller -tillatelser som ikke er riktig konfigurert, bruker du følgende trinn.
- Legg til den fleksible serveren SAMI som en bruker ved å velge
...ellipsealternativet på det speilede databaseelementet. - Velg alternativet Administrer tillatelser .
- Skriv inn navnet på den fleksible Azure Database for PostgreSQL-serveren. Gi lese - og skrivetillatelser .