Konfliktien ratkaiseminen loogisessa replikaatiossa
Opitte, miten konfliktit syntyvät loogisessa replikaatiossa ja millaisia strategioita PostgreSQL tarjoaa niiden havaitsemiseen ja ratkaisemiseen.
Konfliktien ratkaiseminen loogisessa replikaatiossa on ilmainen Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-kurssilla on yhteensä 4 oppituntia.
Miksi ristiriitoja syntyy
Toisin kuin fyysinen replikointi, looginen replikointi soveltaa muutokset tilaajassa SQL-tason operaatioina. Jos paikalliset tiedot poikkeavat saapuvasta muutoksesta, syntyy ristiriita ja soveltaminen pysähtyy.
Yleiset ristiriitatyypit
Tyypillisiä ristiriitoja ovat:
- Yksilöllisyysrikkomus — samaa avainta käyttävä rivi on jo olemassa
- Puuttuva rivi —
UPDATE- taiDELETE-toiminto kohdistuu tilaajalta puuttuvaan riviin - Tyypin tai rajoitteen yhteensopimattomuus
Soveltavan työntekijän pysähtyminen
Kun ristiriita ilmenee, tilauksen soveltava työntekijä päättyy virheeseen ja yrittää samaa tapahtumaa toistuvasti uudelleen, jolloin replikoinnin viive kasvaa, kunnes puututte tilanteeseen.
Ristiriidan löytäminen
PostgreSQL-loki tallentaa epäonnistuneen tapahtuman ja sen LSN:n. Voitte tarkastella myös tilauksen tilastotietoja.
SELECT subname, last_error_time, last_error_message
FROM pg_stat_subscription_stats;Ratkaiseminen tietoja korjaamalla
Yksi vaihtoehto on saattaa paikalliset tiedot yhdenmukaisiksi, jotta muutos voidaan soveltaa: poistakaa ristiriidan aiheuttava rivi ja antakaa replikoinnin yrittää uudelleen.
DELETE FROM products WHERE id = 42;
-- the incoming INSERT for id 42 now appliesTapahtuman ohittaminen
Jos ongelman aiheuttava muutos pitäisi jättää huomiotta, ohittakaa se LSN:n perusteella. Toimikaa varovasti, sillä tällöin kyseiset tiedot hylätään.
ALTER SUBSCRIPTION my_sub SKIP (lsn = '0/14A0B30');Käytöstä poistaminen virheen sattuessa
Määrittäkää tilaus poistamaan itsensä käytöstä virheen sattuessa, jotta se lopettaa uudet yritykset ja jää odottamaan ylläpitäjää.
ALTER SUBSCRIPTION my_sub SET (disable_on_error = true);Ristiriitojen ehkäiseminen
Vähentäkää ristiriitoja seuraavasti:
- Käyttäkää yhtä kirjoittajaa loogista tietojoukkoa kohden
- Välttäkää päällekkäisiä pääavainalueita solmujen välillä
- Varmistakaa, että tilaajan skeema vastaa julkaisijan skeemaa
Replikan identiteetillä on merkitystä
UPDATE- ja DELETE-toiminnot tarvitsevat replikan identiteetin kohderivin löytämiseen. Taulu, jolla ei ole pääavainta, tarvitsee asetuksen REPLICA IDENTITY FULL, muuten replikointi epäonnistuu.
ALTER TABLE logs REPLICA IDENTITY FULL;Viiveen valvonta
Seuratkaa julkaisijan näkymää pg_replication_slots; pysähtynyt tilaaja pitää WAL:n varattuna ja kasvattaa paikkaa, mikä voi täyttää levyn.
SELECT slot_name, active, pg_size_pretty(
pg_wal_lsn_diff(pg_current_wal_lsn(), confirmed_flush_lsn))
FROM pg_replication_slots;Toimintaohjeen dokumentointi
Koska ristiriidat edellyttävät manuaalista harkintaa, tiimit ylläpitävät toimintaohjetta: miten ristiriita tunnistetaan, korjataanko tiedot vai ohitetaanko tapahtuma ja miten yhdenmukaisuus varmistetaan sen jälkeen.
Pikatarkistus
Saapuva INSERT aiheuttaa tilaajassa yksilöllisyysrikkomuksen. Mikä on turvallisin ratkaisu?
Kertaus
Opitte, miten loogisen replikoinnin ristiriidat syntyvät, miten ne löydetään tilastojen ja lokien avulla sekä miten ne ratkaistaan korjaamalla tiedot, ohittamalla LSN tai käyttämällä asetusta disable_on_error. Asianmukainen replikan identiteetti ja yhden kirjoittajan rakenne ehkäisevät useimmat ristiriidat.
Opi Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 11
- Oppitunnit
- 44
Usein kysytyt kysymykset
Onko oppitunti ”Konfliktien ratkaiseminen loogisessa replikaatiossa” ilmainen?
Kyllä – oppitunnin ”Konfliktien ratkaiseminen loogisessa replikaatiossa” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-kurssin, päivitä CoddyKit PROhon. Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Konfliktien ratkaiseminen loogisessa replikaatiossa”?
Opitte, miten konfliktit syntyvät loogisessa replikaatiossa ja millaisia strategioita PostgreSQL tarjoaa niiden havaitsemiseen ja ratkaisemiseen. Harjoittelet Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Konfliktien ratkaiseminen loogisessa replikaatiossa”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppitunnilla?
Kyllä. Jokainen Edistynyt PostgreSQL: indeksointi, osiointi ja replikointi-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Loogisen replikoinnin perusteet
- Julkaisujen määrittäminen
- Tilausten hallinta
- Konfliktien ratkaiseminen loogisessa replikaatiossa