Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tässä artikkelissa käsitellään joustavan Azure Database for PostgreSQL -palvelimen peilaamisen vianmääritysvaiheita.
Virhe-/varoitusviestien vianmääritys peilauksen taulukon valinnan aikana
Kun luot uuden peilatun tietokannan, saatat saada Valitse tiedot -sivulla visuaalista palautetta lähdetietokannan tietyistä taulukoista. Seuraavassa taulukossa on luettelo mahdollisista ongelmista, mukaan lukien näyttöön tuleva sanoma ja siihen liittyvä kuvaus ongelman ratkaisemisesta.
| Tilan koodi | Tilan tyyppi | Viesti | Description |
|---|---|---|---|
SCHEMA_DOES_NOT_EXIST |
VIRHE | Skeemaa {} ei ole olemassa | Annettua skeemaa ei ole olemassa. Se olisi voitu poistaa, kun Fabric veti asiaankuuluvia taulukkotietoja. Yritä. |
TABLE_DOES_NOT_EXIST |
VIRHE | Skeemassa {}taulukkoa {} ei ole olemassa. | Annettua taulukkoa ei ole olemassa. Se olisi voitu poistaa, kun Fabric veti asiaankuuluvia taulukkotietoja. Yritä. |
FORBIDDEN_CHARS_IN_COLUMN_NAME |
VIRHE | Taulukko {}.{} sisältää kiellettyjä merkkejä sarakkeiden nimessä {} | Annetussa sarakkeessa on nimeä, jota ei tueta. 1 |
UNSUPPORTED_DATA_TYPE |
VIRHE | Taulukossa {}.{} on tietotyyppiä, jota ei tueta sarakkeessa {} | Yhdessä (tai useammassa) taulukon sarakkeista ei tällä hetkellä tueta tietotyyppejä. 3 |
FORBIDDEN_CHARS_IN_TABLE_NAME |
VIRHE | Taulukko {}.{} sisältää kiellettyjä merkkejä nimessä | Taulukon nimessä on merkkejä, joita ei tueta. 1 |
NOT_REGULAR_TABLE |
VIRHE | Taulukko {}.{} ei ole tavallinen taulukko | Taulukkotyyppiä ei tueta peilauksessa. 2 |
HAS_PRIMARY_KEY |
OKEI | Taulukossa {}.{} on perusavain | Taulukko on tavallinen taulukko, ja siinä on kelvollinen perusavain, jota käytetään peilaamiseen. |
HAS_UNIQUE_INDEX |
OKEI | Taulukossa {}.{} on sopiva yksilöllinen hakemisto | Taulukossa ei ole ensisijaista avainta, mutta sillä on ei-nollattava yksikäsitteinen indeksi, jota käytetään peilaamiseen. Nollattavat uniikit indeksit aiheuttavat virheen replikaatiovaiheessa eikä niitä tueta. |
NO_INDEX_FULL_IDENTITY |
VAROITUS | Taulukossa {}.{} ei ole sopivaa yksilöllistä indeksiä. Täyden identiteetin käyttäminen | Taulukossa ei ole ensisijaista avainta tai yksilöllistä indeksiä, joten REPLICA IDENTITY FULL sen on tuettava peilausta, mikä voi aiheuttaa suorituskykyongelmia ja lisäkäyttöä WAL:ssa. |
1 Välilyönnin (' ') merkkiä sisältäviä objektitunnisteita ei tueta.
2 Tätä taulukkotyyppiä ei tueta peilauksessa. Tällä hetkellä näkymiä, materialisoituja näkymiä, vieraita taulukoita ja osioituja taulukoita ei tueta. TimescaleDB-hypertaulukoita ei myöskään tueta Fabric Mirroringissa.
3 Luettelo tietotyypeistä, joita ei tueta, on kohdassa Rajoitukset. Vain sarakkeita, joilla on seuraavat tyypit, tuetaan:
bigintbigserialbooleanbyteacharactercharacter varyingdatedouble precisionintegernumericrealserialoidmoneysmallintsmallserialtexttime without time zone-
time with time zone(* ei perusavaimena) timestamp without time zonetimestamp with time zoneuuidxmljsonjsonbinetcidrmacaddrmacaddr8tsvectortsqueryint4rangeint8rangenumrangetsrangetstzrangedaterangecirclelinelsegboxpathpointpolygoninterval
Postgresissa kahta "aika aikavyöhykkeellä" -arvoa, jotka vastaavat täsmälleen samaa hetkeä, mutta eri aikavyöhykkeillä, pidetään erilaisina. Esimerkiksi: 06:24:00.59+05 ja 05:24:00.59+04 vastaavat samaa aikakauden aikaa, mutta Postgres kohtelee niitä eri tavalla.
Oletusrajoittamattomat numeeriset sarakkeet lähdetietokantaskeemoissa (ilman määriteltyä tarkkuutta ja skaalausta) muunnetaan muotoon Decimal128(38, 0) ennen kuin ne replikoidaan OneLake-tauluihin, mikä vastaa SQL-standardikäytäntöä, jonka mukaan määrittelemätön skaalaus tarkoittaa kokonaislukutarkkuutta.
Lähdetietokannassa tuetut tietojen määrittelykielen (DDL) toiminnot
- Rename-sarakke: sarake uudella nimellä lisätään peilikuvaan taulukkoon Fabric ja sisältää tiedot uusista riveistä (olemassa olevat rivit ovat NULL). Vanha sarake säilytetään edelleen olemassa olevien rivien arvoilla (uudet rivit ovat NOLLA).
- Lisää sarakke: lisätty sarake näkyy peilatussa taulukossa ja sisältää tiedot uusista riveistä (nykyiset rivit ovat NULL).
- Poista sarakke: poistettu sarake pysyy näkyvissä peilitaulukossa ja sisältää tiedot olemassa olevista riveistä (uudet rivit ovat NULL).
- Vaihda pääavain: peilaussessio jatkuu säännöllisesti.
Mikään muu DDL-operaatio lähdetauluilla ei tällä hetkellä ole tuettuja ja voi aiheuttaa replikaatiovirheitä.
Fabric-kapasiteetin tai työtilan muutokset
| Syy | Tulos | Suositeltu ratkaisu |
|---|---|---|
| Kankaan kapasiteetti keskeytetty/poistettu | Peilaus pysähtyy | 1. Kapasiteetin jatkaminen tai määrittäminen Azure-portaalista 2. Siirry Fabric-peilattuun tietokantakohteeseen. Valitse työkaluriviltä Lopeta replikointi. 3. Aloita replikointi valitsemalla peilatulle kohteelle Peilitietokanta Fabric-portaalissa. |
| Kankaan kapasiteetti jatkui | Peilausta ei jatketa | 1. Siirry Fabric-peilattuun tietokantakohteeseen. Valitse työkaluriviltä Lopeta replikointi. 2. Aloita replikointi valitsemalla peilatulle kohteelle Peilitietokanta Fabric-portaalissa. |
| Työtila poistettu | Peilaus pysähtyy automaattisesti | Jos peilaus on edelleen aktiivinen joustavassa Azure Database for PostgreSQL -palvelimessa, muodosta yhteys palvelimen järjestelmänvalvojan avulla ja suorita seuraavat komennot PostgreSQL-palvelimessasi: select azure_cdc.list_tracked_publications();, käytä sitten palautettua julkaisunimeä ja suorita se select azure_cdc.stop_publication(<publication_name>); |
| Fabricin kokeilukapasiteetti umpeutunut | Peilaus pysähtyy automaattisesti | Katso Fabricin kokeilukapasiteetti vanhenee. |
| Kankaan kapasiteetti ylitetty | Peilauksen tauot | Odota, kunnes ylikuormitustila on ohi, tai päivitä kapasiteettisi. Lue lisää kohdasta Toimet, joilla voit toipua ylikuormitustilanteista. Peilaus jatkuu, kun kapasiteetti on palautettu. |
| Muut resurssivirheet | Peilaus ei ole käytössä | Jotta voit varmistaa, että tämä ei vaikuta laskentaresursseihisi ja minimoida vaikutuksen joustavaan Azure Database for PostgreSQL -palvelimeen, peilaus poistaa käytöstä kaikki pysyvät resurssivirheet. |
| "Käyttäjät voivat käyttää OneLakeen tallennettuja tietoja, kun Fabricin ulkoiset sovellukset" -asetus on poistettu käytöstä | "Replikointi – taulukot eivät voi saavuttaa replikoinnin tilaa" | Ota vuokraaja-asetus käyttöön Käyttäjät voivat käyttää OneLakeen tallennettuja tietoja Fabricin ulkoisilla sovelluksilla. |
SQL-kyselyt vianmääritystä varten
Jos kohtaat peilausongelmia, yhdistä lähdekoodi Azure Database for PostgreSQL -palvelimeen ja tee nämä tarkistukset järjestelmänäkymien ja -toimintojen avulla konfiguraation validointiin.
- Suorita seuraava kysely varmistaaksesi, täyttyvätkö kaikki edellytykset ennen CDC-peilauksen aloittamista. Tämä toiminto tarkistaa erilaiset järjestelmä- ja konfiguraatiovaatimukset varmistaakseen, että palvelin on valmis CDC:n toimintaan.
-- 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"}]
Palautukset:(status text, data jsonb)
-
status: Yleinen tila –OKjos kaikki tarkistukset läpäisevät,ERRORjos jokin tarkistus epäonnistuu -
data: JSONB-taulukko, joka sisältää yksityiskohtaiset tilamerkinnät, joissastatus,status_code, ja valinnainendetails
Tilakoodit:
| Tilan koodi | Taso | Description |
|---|---|---|
| IDENTITY_NOT_CONFIGURED | VIRHE | Palvelupäähenkilön tunnistetietoja ei ole määritetty (azure.service_principal_id tai azure.service_principal_tenant_id GUC:t eivät ole asetettu) |
| CDC_ADMIN_ROLE_NOT_EXISTS | VIRHE | azure_cdc_admin roolia ei ole tietokannassa |
| USER_NOT_CDC_ADMIN | VIRHE | Nykyisellä käyttäjällä ei ole azure_cdc_admin roolia |
| NO_CREATE_PRIVILEGE_ON_DATABASE | VIRHE | Nykyisellä käyttäjällä ei ole CREATE-oikeutta tietokannassa |
| PUBLICATION_LIMIT_REACHED | VIRHE | Tietokannalle on saavutettu enimmäismäärä julkaisuja (1) |
| SERVER_IN_RECOVERY | VIRHE | Palvelin on valmiusreplika palautustilassa (CDC-peilaus ei tue valmiustilassa) |
| MAX_WORKER_PROCESSES_TOO_LOW | VIRHE | max_worker_processes on alle suositellun kynnyksen (13) |
- Suorita seuraava kysely varmistaaksesi, ovatko lähdetietokantasi taulut kelpoisia replikaatioon. Sulkee pois järjestelmäskeemat (
pg_catalog,information_schema,pg_toast) ja laajennuksen omistamat taulukot.
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"}]
Palautukset: Joukko (table_schema text, table_name text, mirroring_status text, mirroring_data jsonb)
-
table_schema: Taulukon skeeman nimi -
table_name: Taulukon nimi -
mirroring_status: Kokonaistila -OK,WARNING, taiERROR -
mirroring_data: JSONB-taulukko, joka sisältää yksityiskohtaiset tilamerkinnät, joissastatus,status_code, ja valinnainendetails
Tilakoodit:
| Tilan koodi | Taso | Description |
|---|---|---|
| SCHEMA_DOES_NOT_EXIST | VIRHE | Määriteltyä skeemaa ei ole olemassa |
| TABLE_DOES_NOT_EXIST | VIRHE | Määriteltyä taulukkoa ei ole skeemassa |
| FORBIDDEN_CHARS_IN_COLUMN_NAME | VIRHE | Sarakkeen nimet sisältävät kiellettyjä merkkejä (esim. välilyöntejä) |
| FORBIDDEN_CHARS_IN_TABLE_NAME | VIRHE | Taulukon nimi sisältää kiellettyjä merkkejä |
| UNSUPPORTED_DATA_TYPE | VAROITUS | Taulukossa on sarakkeita, joiden tietotyypit eivät ole tuettuja |
| UNSUPPORTED_TYPE_IN_REPLICA_IDENTITY | VIRHE | Tuettu tietotyyppi replika-identiteettisarakkeissa (kun yksilöllistä indeksiä ei ole) |
| NOT_REGULAR_TABLE | VIRHE | Taulukko ei ole tavallinen, pysyvä taulukko (esim. näkymä, väliaikainen, ositus) |
| NOT_TABLE_OWNER | VIRHE | Nykyinen käyttäjä ei ole taulukon omistaja |
| HAS_PRIMARY_KEY | OKEI | Taulukossa on primaariavain |
| HAS_UNIQUE_INDEX | OKEI | Taulukolla on sopiva yksikäsitteinen indeksi |
| NO_INDEX_FULL_IDENTITY | VAROITUS | Ei sopivaa yksilöllistä indeksiä; Koko riviidentiteettiä käytetään (voi vaikuttaa suorituskykyyn) |
- Suorita seuraava kysely palauttaaksesi replikaatiotoimintojen aikana havaitut virheet ja ongelmat, mukaan lukien järjestelmätason virheet, julkaisukohtaiset virheet ja taulukkokohtaiset virheet.
-- 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');
Parametrit:
-
db_name(teksti): Tietokannan nimi -
pub_name(teksti): Julkaisun nimi
Käyttäytyminen:
- Kun kutsutaan tyhjillä merkkijonoilla molemmille parametreille (
azure_cdc.get_health_status('', '')): Palauttaa vain järjestelmätason virheitä (virhetyyppi 'S'). - Kun kutsutaan kelvollisilla tietokanta- ja julkaisunimillä: Palauttaa sekä järjestelmätason virheet että julkaisu- ja taulukkokohtaiset virheet määritellystä julkaisusta.
Palautukset: Joukko (error_time timestamptz, schema_name text, table_name text, error_type char(1), error_code text, params jsonb)
Virhetyypit:
| Virhetyyppi | Description |
|---|---|
| S | Järjestelmätason virhe |
| P | Julkaisukohtainen virhe |
| T | Taulukkokohtainen virhe |
Virhekoodit:
| Virhekoodi | Tyyppi | Description |
|---|---|---|
| CDC_ERR_SYS_MAX_NUMBER_OF_WORKERS_REACHED | S | Maksimimäärä työntekijöitä saavutettu |
| CDC_ERR_SYS_MAX_NUMBER_OF_PUBLICATIONS_REACHED | S | Tietokannan suurin julkaisumäärä |
| CDC_ERR_SYS_ONELAKE_PERMISSION_DENIED | S | Lupa evätty OneLake-toimille |
| CDC_ERR_SYS_ONELAKE_ARTIFACT_DOES_NOT_EXIST | S | OneLake-artefaktia ei löydetty |
| CDC_ERR_SYS_ONELAKE_COMM_FAILED | S | OneLake-viestintä epäonnistui |
| CDC_ERR_SYS_ONELAKE_BAD_REQUEST | S | Huono pyyntö OneLakelle |
| CDC_ERR_PUB_SNAPSHOT_TIMEOUT | P | Snapshot ei ole valmis aikalisän jälkeen |
| CDC_ERR_PUB_SNAPSHOT_WORKER_TIMEOUT | P | Snapshot-työntekijän aikakatkaisu tietylle taulukolle |
| CDC_ERR_PUB_ONELAKE_PERMISSION_DENIED | P | Lupa evätty OneLake-toimille |
| CDC_ERR_PUB_ONELAKE_ARTIFACT_DOES_NOT_EXIST | P | OneLake-artefaktia ei löydetty |
| CDC_ERR_PUB_ONELAKE_COMM_FAILED | P | OneLake-viestintä epäonnistui |
| CDC_ERR_PUB_MAX_NUMBER_OF_WORKERS_REACHED | P | Suurin määrä työntekijöitä, jotka haettiin julkaisua varten |
| CDC_ERR_PUB_ONELAKE_BAD_REQUEST | P | Huono pyyntö OneLakelle |
| CDC_ERR_PUB_TOO_MANY_ERRORS | P | Liian paljon virheitä julkaisun käsittelyn aikana |
| CDC_ERR_TABLE_TRUNCATE_NOT_SUPPORTED | T | Katkaisutoiminto ei tue (voi aiheuttaa datan epäjohdonmukaisuuden) |
Suorita seuraava kysely tarkistaaksesi, onko julkaisu luotu oikein ja replikaatiomuutokset sujuvat oikein:
select * from azure_cdc.tracked_publications;Tarkista, onko julkaisu aktiivinen ja tilannekuva on luotu. Voit myös tarkistaa, onko myöhempiä muutoseriä luotu kyselemällä:
select * from azure_cdc.tracked_batches;Jos
azure_cdc.tracked_publicationsnäkymä ei näytä edistymistä inkrementaalisten muutosten käsittelyssä, suorita seuraava SQL-kysely ja tarkista, onko raportoitu ongelmia:SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';Jos ongelmia ei ole raportoitu, suorita seuraava komento tarkistaaksesi peilatun PostgreSQL-tietokannan nykyiset määritykset. Varmista, että se on otettu käyttöön oikein.
SELECT * FROM pg_replication_slots;Tässä etsittävät avainsarakkeet ovat ja
slot_nameactive. Mikä tahansa arvo (ttosi) lisäksi ilmaisee mahdollisen ongelman.Ota yhteyttä tukeen , jos vianmääritys on tarpeen.
Hallitut käyttäjätiedot
Joustavan Azure Database for PostgreSQL -palvelimen järjestelmän määrittämä hallittu käyttäjätieto (SAMI) on otettava käyttöön, ja sen on oltava ensisijainen käyttäjätieto. Lisätietoja on artikkelissa Järjestelmälle määritetty hallittu käyttäjätieto joustavalle PostgreSQL-palvelimelle.
Jos SAMI-asetuksen tila poistetaan myöhemmin käytöstä käyttöönoton jälkeen ja otetaan uudelleen käyttöön, joustavan Azure Database for PostgreSQL -palvelimen peilaus Fabric OneLakeen epäonnistuu.
Varmista, että SAMI on käytössä seuraavalla kyselyllä: show azure.service_principal_id;
SAMI-käyttöoikeudet
Älä poista Azure Database for PostgreSQL joustavan palvelimen System Assigned Managed Identity (SAMI) -avustajan käyttöoikeuksia peilatussa Fabric-tietokantakohteessa.
Jos poistat vahingossa SAMI-käyttöoikeudet, joustavan Azure Database for PostgreSQL -palvelimen peilaus ei toimi odotetulla tavalla. Lähdetietokannasta ei voi peilata uusia tietoja.
Jos poistat Azure Database for PostgreSQL joustavan palvelimen SAMI-käyttöoikeuksia tai käyttöoikeuksia ei ole määritetty oikein, toimi seuraavasti.
- Lisää joustava palvelimen SAMI käyttäjäksi valitsemalla
...peilatun tietokantakohteen kolme pistettä -vaihtoehto. - Valitse Hallitse käyttöoikeuksia -vaihtoehto.
- Kirjoita joustavan Azure Database for PostgreSQL -palvelimen nimi. Anna luku - ja kirjoitusoikeudet .