C# - Adatbázis és tranzakciós napló mentése

Transact SQL 22. rész

forráskód letöltése
Az adatvesztés már egy kisebb adatbázis esetén is rendkívüli kárt okozhat, ezért bizonyos időközönként szükséges az adatbázisról biztonsági másolatot készítenünk. A Transact SQL erre is lehetőséget nyújt.
Lehetőségünk van az egész adatbázis, a tranzakciós napló, vagy csak bizonyos fájlok, fájlcsoportok mentésére.
Az adatbázis mentésének parancsa a BACKUP DATABASE. Az utasítás után közvetlenül meg kell adnunk az adatbázis nevét, majd a TO kulcsszó után azt az eszközt, ahová a mentés készül (ez lehet akár egy fájl is). Ha csak bizonyos fájlcsoportokat szeretnénk menteni, akkor a TO kulcsszó előtt azokat is meg kell adnunk. A WITH kulcsszó után különböző paramétereket állíthatunk be.
Ha csak a tranzakciós naplót szeretnénk menteni, akkor a BACKUP LOG utasítást kell használnunk.
A példaprogramban az SQl Server példa adatbázisát mentjük el a C:\Backup könyvtárba (backup.sql). A mentésnél megadott könyvtárnak léteznie kell, különben hibaüzenetet kapunk!
DISK | TAPE
A TO kulcsszó után használhatjuk a DISK, vagy a TAPE kulcsszót attól függően, hogy a mentés helye lemez, vagy mágnesszalag. A DISK illetve TAPE kulcsszó után egyenlőségjellel meg kell adni az elérési útvonalat és a fájl nevét. Ha relatív elérési útvonalat adunk meg, akkor az alapértelmezett backup könyvtárba ment.
BACKUP DATABASE Nortwind TO DISK = ’C:\TEMP\NWIND.DAT’
BLOCKSIZE
A fizikai blokkméret bájtban. A legtöbb esetben ennek beállítása automatikusan történik (általában 65535 bájt, 64K).
DESCRIPTION
Egy maximum 255 karakterből álló sztring, amely tetszőleges szöveget tartalmazhat.
DIFFERENTIAL
Megadja, hogy az adatbázisnak csak egy bizonyos része módosult a legutóbbi mentés óta. A „differenciális biztonsági mentés” általában kevesebb helyet igényel, mint a teljes mentés, mert csak a változásokat rögzíti.
EXPIREDATE
Megadhatunk egy dátumot, amikorra a biztonsági mentés elavul, és felülírhatóvá válik.
RETAINDAYS
Megadhatjuk, hogy a biztonsági mentés hány nap múlva válik elavulttá, és így felülírhatóvá.
PASSWORD
Megadhatunk egy jelszót, amelynek majd a visszaállításkor lesz jelentősége. Csak az tudja majd visszaállítani az adatbázist, aki ismeri a jelszót.
FORMAT
Felülírja az összes mentésben résztvevő média (fájl vagy szalag) fejlécét. A felülírás érvényteleníti a média eddigi összes bejegyzését, ezért ezt az opciót óvatosan kezeljük. A FORMAT opció magában foglalja az INIT és a SKIP kapcsolókat.
NOFORMAT
Nem írja felül a média fejlécét, és a bejegyzéseket sem, kivéve akkor, ha az INIT kapcsoló is meg van adva.
INIT
Az összes előző mentést felülírja, de a fejlécet változatlanul hagyja. Csak azokat a mentéseket tudja felülírni, amelyeknél az EXPIREDATE vagy RETAINDAYS opciókban megadott időpont (az előző mentésnél) már lejárt.
NOINIT
Az újabb mentés az előzőekhez lesz hozzáfűzve. Ezt az opciót nem kell külön megadni, mivel ez az alapértelmezett.
MEDIADESCRIPTION
Egy maximum 255 karakterből álló tetszőleges szöveget tartalmazó leírás.
MEDIANAME
A média neve maximum 128 karakteren. Ha már van előző mentés, akkor meg kell egyeznie az előző mentés nevével. Ha a név nincs megadva, vagy a SKIP opció be van kapcsolva, akkor nem végez ellenőrzést a névvel kapcsolatban.
MEDIAPASSWORD
A médiához tartozó jelszót adhatjuk meg. Ez a jelszó szükséges ahhoz, hogy az adott médián biztonsági másolatot készítsünk.
NAME
A biztonsági mentés neve, maximum 128 karakteren. Ha nincs megadva, akkor a név egy üres sztring lesz.
REWIND
Utasítja az SQL Server-t, hogy a mentés elkészülte után a szalagot tekerje vissza. Ha a NOREWIND nincs megadva, akkor ez az alapértelmezett.
NOREWIND
Nyitva hagyja a szalagot, és nem tekeri vissza. Az SQL Server mindaddig birtokolja a szalagot, amíg egy BACKUP vagy RESTORE művelet nem történik a WITH REWIND opcióval. A NOREWIND magában foglalja az UNLOAD opciót is.
SKIP
Kikapcsolja a lejárati idő és a név ellenőrzését, melyek megakadályozhatják a mentés felülírását.
NOSKIP
Utasítja az SQL Server-t, hogy ellenőrizze minden mentés lejárati idejét, mielőtt felülírná azokat.
UNLOAD
Megadja, hogy a mentés után a szalag vissza legyen tekerve, és a kazettát kiadja. Ez az opció értelemszerűen csak szalagos egységeknél használható.
NOUNLOAD
Utasítja az SQL Servert, hogy a mentés után ne adja ki a kazettát.
RESTART
Az opcióval egy előzőleg félbeszakított mentési műveletet lehet folytatni, amivel idő takarítható meg, mivel a mentést attól a ponttól folytatja, ahol abbamaradt.
STATS
A megadott időközönként kiírja, hogy éppen hány százaléknál tart a mentés. Ha nem adunk meg értéket, akkor 10%-onként jelez.
FILE
Ha fájlokat mentünk csak, akkor a fájl nevét adhatjuk meg az egyenlőségjel után. A FILE az adatbázis neve után áll, mint az alábbi példában:
BACKUP DATABASE NorthWind
   FILE = 'MyNwind_data_1',
   FILE = 'MyNwind_data_2', 
   TO ...
FILEGROUP
Hasonló a FILE-hoz, de itt fájlcsoportokat adhatunk meg. Szintén az adatbázis neve után vannak felsorolva.
LOG
Csak a tranzakciós napló mentése történik meg.
NO_LOG | TRUNATE_ONLY
A két opció megegyezik. Hatásuk az, hogy levágják a tranzakciós napló nem aktív részeit, és így helyet szabadítanak fel.
NO_TRUNCATE
Engedélyezi a tranzakciós napló mentését abban az esetben is, ha az adatbázis sérült.

Transact SQL cikksorozat

Transact SQL Referencia - Transact SQL 1. rész
Transact SQL további belső változói - Transact SQL 2. rész
Dátumkezelés a Transact SQL-ben - Transact SQL 3. rész
Sztringkezelés a Transact SQL-ben - Transact SQL 4. rész
Folyamatvezérlés eszközei a Transact SQL-ben - Transact SQL 5. rész
Összesítő függvények - Transact SQL 6. rész
Adatbázisok létrehozása, törlése - Transact SQL 7. rész
Adatbázis módosítás lehetőségei - Transact SQL 8. rész
Táblák létrehozása - Transact SQL 9. rész
Táblák módosítása, törlése - Transact SQL 10. rész
Rendszer funkciók - Transact SQL 11. rész
Adatkonvertálási lehetőségek - Transact SQL 12. rész
Tárolt eljárás létrehozása - TransactSQL 13. rész
Triggerek kezelése - Transact SQL 14. rész
Indexek létrehozása - Transact SQL 15. rész
Függvények definiálása - Transact SQL 16. rész
Függvények felüldefiniálása és törlése - Transact SQL 17. rész
Szabályok létrehozása - Transact SQL 18. rész
Alapértelmezett értékek megadása - Transact SQL 19. rész
Nézet táblák létrehozása - Transact SQL 20. rész
Nézettáblák módosítása - Transact SQL 21. rész

Adatbázis és tranzakciós napló mentése - Transact SQL 22. rész

Elmentett adatbázis és tranzakciós napló visszaállítása - Transact SQL 23. rész
Full-Text Catalog létrehozása, használata - Transact SQL 24. rész
Full-Text Catalog további lehetőségei - Transact SQL 25. rész
Tranzakció-kezelés az MS SQL-ben - Transact SQL 26. rész
Tranzakció-kezelés az MS SQL-ben - Transact SQL 27. rész
SET parancsok - Transact SQL 28. rész