A replikáció és az index rebuild

A replikáció egyszerű módja az adatbázisunk vagy annak egy részének a többszörözésére. A replikációról kell tudni, hogy a tranzakciós naplót (.ldf fájl) használja a replikálásra.

Nagy vonalakban a működése:

  • Sorrendben felolvassa a naplóból sql parancsok formájában a változásokat
  • Sorrendben eltárolja a distribution adatbázisban a felolvasott parancsokat
  • Sorrendben, batch-ben lefuttatja a parancsokat a replikán

Ha vannak nagy tábláink, és hát miért ne lennének, akkor azokat karban is kell tartani. Egyik ilyen karbantartási művelet az index rebuild. Előbb-utóbb elkerülhetetlen a használata (lesz olyan eset, amikor a reorganize már semmit sem ér). Tehát használjuk az index rebuild-et. Ha ezt még megfejeljük azzal, hogy az adatbázisunk FULL recovery modellben van, akkor elő is állt minden, hogy a replikációnk lehalhasson.

Tehát ami kell:

  • Replikáció
  • Index rebuild egy kellően nagy táblán (a lényeg, hogy tetemes mennyiségű logot generáljon)
  • FULL recovery modell

A rebuild legvégén történik valami – amit nem fejtettem meg, mert nem volt kedvem 50 millió sornyi tranzakciós logot átnézni -, ami miatt lehal a replikáció. Viszont a megoldás sokkal egyszerűbb, mint a probléma. Szerencsére az index rebuild a bulk műveletek közé tartozik, ezért, ha az adatbázist átállítjuk bulk-logged modellbe a rebuild idejére, akkor ez a probléma elkerülhető. Hátránya annyi, hogy amíg bulk-logged modellben vagyunk, addig nem tudunk időpontra visszaállni, mert ilyenkor lazábban naplóz az SQL Server. Ebben az időszakban célszerű sűrűbben készíteni tranzakciós log mentést, hogy kevésbé fájjon, ha esetleg baj lesz.

Hozzászólás