A biztonsági mentés létrehozásához és visszaállításához szükséges lépések
Az SQLskills egy új kezdeményezést indított a nyilvántartásoknak az alapvető ismeretekkel való közzétételhez, SQL101-nek neveztük. Olyan dolgokat fogunk írni, amiket gyakran látunk, helytelenül, helytelenül használt technológiákról és sok olyan félreértésről, amelyek súlyos problémákhoz vezetnek. Ha szeretné megtalálni a sorozatban szereplő összes bejegyzést, ellenőrizze az SQLskills.com/help/SQL101 linket (angolul).
Az egyik kérdésem, amelyet folyamatosan megkérdezek, az, hogy miért tart tovább egy adatbázist egy teljes mentésről, mint egy teljes mentés létrehozása. A válasz az, hogy szinte mindig a helyreállítási folyamat több munkát igényel.
A teljes biztonsági mentés létrehozása a következő fő lépéseket tartalmazza:
- Hozzon létre egy ellenőrzési pontot.
- Az adatfájlokból felhasznált adatok olvasása (technikailag, az összes elosztott terjedelem olvasása, függetlenül attól, hogy hány 8-annyi tényt használ).
- A tranzakciós napló leolvasása a legrégebbi, nem teljesített tranzakció kezdetétől a kezdeti ellenőrző ponttól a második szakasz befejezéséig. Szükséges, hogy az adatbázist visszaállíthassák egy jóváhagyott állapotba a biztonsági mentés időszakához tartozó időponthoz (részletes magyarázatot lásd ebben a cikkben).
- (Opcionálisan ellenőrizheti az összes oldalra vonatkozó ellenőrzőösszeget, opcionálisan biztonsági másolatot készíthet és adott esetben titkosítja a biztonsági másolatot).
A teljes biztonsági mentés helyreállítása a következő fő lépéseket tartalmazza:
A 3. szakasz gyakran a leghosszabb állapotú helyreállítás, és arányos a tranzakciós napló méretével. Ezt a folyamatot külön szakaszban hajtják végre, ahelyett, hogy az 1-2. Lépéssel párhuzamosan készültek volna, és alapos tanulmányozásra, lásd a legutóbbi blog bejegyzést a Bob Ward-ról.
Az 5. lépcső lehet a leghosszabb szakasz a helyreállítási folyamatban, ha hosszú, nem várt tranzakciók történtek a biztonsági mentés során. És még hosszabb is lehet, ha a tranzakciós naplóban nagyszámú virtuális naplófájl (ezer) van, mert nagymértékben lassítja a le nem kötött tranzakciók visszaszorítására szolgáló mechanizmust.
Az alábbiakban felsorolhatja azokat a dolgokat, amelyeket a teljes mentés gyors helyreállítása érdekében végezhet:
- Győződjön meg róla, hogy az azonnali fájl-inicializálás engedélyezett egy olyan SQL Server példány esetében, amely a visszaállítási műveletet végzi el annak elkerülése érdekében, hogy elpazaroljon időt az összes olyan adatfájl feltöltéséhez, melyeket nullákkal kell létrehozni. Ez óriási állásidőt takarít meg a nagyon nagy adatfájlokhoz.
- Ha lehetséges, helyreállítsa a meglévő adatbázist - ne törölje a meglévő fájlokat. Ezzel elkerülhető, hogy a fájlok teljes mennyiségét, különösen a tranzakciós naplófájlokat létrehozzuk és potenciálisan töltsük nullával. Legyen nagyon óvatos, ha ezt az elemet használja, mert a meglévő adatbázis reménytelenül megsemmisül, amint a visszaállítási folyamat felülírja.
- Fontolja meg a biztonsági tömörítés használatát, ez felgyorsíthatja a műveleteket, létrehozhatja és visszaállíthatja a biztonsági mentéseket, valamint megmentheti a lemezterületet és a tárolási költségeket.
- Fontolja meg, hogy több biztonsági másolatot használjon, mindegyiket külön köteten. Az SQL Server felismeri ezt a helyzetet, és a visszaállítás során létrehozza a biztonsági másolatot és az olvasást a fájlbejegyzések párhuzamos írásához (egy köcsénként egy tétel), felgyorsítva az összes folyamatot. Ha több adatbázissal rendelkezik, akkor az I / O folyamatok hasonló párhuzamot fognak végezni, ami még gyorsabb.
- Próbálj meg elkerülni a hosszú tranzakciókat, mivel hosszú időbe telik a visszaszorítás.
- Kezelje a tranzakciós naplót annak elkerülése érdekében, hogy túl sok virtuális naplófájl legyen, így ha vannak olyan tranzakciók, amelyek visszagörgetést igényelnek, a visszaállítás a lehető leggyorsabban lehetséges. Lásd ezt a blog bejegyzést (angolul) részletes magyarázatért.
Remélem ez hasznos volt!