Muistiinpano
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoja.
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoja.
Tässä artikkelissa käsitellään automaattista uudelleensiementä tietokannan peilaamiseksi Azure SQL Managed Instancessa.
Tietyissä olosuhteissa, jos peilauksessa Fabriciin on viive, seurauksena voi olla tapahtumalokitiedoston käytön lisääntyminen. Tapahtumalokia ei voi katkaista, ennen kuin vahvistetut muutokset on replikoitu peilattuun tietokantaan. Kun tapahtumalokin koko saavuttaa määritetyn enimmäisrajan, tietokantaan kirjoittaminen epäonnistuu.
Suojatakseen toiminnallisia tietokantoja kirjoitusvirheiltä kriittisille OLTP-transaktioille, Azure SQL Database- ja Azure SQL Managed Instance -peilaus käyttää autoresseed-ominaisuutta, joka mahdollistaa transaktiolokin katkaisemisen ja alustaa tietokannan peilauksen uudelleen Fabric-tiedostoon.
Uudelleenohjaus pysäyttää tapahtumien työnkulun Microsoft Fabriciin peilatusta tietokannasta ja alustaa peilauksen uudelleen nykyisessä tilassa. Uudelleenkäsittely sisältää uuden ensimmäisen tilannevedoksen luomisen peilausta varten määritetyistä taulukoista ja sen replikoinnin Microsoft Fabriciin. Tilannevedoksen jälkeen inkrementaaliset muutokset toistetaan.
Azure SQL Databasessa ja Azure SQL Managed Instancessa uudelleenkäsittely voi tapahtua tietokanta- tai taulukkotasolla.
Tietokantatason uudelleenkylvö: Tietojen jatkuva peilaus lopetetaan kaikissa tietokannan taulukoissa, joissa peilaus on otettu käyttöön, tapahtumaloki katkaistaan ja peilaus alustetaan uudelleen tietokannalle julkaisemalla uudelleen kaikkien peilattavaksi käytössä olevien taulukoiden ensimmäinen tilannevedos. Tämän jälkeen inkrementaaliset muutokset toistuvat jatkuvasti.
Pöytätason uudelleenkylvö: Tietojen jatkuva peilaus lopetetaan vain taulukoissa, jotka vaativat uudelleensiementä. Peilaus alustetaan uudelleen taulukoille, joihin muutos vaikuttaa, julkaisemalla alkuperäinen tilannevedos uudelleen. Tämän jälkeen inkrementaaliset muutokset toistuvat jatkuvasti.
Tietokantatason automaattisen uudelleenasennuksen syyt
Tietokantatason uudelleenkäsittely suojaa tietokannan kirjoituskäytettävyyttä varmistamalla, että tapahtumaloki ei kasva enimmäiskokoon. Tapahtumalokin enimmäiskoko perustuu Azure SQL Databasen tai Azure SQL Managed Instancen tietokannan palvelutason tavoitteeseen. Kankaan peilauksen käyttöön ottavan tietokannan tapahtumalokin käyttö voi jatkaa kasvuaan ja hidastaa lokin katkaisua. Kun tapahtumalokin koko saavuttaa määritetyn enimmäisrajan, tietokantaan kirjoittaminen epäonnistuu.
Peilauksesta johtuva estetty lokin katkaisu voi tapahtua useista syistä:
- Viive tietojen peilauksessa lähteestä peilattuun tietokantaan estää replikointia odottavien tapahtumien katkaisemisen tapahtumalokista.
- Replikointia odottavia pitkään jatkuvia replikoituja tapahtumia ei voi katkaista, jolloin tapahtumalokitila säilyy.
- Pysyvät virheet kirjoittaessa laskeutumisalueelle OneLakessa voivat estää replikaation.
Tämä tilanne voi johtua riittämättömistä käyttöoikeuksista. Fabric-peilaus käyttää System Assigned Managed Identityä (SAMI) tai User Assigned Managed Identityä (UAMI) kirjoittaakseen laskeutumisalueelle One Lakessa. Jos tätä ei ole konfiguroitu oikein, transaktioiden replikointi voi epäonnistua toistuvasti.
Note
User Assigned Managed Identity (UAMI) -tuki on tällä hetkellä esikatseluvaiheessa.
Jos Fabric-kapasiteetti keskeytetään ja sitä jatketaan, peilatun tietokannan tila pysyy keskeytettynä. Tämän seurauksena lähteeseen tehtyjä muutoksia ei toisteta OneLakeen. Jos haluat jatkaa peilausta, siirry peilattuun tietokantaan Fabric-portaalissa ja valitse Jatka replikointia. Peilaus jatkuu siitä, missä se keskeytettiin.
Jos Fabric-kapasiteetti pysyy keskeytettynä pitkään, peilaus ei ehkä jatku pysäytyskohdasta ja tallentaa tiedot uudelleen alusta. Tämä johtuu siitä, että peilauksen keskeyttäminen pitkäksi aikaa voi aiheuttaa lähdetietokannan tapahtumalokin käytön kasvun ja hidastaa lokin katkaisua. Kun peilausta jatketaan ja käytetty tapahtumalokin tiedostotila on lähes täynnä, tietokannan uudelleenkäsittely käynnistetään pidätetyn lokitilan vapauttamiseksi.
Pöytätason automaattisen uudelleenkäsittelyn syyt
Kun rakennemuutoksia tapahtuu lähdetaulukoissa, joissa peilaus on otettu käyttöön, Fabricin peilattujen taulukoiden rakenne ei enää vastaa lähdettä. Tämä voi johtua seuraavista ALTER TABLE lähteen Data Definition Language (DDL) T-SQL -lauseista:
- Lisää/pudota/muuta/nimeä sarake uudelleen
- Leikkaa/nimeä taulukko uudelleen
- Klusteroimattoman perusavaimen lisääminen
Uudelleensiemen käynnistyy vain niille taulukoille, joihin muutos vaikuttaa.
Diagnosoida
Jos haluat selvittää, estääkö Fabric-peilaus peilatun tietokannan lokin katkaisun, tarkista log_reuse_wait_desc järjestelmäluettelonäkymän sarakkeesta sys.databases , onko syy REPLICATION. Lisätietoja lokin uudelleenkäytön odotustyypeistä on kohdassa Tapahtumalokin katkaisua viivästyttävät tekijät. Esimerkkejä:
SELECT [name], log_reuse_wait_desc
FROM sys.databases
WHERE is_data_lake_replication_enabled = 1;
Jos kyselyssä näkyy REPLICATION lokin uudelleenkäytön odotustyyppi, Fabricin peilauksen vuoksi tapahtumaloki ei voi tyhjentää vahvistettuja tapahtumia ja jatkaa täyttämistä. Lisätietoja lokien käytöstä Azure SQL Databasessa on artikkelissa Tapahtumalokin virheiden vianmääritys Azure SQL Databasen avulla.
Seuraavan T-SQL-komentosarjan avulla voit tarkistaa lokitilan kokonaismäärän sekä nykyisen lokin käytön ja käytettävissä olevan tilan:
USE <Mirrored database name>
GO
--initialize variables
DECLARE @total_log_size bigint = 0;
DECLARE @used_log_size bigint = 0;
DECLARE @size int;
DECLARE @max_size int;
DECLARE @growth int;
--retrieve total log space based on number of log files and growth settings for the database
DECLARE sdf CURSOR
FOR
SELECT SIZE*1.0*8192/1024/1024 AS [size in MB],
max_size*1.0*8192/1024/1024 AS [max size in MB],
growth
FROM sys.database_files
WHERE TYPE = 1
OPEN sdf
FETCH NEXT FROM sdf INTO @size,
@max_size,
@growth
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @total_log_size = @total_log_size +
CASE @growth
WHEN 0 THEN @size
ELSE @max_size
END
FETCH NEXT FROM sdf INTO @size,
@max_size,
@growth
END
CLOSE sdf;
DEALLOCATE sdf;
--current log space usage
SELECT @used_log_size = used_log_space_in_bytes*1.0/1024/1024
FROM sys.dm_db_log_space_usage;
-- log space used in percent
SELECT @used_log_size AS [used log space in MB],
@total_log_size AS [total log space in MB],
@used_log_size/@total_log_size AS [used log space in percentage];
Uudelleenkäsittelyn aikana
Uudelleensiementyksen aikana peilattu tietokantakohde Microsoft Fabricissa on käytettävissä, mutta se ei saa lisämuutoksia, ennen kuin uudelleenkäsittely on valmis. Sarake reseed_state in sys.sp_help_change_feed_settings ilmaisee uudelleenkäynnistetyn tilan.
Fabric Mirroringissa SQL-lähdetietokannan tapahtumalokia valvotaan. Automaattinen nollaus käynnistyy vain, kun seuraavat kolme ehtoa täyttyvät:
- Tapahtumaloki on yli
@autoreseedthresholdprosenttia täynnä, esimerkiksi70. - Lokin uudelleenkäytön syy on
REPLICATION. - Koska
REPLICATIONlokin uudelleenkäytön odotusaika voidaan nostaa muille ominaisuuksille, kuten tapahtumareplikaatiolle tai CDC:lle, automaattinen nollaus tapahtuu vain, kunsys.databases.is_data_lake_replication_enabled= 1. Tämä arvo määritetään Fabric Mirroring -toiminnolla.
Tarkista, onko tietokantatason uudelleenkäsittely käynnistetty
Jos koko tietokanta kylvitään uudelleen, etsi seuraavat ehdot.
SQL-lähdetietokannan
reseed_statejärjestelmään tallennetun toimintosarjansys.sp_help_change_feed_settingssarake ilmaisee sen nykyisen uudelleenkorjatun tilan.-
0= Normaali. -
1= Tietokanta on aloittanut uudelleenalustuksen Fabriciin. Siirtymävaiheen tila. -
2= Tietokanta alustetaan uudelleen Fabriciin ja odottaa replikoinnin uudelleenkäynnistystä. Siirtymävaiheen tila. Kun replikointi on muodostettu, uudelleenkäynnistetty tila siirtyy .0
Lisätietoja on kohdassa sys.sp_help_change_feed_settings.
-
Kaikkien taulukoiden, jotka on otettu käyttöön peilattavaksi tietokannassa, sarakkeen arvo
7stateon .sys.sp_help_change_feed_tableKatso lisätietoja kohdasta sys.sp_help_change_feed_table.
Tarkista, onko pöytätason uudelleenkäsittely lauennut
Jos taulukossa kylvitään uudelleen, etsi sarakkeen arvo
7state.sys.sp_help_change_feed_tableKatso lisätietoja kohdasta sys.sp_help_change_feed_table.