atsarginės SQL Server duomenų bazė su mūsų išsamiu 2025 m. vadovu. Žingsnis po žingsnio instrukcijos ir geriausios praktikos pavyzdžiai visiems įgūdžių lygiams.
1. Įvadas į SQL Server atsarginės
1.1 Kas yra SQL Server Atsarginė kopija?
SQL Server Atsarginė kopija – tai duomenų bazės failų kopijų kūrimo procesas, siekiant apsaugoti duomenis nuo praradimo. Atsarginė kopija fiksuoja duomenų bazės būseną konkrečiu laiko momentu, todėl galite atkurti duomenis, jei įvyktų aparatinės įrangos gedimai, žmogiškosios klaidos ar nelaimės.
SQL Server pagal numatytuosius nustatymus atsargines kopijas saugo .bak failuose, kuriuose yra visi duomenų bazės objektai, įskaitant lenteles, saugomas procedūras, rodinius, indeksus ir operacijų žurnalus.
1.2 Kodėl SQL Server Atsarginė kopija yra labai svarbi
Duomenų bazių atsarginės kopijos yra paskutinė gynybos linija nuo duomenų praradimo. Be tinkamų atsarginių kopijų jūsų organizacija rizikuoja:
- Nuolatinis duomenų praradimas dėl aparatinės įrangos gedimų ar korupcijos
- Prailgintas prastovos laikas atkūrimo bandymų metu
- Verslo sutrikimas ir pajamų praradimas
- Atitikties pažeidimai jei duomenų atkurti nepavyksta
- Žala reputacijai dėl paslaugų teikimo sutrikimų
reguliarus SQL Server Atsarginės kopijos užtikrina verslo tęstinumą ir atitinka duomenų apsaugos norminius reikalavimus.
1.3 Dažniausi duomenų praradimo scenarijai
Supratimas, kada prarandami duomenys, padeda sukurti veiksmingą atsarginių kopijų kūrimo strategiją:
- Aparatinės įrangos gedimai: Disko gedimai, serverio gedimai arba saugojimo sistemos gedimai
- Žmogiškosios klaidos: Atsitiktiniai ištrynimai, neteisingi atnaujinimai arba prarastos lentelės
- Programinės įrangos problemos: Programų klaidos, sugadinti atnaujinimai arba sistemos gedimai
- Saugumo pažeidimai: Išpirkos reikalaujančių programų atakos, kenkėjiški ištrynimai arba neteisėta prieiga
- Stichinės nelaimės: Duomenų centrus veikiantys gaisrai, potvyniai ar elektros energijos tiekimo sutrikimai
2. Supratimas SQL Server Atsarginių kopijų tipai
SQL Server palaiko kelis atsarginių kopijų tipus, kurių kiekvienas atitinka skirtingus atkūrimo poreikius ir saugojimo reikalavimus.
2.1 Pilnas atsarginis kopijavimas
Pilna atsarginė kopija sukuria pilną visos duomenų bazės kopiją, įskaitant visus duomenų failus ir dalį operacijų žurnalo, reikalingo atkūrimui.
2.1.1 Kada naudoti pilną atsarginę kopiją
Pilnos atsarginės kopijos idealiai tinka:
- Kitų atsarginių kopijų tipų bazinio lygio nustatymas
- Mažos ir vidutinės duomenų bazės, kurioms priimtinas atsarginių kopijų kūrimo laikas
- Savaitiniai arba mėnesiniai atsarginių kopijų planavimo planai
- Duomenų bazės su retais pakeitimais
2.1.2 Pilno atsarginio kopijavimo privalumai ir apribojimai
Privalumai:
- Paprasčiausias atkūrimo procesas – viename faile yra viskas
- Autonominis ir nepriklausomas nuo kitų atsarginių kopijų
- Greičiausias atkūrimo laikas visiškai atkuriant duomenų bazę
Apribojimai:
- Reikia daug vietos saugykloje
- Ilgesnis didelių duomenų bazių atsarginių kopijų kūrimo laikas
- Didesnis išteklių sunaudojimas atsarginių kopijų kūrimo metu
2.2 Diferencialinė atsarginė kopija
Diferencinė atsarginė kopija fiksuoja tik duomenų pakeitimus nuo paskutinės pilnos atsarginės kopijos, taip sumažinant atsarginių kopijų kūrimo laiką ir saugojimo reikalavimus.
2.2.1 Kaip veikia diferencialinis atsarginis kopijavimas
Diferencialinės atsarginės kopijos seka pakeitimus pagal pakeistą apimtį. Atkuriant duomenis, SQL Server pirmiausia pritaiko paskutinę pilną atsarginę kopiją, tada pritaiko most neseniai atlikta diferencinė atsarginė kopija.
2.2.2 Pilnas ir diferencinis atsarginių kopijų kūrimas
| Aspektas | Visas atsarginis kopijavimas | Diferencinis atsarginis kopijavimas |
|---|---|---|
| Dydis | Pilna duomenų bazė | Tik pakeitimai nuo paskutinės pilnos atsarginės kopijos |
| Atsarginis laikas | Ilgiausias | Greičiau nei pilnai |
| Atkūrimo procesas | Vieno failo atkūrimas | Reikalingas pilnas + diferencialas |
| Reikalinga saugykla | Most erdvė | Iš pradžių mažiau vietos, laikui bėgant ji didėja |
2.3 Operacijų žurnalo atsarginė kopija
Operacijų žurnalų atsarginės kopijos fiksuoja visas operacijas nuo paskutinės žurnalų atsarginės kopijos, todėl galima atkurti duomenis konkrečiu momentu.
2.3.1 Operacijų žurnalų supratimas
Operacijų žurnale įrašomas kiekvienas jūsų duomenų bazės pakeitimas. Žurnalo atsarginės kopijos sutrumpina neaktyviąją žurnalo dalį, taip neleisdamos jai augti neribotą laiką ir užpildyti disko.
2.3.2 Atkūrimas konkrečiu momentu
Operacijų žurnalų atsarginės kopijos leidžia atkurti duomenų bazę bet kuriuo konkrečiu žurnalo atsarginės kopijos momentu. Tai labai svarbu norint atkurti duomenis po atsitiktinio pakeitimo ar ištrynimo.
Norint atlikti atkūrimą tam tikru momentu, jums reikia:
- Paskutinė pilna atsarginė kopija
- Most neseniai atlikta diferencinė atsarginė kopija (neprivaloma)
- Visos operacijų žurnalo atsarginės kopijos iš pilnos/diferencinės atsarginės kopijos į jūsų targauti laiko
2.4 Uodegos žurnalo atsarginė kopija
Duomenų žurnalų atsarginės kopijos fiksuoja dar nesukurtus žurnalų įrašus, taip išvengiant duomenų praradimo ir išsaugant nepažeistą žurnalų grandinę. Prieš atkuriant SQL Server Norėdami atkurti duomenų bazę iki naujausio jos laiko momento, turite sukurti jos operacijų žurnalo pabaigos atsarginę kopiją. Operacijų žurnalo pabaigos atsarginė kopija yra paskutinė svarbi duomenų bazės atkūrimo plano atsarginė kopija.

Pastaba: Ne visiems atkūrimo scenarijams reikalinga duomenų bazės pabaigos žurnalo atsarginė kopija. Jos nereikia, jei atkūrimo taškas yra ankstesnėje žurnalo atsarginėje kopijoje. Duomenų bazės pabaigos žurnalo atsarginė kopija taip pat nereikalinga, jei perkeliate arba keičiate (perrašote) duomenų bazę ir nereikia jos atkurti į laiką po jos paleidimo.ost neseniai atlikta atsarginė kopija.
2.4.1 Kada būtinos uodegos žurnalo atsarginės kopijos
Toliau pateikiami scenarijai, kada turėtumėte sukurti atsarginę kopiją duomenų bazėje:
Duomenų bazės atkūrimas internetu: Jei duomenų bazė yra prijungta ir planuojate atlikti duomenų bazės atkūrimo operaciją, pradėkite nuo žurnalo pabaigos atsarginės kopijos kūrimo. Norėdami išvengti klaidos internetinėje duomenų bazėje, kurdami atsarginę kopiją, turite naudoti BACKUP Transact-SQL sakinio parinktį WITH NORECOVERY. SQL Server duomenų bazė.
Neprisijungus pasiekiamos duomenų bazės atkūrimas: Jei duomenų bazė neprisijungusi ir nepavyksta pasiektitarir jums reikia atkurti duomenų bazę, pirmiausia sukurkite žurnalo pabaigos atsarginę kopiją. Kadangi šiuo metu negali būti vykdomos jokios operacijos, parinkties WITH NORECOVERY naudojimas yra neprivalomas. Šiuo atveju NORECOVERY iš esmės yra tas pats, kas tik kopijuojama operacijų žurnalo atsarginė kopija.
Sugadintos duomenų bazės atsarginė kopija: Jei duomenų bazė pažeista, pabandykite sukurti paskutinio žurnalo atsarginę kopiją naudodami BACKUP sakinio parinktį WITH CONTINUE_AFTER_ERROR. Sugadintoje duomenų bazėje paskutinio žurnalo atsarginės kopijos sukūrimas įmanomas tik tuo atveju, jei žurnalų failai nepažeisti, duomenų bazės būsena palaiko paskutinio žurnalo atsargines kopijas ir joje nėra jokių masiškai registruojamų pakeitimų. Jei paskutinio žurnalo atsarginės kopijos sukurti nepavyksta, visos operacijos, atliktos po naujausios MS versijos, bus atšauktos. SQL Server atsarginės duomenų bazės yra lost.
2.4.2 Pagrindinės uodegos žurnalo atsarginių kopijų parinktys
SU NORECOVERY: Naudokite SU NORECOVERY, jei kuriate internetinės duomenų bazės žurnalo dalies, kurią vėliau planuojate atkurti, atsarginę kopiją. NORECOVERY atjungia duomenų bazę nuo interneto. Taip pat galite kurti atsargines kopijas SQL Server Neprisijungusios duomenų bazės uodegos žurnalas. Jei norite palikti duomenų bazę neprisijungusią, naudokite WITH NORECOVERY. Atminkite, kad žurnalas bus sutrumpintas, nebent nurodysite parinktį COPY_ONLY arba NO_TRUNCATE.
SU TĘSINYS_PO_KLAIDOS: Naudokite CONTINUE_AFTER_ERROR tik tuo atveju, jei kuriate pažeistos duomenų bazės žurnalo galo atsarginę kopiją. Kuriant pažeistos duomenų bazės žurnalo galo atsarginę kopiją, kai kurie metaduomenys, paprastai fiksuojami žurnalų atsarginėse kopijose, gali būti nepasiekiami.
2.5 Tik kopijavimui skirtas atsarginis kopijavimas
Tik kopijavimui skirtos atsarginės kopijos sukuria nepriklausomą atsarginę kopiją, nepaveikdamos įprastos atsarginių kopijų kūrimo sekos. Jos netrikdo diferencinių atsarginių kopijų kūrimo grandinių ar operacijų žurnalo tęstinumo.
Naudokite tik kopijavimui skirtas atsargines kopijas:
- Testavimo arba kūrimo duomenų bazės kopijų kūrimas
- Ad-hoc atsarginės kopijos, nepaveikiančios suplanuotų atsarginių kopijų
- Atsarginė kopija prieš didelius pakeitimus ar bandymus
2.6 Failų ir failų grupių atsarginės kopijos
Failų ir failų grupių atsarginės kopijos targauti konkrečius duomenų bazės failus arba failų grupes, o ne visą duomenų bazę. Šis metodas gerai veikia labai didelėms duomenų bazėms, kuriose visko atsarginių kopijų kūrimas užtrunka per ilgai.
Privalumai:
- Greitesnės didelių duomenų bazių atsarginių kopijų kūrimo operacijos
- Lygiagretus kelių failų grupių atsarginių kopijų kūrimas
- Granuliuotos atkūrimo parinktys
- Optimizuoti atsarginių kopijų kūrimo tvarkaraščiai tik skaitymui skirtoms failų grupėms
2.7 Dalinis atsarginis kopijavimas
Dalinės atsarginės kopijos apima visus duomenis iš pagrindinės failų grupės ir visų skaitymui/rašymui skirtų failų grupių, išskyrus tik skaitymui skirtas failų grupes. Tai sumažina duomenų bazių, kuriose statiniai istoriniai duomenys saugomi tik skaitymui skirtose failų grupėse, atsarginių kopijų dydį ir laiką.
3. SQL Server Atkūrimo modeliai
SQL Server Atkūrimo modeliai nustato, kokie atsarginių kopijų tipai yra prieinami ir kaip tvarkomi operacijų žurnalai.
3.1 Paprastas atkūrimo modelis
3.1.1 Charakteristikos ir naudojimo atvejai
Paprastas atkūrimas automatiškai sutrumpina operacijų žurnalą po kiekvieno kontrolinio taško, atlaisvindamas vietos nereikalaujant žurnalų atsarginių kopijų.
Tinkamumas/panaudojimas:
- Kūrimo ir testavimo duomenų bazės
- Duomenų bazės, kuriose duomenų praradimas tarp atsarginių kopijų yra priimtinas
- Duomenų saugyklos su ETL procesais, kuriuos galima pakartotinai vykdyti
- Tik skaitymui arba ataskaitų teikimo duomenų bazės
3.1.2 Galimos atsarginių kopijų kūrimo parinktys
Paprastas atkūrimas palaiko:
- Pilnos atsarginės kopijos
- Diferencialinės atsarginės kopijos
- Failų ir failų grupių atsarginės kopijos
- Tik kopijavimui skirtos atsarginės kopijos
Sandorių žurnalo atsarginės kopijos yra nėra paprastame atkūrimo modelyje.
3.2 Visiško atsigavimo modelis
3.2.1 Savybės ir privalumai
Visiško atkūrimo funkcija registruoja visas operacijas ir išsaugo žurnalo įrašus, kol sukuriate jų atsargines kopijas. Tai leidžia visiškai atkurti duomenis bet kuriuo metu iš operacijų žurnalo atsarginės kopijos.
Pagrindiniai privalumai:
- Minimalus duomenų praradimo potencialas
- Galimybė atkurti tam tikru momentu
- Palaiko žurnalų siuntimą ir duomenų bazės veidrodinį atvaizdavimą
- Maksimalus atsigavimo lankstumas
3.2.2 Operacijų žurnalo valdymas
Visiško atkūrimo metu turite reguliariai kurti operacijų žurnalo atsargines kopijas, kad:
- Neleiskite operacijų žurnalui užpildyti vietos diske
- Palaikykite nuolatinę atsarginių kopijų grandinę
- Įgalinti atkūrimą tam tikru laiku
- Kontroliuokite žurnalo failų augimą
Įprastas atsarginių kopijų kūrimo grafikas: pilnos atsarginės kopijos kas savaitę, diferencinės atsarginės kopijos kasdien, žurnalų atsarginės kopijos kas 15–30 minučių.
3.3 Masinio registravimo atkūrimo modelis
3.3.1 Kada naudoti masinį registravimą
Masinio žurnalavimo atkūrimo funkcija minimaliai registruoja masines operacijas, pvz., MASINĮ ĮTERPIMĄ, SELECT INTO ir indekso atkūrimą, tuo pačiu išlaikant visapusišką įprastų operacijų registravimą.
Naudokite masinio registravimo atkūrimą, kai:
- Didelių masinio importo operacijų atlikimas
- Indeksų atkūrimas didelėse lentelėse
- Operacijų, kurioms reikalingas minimalus registravimas, vykdymas
- Poreikis sumažinti operacijų žurnalo dydį atliekant konkrečias operacijas
3.3.2 Apribojimai ir svarstymai
Svarbūs apribojimai:
- Atkūrimas konkrečiu momentu negalimas atliekant masines operacijas
- Žurnalų atsarginės kopijos yra didesnės, kai atliekamos masinės operacijos
- Prireikus reikia perjungti tarp pilno ir masinio registravimo
3.4 Tinkamo atkūrimo modelio pasirinkimas
Pasirinkite atkūrimo modelį pagal verslo poreikius:
| Atkūrimo modelis | Duomenų praradimo rizika | Atkūrimo taškas | geriausias |
|---|---|---|---|
| paprastas | Pakeitimai nuo paskutinės atsarginės kopijos | Ne | Kūrimo / bandymo, priimtinas duomenų praradimas |
| Pilnas | Minimalus (paprastai minutės) | Taip | Gamybos duomenų bazės, svarbūs duomenys |
| Masinis registravimas | Pakeitimai nuo paskutinės žurnalo atsarginės kopijos | Ribotas atliekant didmenines operacijas | Laikasrary naudoti birių operacijų metu |
4. Atsarginė SQL Server Duomenų bazė naudojant SSMS
4.1 Būtinos sąlygos ir pasiruošimas
Prieš kurdami atsarginę kopiją SQL Server duomenų bazėje, užtikrinkite:
- Turite atitinkamas teises (db_owner arba BACKUP DATABASE leidimą)
- Pakankamai vietos diske atsarginės kopijos failui
- SQL Server Įdiegta valdymo studija (SSMS)
- Tinklo keliai pasiekiami, jei kuriamos atsarginės kopijos tinklo vietose
4.2 Žingsnis po žingsnio: visiškas atsarginių kopijų kūrimas naudojant SSMS
Atlikite šiuos veiksmus, kad sukurtumėte pilną savo duomenų atsarginę kopiją SQL Server duomenų bazėje naudojant SSMS.
4.2.1 Atidarymas SQL Server Vadybos studija
- Pradėti SQL Server Vadybos studija
- Įveskite savo serverio pavadinimą lauke Serverio pavadinimas laukas
- Pasirinkite autentifikavimo metodą
- Spauskite prisijungti
4.2.2 Duomenų bazės ir atsarginių kopijų kūrimo parinkčių pasirinkimas
- In Objektų naršyklė, išplėskite Duomenų bazės mazgas
- Dešiniuoju pelės mygtuku spustelėkite duomenų bazę, kurios atsarginę kopiją norite sukurti
- pasirinkti Užduotys -> Atgal Aukštyn
- Lauke Atsarginė duomenų bazė lange patikrinkite duomenų bazės pavadinimą
- pasirinkti Pilnas kaip Atsarginės kopijos tipas
4.2.3 Atsarginės kopijos paskirties vietos konfigūravimas
- Pagal Šalys, Spustelėkite pašalinti išvalyti numatytąjį kelią (jei reikia)
- Spauskite papildyti nurodyti naują atsarginės kopijos vietą
- Įveskite failo kelią ir pavadinimą naudodami .kepk pratęsimas
- Spauskite OK patvirtinti kelionės tikslą
4.2.4 Advanced Backup Nustatymai
- Spauskite Medijos parinktys kairėje skydelyje
- Pasirinkite atsarginės kopijos parinktis:
- Perrašyti visas esamas atsarginių kopijų rinkinius – Pakeičia esamas atsargines kopijas
- Pridėti prie esamo atsarginių kopijų rinkinio – Pridedama prie esamo atsarginės kopijos failo
- Spauskite Atsarginės kopijos parinktys kairėje skydelyje
- Konfigūruokite pasirenkamus nustatymus:
- Suspausti atsarginę kopiją – Sumažina atsarginės kopijos failo dydį
- Šifruoti atsarginę kopiją – Apsaugo jautrius duomenis
- Baigę patikrinkite atsarginę kopiją – Tikrina atsarginės kopijos vientisumą
4.2.5 Atsarginės kopijos vykdymas
- Peržiūrėkite visus nustatymus, esančius Atsarginė duomenų bazė langas
- Spauskite OK į staratsarginės kopijos kūrimo procesas
- Palaukite, kol bus baigta atsarginė kopija
- Baigus atsarginę kopiją, pasirodo pranešimas apie sėkmę
- Spauskite OK , kad uždarytumėte patvirtinimo dialogo langą
4.3 Diferencialinės atsarginės kopijos kūrimas naudojant SSMS
Norėdami sukurti diferencinę atsarginę kopiją, atlikite tuos pačius veiksmus kaip ir kurdami pilną atsarginę kopiją, bet pasirinkite Diferencialas kaip atsarginės kopijos tipą 4.2.2 veiksme. Atminkite, kad diferencinėms atsarginėms kopijoms reikalinga ankstesnė visa atsarginė kopija kaip pradinė.
4.4 Operacijų žurnalo atsarginės kopijos kūrimas naudojant SSMS
Operacijų žurnalų atsarginės kopijos galimos tik toms duomenų bazėms, kurios naudoja visiško arba masinio žurnalavimo atkūrimo modelius.
- Dešiniuoju pelės mygtuku spustelėkite duomenų bazę Objektų naršyklė
- pasirinkti Užduotys -> Atgal Aukštyn
- Pasirinkti Sandorių žurnalas kaip atsarginės kopijos tipas
- Konfigūruokite paskirties vietą ir parinktis pagal poreikį
- Spauskite OK sukurti žurnalo atsarginę kopiją
4.5 Tik kopijavimui skirtos atsarginės kopijos kūrimas naudojant SSMS
Tik kopijavimui skirtos atsarginės kopijos netrukdo įprastai atsarginių kopijų kūrimo sekai.
- Atlikite veiksmus, kad sukurtumėte visą atsarginę kopiją
- Lauke Atsarginės kopijos parinktys puslapis
- Patikrink Tik kopijavimui skirta atsarginė kopija pasirinkimas
- Įprastai užbaikite atsarginės kopijos kūrimo procesą
5. Atsarginė SQL Server Duomenų bazė naudojant T-SQL
5.1 Pagrindinė atsarginių kopijų duomenų bazės sintaksė
T-SQL BACKUP DATABASE komanda suteikia programinį valdymą SQL Server atsargines kopijas.
BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;
5.2 Pilnos atsarginės T-SQL komandos
5.2.1 Paprastas pilno atsarginio kopijavimo scenarijus
Sukurkite pagrindinę pilną atsarginę kopiją su minimaliomis parinktimis:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO
5.2.2 Pilnas atsarginis kopijavimas su parinktimis
Pridėkite aprašomąją informaciją ir formatavimo parinktis:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH FORMAT,
INIT,
NAME = 'AdventureWorks-Full Database Backup',
DESCRIPTION = 'Full backup of AdventureWorks database',
STATS = 10
GO
Parinkčių paaiškinimas:
- FORMATAS – Sukuria naują atsarginių kopijų rinkinį
- INIT – Perrašo esamą atsarginės kopijos failą
- VARDAS – Priskiria atsarginių kopijų rinkinio pavadinimą
- APRAŠYMAS – Pridedamas aprašomasis tekstas
- STATISTIKA – Rodo pažangą kas 10%
5.3 Diferencinio atsarginio kopijavimo T-SQL komandos
Diferencialinės atsarginės kopijos naudoja DIFERENCIAL parinktį:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
INIT,
NAME = 'AdventureWorks-Differential Backup',
STATS = 10
GO
5.4 Operacijų žurnalo atsarginių kopijų kūrimo T-SQL komandos
Naudokite BACKUP LOG operacijų žurnalo atsarginėms kopijoms:
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
NAME = 'AdventureWorks-Transaction Log Backup',
STATS = 10
GO
5.5 Išplėstinės T-SQL atsarginių kopijų kūrimo parinktys
5.5.1 Atsarginių kopijų kūrimas į kelis failus
Paskirstykite atsarginę kopiją keliuose failuose, kad našumas būtų greitesnis:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_1.bak',
DISK = 'D:\Backups\AdventureWorks_2.bak',
DISK = 'E:\Backups\AdventureWorks_3.bak'
WITH FORMAT, INIT
GO
5.5.2 Atsarginių kopijų kūrimas naudojant glaudinimą
Sumažinkite atsarginės kopijos failo dydį ir tinklo pralaidumą:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
INIT,
STATS = 10
GO
5.5.3 Atsarginė kopija su šifravimu
Apsaugokite jautrius duomenis naudodami šifravimą:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
),
STATS = 10
GO
5.5.4 Atsarginė kopija su slaptažodžio apsauga
Pridėti slaptažodžio apsaugą (nebenaudojama, vietoj jos naudokite šifravimą):
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
INIT
GO
5.5.5 Veidrodinės atsarginės kopijos
Kurkite vienalaikes kopijas skirtingose vietose:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO
5.6 T-SQL atsarginių kopijų pavyzdžiai ir scenarijai
Pilnas atsarginės kopijos kūrimo scenarijus su klaidų apdorojimu:
DECLARE @BackupPath NVARCHAR(500);
DECLARE @DatabaseName NVARCHAR(128) = 'AdventureWorks';
DECLARE @BackupDate NVARCHAR(20);
SET @BackupDate = CONVERT(NVARCHAR(20), GETDATE(), 112);
SET @BackupPath = 'C:\Backups\' + @DatabaseName + '_' + @BackupDate + '.bak';
BEGIN TRY
BACKUP DATABASE @DatabaseName
TO DISK = @BackupPath
WITH COMPRESSION,
INIT,
NAME = @DatabaseName + '-Full Backup',
STATS = 10;
PRINT 'Backup completed successfully: ' + @BackupPath;
END TRY
BEGIN CATCH
PRINT 'Backup failed: ' + ERROR_MESSAGE();
END CATCH
GO
6. Atsarginė SQL Server Duomenų bazė naudojant „PowerShell“
6.1 „PowerShell“ atsarginių kopijų kūrimo komandletai
SQL Server „PowerShell“ modulis teikia cmdlet atsarginių kopijų kūrimo automatizavimui:
- Atsarginė kopija – „SQLDatabase“ – Sukuria duomenų bazės atsargines kopijas
- Atkurti SQL duomenų bazę – Atkuria duomenų bazės atsargines kopijas
- Get-SqlDatabase – Gauna informaciją iš duomenų bazės
Importuoti SQL Server modulis:
Import-Module SqlServer
6.2 Atsarginių kopijų scenarijų kūrimas naudojant „PowerShell“
Pagrindinė „PowerShell“ atsarginės kopijos kūrimo komanda:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks.bak" `
-BackupAction Database `
-CompressionOption On
Diferencialinės atsarginės kopijos pavyzdys:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
-BackupAction Database `
-Incremental
Operacijų žurnalo atsarginė kopija:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Log.trn" `
-BackupAction Log
6.3 Atsarginių kopijų automatizavimas naudojant „PowerShell“
Sukurkite automatinį atsarginių kopijų kūrimo scenarijų kelioms duomenų bazėms:
# Configuration
$ServerInstance = "localhost"
$BackupPath = "C:\Backups"
$Databases = @("AdventureWorks", "TestDB", "ProductionDB")
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
# Create backup directory if not exists
if (-not (Test-Path $BackupPath)) {
New-Item -ItemType Directory -Path $BackupPath
}
# Backup each database
foreach ($Database in $Databases) {
$BackupFile = Join-Path $BackupPath "$Database`_$Timestamp.bak"
try {
Backup-SqlDatabase -ServerInstance $ServerInstance `
-Database $Database `
-BackupFile $BackupFile `
-BackupAction Database `
-CompressionOption On
Write-Host "Successfully backed up $Database to $BackupFile" -ForegroundColor Green
}
catch {
Write-Host "Failed to backup $Database : $_" -ForegroundColor Red
}
}
7. Atsarginė SQL Server Duomenų bazė naudojant komandinę eilutę
SQL Server teikia komandinės eilutės įrankius, leidžiančius kurti atsargines kopijas SQL Server duomenų bazę nenaudojant SSMS ar grafinių sąsajų. Šie įrankiai yra būtini automatizavimo, scenarijų rašymo ir nuotolinio administravimo scenarijams.
7.1 Naudokite SQLCMD atsarginių kopijų duomenų bazę
SQLCMD yra moderni komandinės eilutės programa, skirta SQL Server kuris pakeitė OSQL. Jis suteikia patobulintas funkcijas ir yra rekomenduojamas įrankis T-SQL komandoms vykdyti iš komandinės eilutės.
7.1.1 Pagrindinė SQLCMD sintaksė
sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: Nurodo SQL Server egzemplioriaus pavadinimas
- -d: Nurodo duomenų bazės pavadinimą
- -K: Vykdo užklausą ir išeina
- -IR: Naudoja „Windows“ autentifikavimą
- -U: Nurodo SQL Server prisijungimo vartotojo vardas
- -P: Nurodo slaptažodį SQL Server Vartotoją
7.1.2 Atsarginės kopijos kūrimas naudojant SQLCMD
Norėdami sukurti atsarginę kopiją SQL Server Naudodami SQLCMD, atlikite šiuos veiksmus:
- Atviras Komandinė eilutė or PowerShell "
- Eikite į SQL Server įrankių katalogas (paprastai pridedamas prie PATH diegimo metu)
- Vykdykite SQLCMD atsarginės kopijos duomenų bazės komandą su atitinkamais parametrais
- Patikrinkite, ar atsarginės kopijos failas buvo sėkmingai sukurtas
Pilnos atsarginės kopijos kūrimo komandos pavyzdys naudojant „Windows“ autentifikavimą:
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
Pavyzdys naudojant SQL Server Autentifikavimas:
sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
Diferencialinės atsarginės kopijos kūrimas naudojant SQLCMD
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"
Operacijų žurnalo atsarginės kopijos kūrimas naudojant SQLCMD
sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"
7.1.3 Leidėjo duomenų bazės atsarginė kopija SQL Server Replikacija
Kuriant leidėjo duomenų bazių atsargines kopijas SQL Server Replikacijai naudokite parinktį WITH REPLICATION, kad išsaugotumėte replikacijos metaduomenis ir užtikrintumėte operacijų nuoseklumą.
-- Backup publisher database with replication support
BACKUP DATABASE PublisherDB
TO DISK = 'C:\Backup\PublisherDB_Full.bak'
WITH REPLICATION,
COMPRESSION,
CHECKSUM,
INIT,
STATS = 10;
GO
Norėdami gauti daugiau informacijos apie SQL Server replikacija, žr. mūsų išsamus vadovas.
7.2 Naudokite OSQL atsarginių kopijų duomenų bazę
OSQL yra senoji komandinės eilutės programa, skirta SQL ServerNors „Microsoft“ rekomenduoja naudoti SQLCMD, OSQL išlieka prieinamas, kad būtų užtikrintas atgalinis suderinamumas su senesniais scenarijais ir sistemomis.
7.2.1 Pagrindinė OSQL sintaksė
OSQL sintaksė yra panaši į SQLCMD:
osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: SQL Server egzemplioriaus pavadinimas
- -d: Duomenų bazės pavadinimas
- -K: Vykdo užklausą ir išeina
- -IR: Naudoja patikimą ryšį („Windows“ autentifikavimas)
- -U: Prisijungimo vartotojo vardas
- -P: Prisijungimo slaptažodis
7.2.2 Atsarginės kopijos kūrimas naudojant OSQL
Norėdami atlikti OSQL atsarginių duomenų bazės operacijų kūrimą:
- Atviras Komandinė eilutė
- Patikrinkite, ar jūsų įrenginyje yra OSQL. SQL Server montavimas
- Vykdykite OSQL atsarginės kopijos komandą
Pilnos atsarginės kopijos pavyzdys:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"
Diferencialinės atsarginės kopijos pavyzdys:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"
8. Trečioji šalis SQL Server Atsarginės kopijos įrankiai
O SQL Server apima integruotas atsarginių kopijų kūrimo galimybes, trečiųjų šalių įrankiai siūlo patobulintas funkcijas, automatizavimą ir įmonės lygio valdymą organizacijoms, turinčioms sudėtingus reikalavimus. Šie sprendimai užtikrina pažangų glaudinimą, centralizuotą valdymą ir supaprastintus atsarginių kopijų kūrimo darbo eigą. SQL Server duomenų bazės keliose aplinkose.
8.1 „Veeam“ atsarginė kopija SQL Server
„Veeam“ siūlo išsamius duomenų apsaugos sprendimus, specialiai sukurtus atsarginėms kopijoms kurti SQL Server duomenų bazės, turinčios minimalų poveikį gamybos sistemoms.
Pagrindinės funkcijos:
- Programos sąmoningas apdorojimas SQL Server atsarginių kopijų nuoseklumas
- Operacijų žurnalo atsarginės kopijos ir valdymas
- Atkūrimas konkrečiu momentu su detaliomis atkūrimo parinktimis
- Integracija su „Veeam Backup & Replication“, siekiant vieningos duomenų apsaugos
- Automatinis atsarginių kopijų patikrinimas ir patvirtinimas
- Visada įjungtų prieinamumo grupių palaikymas
- VM ir programos lygmens SQL Server atsarginės parinktys
8.2 „Barracuda“ atsarginė kopija SQL Server
„Barracuda“ teikia debesyje integruotus atsarginių kopijų kūrimo sprendimus su supaprastintu valdymu, skirtus „MS“ SQL Server atsarginių duomenų bazių operacijų kūrimas.
Pagrindinės funkcijos:
- Automatizuotas SQL Server atsarginių kopijų planavimas
- Integruotas debesies replikavimas į „Barracuda Cloud Storage“
- Visuotinis deduplikavimas ir glaudinimas
- Momentinio vietinio atkūrimo galimybės
- Žiniatinklio valdymo konsolė
- Palaikymas pilnoms, diferencialinėms ir operacijų žurnalų atsarginėms kopijoms
- Apsauga nuo išpirkos reikalaujančių programų su nekeičiamomis atsarginėmis kopijomis
8.3 „Veritas NetBackup“, skirta SQL Server
„Veritas NetBackup“ yra įmonės lygio atsarginių kopijų kūrimo platforma, užtikrinanti visapusišką apsaugą SQL Server duomenų bazės sudėtingose IT aplinkose.
Pagrindinės funkcijos:
- Įmonės lygio atsarginių kopijų valdymas tūkstančiams duomenų SQL Server atvejai
- Išplėstiniai deduplikacijos ir glaudinimo algoritmai
- Lankstus atsarginių kopijų kūrimo planas ir planavimas
- Parama visiems SQL Server atsigavimo modeliai
- Integracija su juostų bibliotekararir debesies saugyklos
- Detalizuotas duomenų bazių, lentelių ir objektų atkūrimas
- Palaikymas kelioms platformoms (Windows, Linux) SQL Server)
- Automatinis atsarginių kopijų gyvavimo ciklo valdymas
8.4 „Commvault“ visiškas atsarginių kopijų kūrimas ir atkūrimas, skirtas SQL Server
„Commvault“ užtikrina išmanų duomenų valdymą su išsamia atsarginių kopijų kūrimo funkcija SQL Server galimybės ir pažangios automatizavimo funkcijos.
Pagrindinės funkcijos:
- Dirbtiniu intelektu pagrįstas atsarginių kopijų optimizavimas ir anomalijų aptikimas
- Vieninga atsarginių kopijų kūrimo, atkūrimo ir archyvavimo platforma
- pažangus SQL Server atsarginis glaudinimas (sumažinimas iki 90 %)
- Automatinis atkūrimo po avarijų organizavimas
- Tiesioginis sinchronizavimas beveik nulinei RPO apsaugai
- Parama SQL Server vietiniai, debesijos ir hibridiniai diegimai
- „IntelliSnap“, skirta momentinių kopijų pagrindu sukurtoms atsarginėms kopijoms
- Išsamios atitikties ir elektroninio informacijos atskleidimo galimybės
8.5 „Cohesity DataProtect“ SQL Server
„Cohesity“ teikia naujos kartos duomenų valdymą su hiperkonverguota infrastruktūra šiuolaikiniam naudojimui. SQL Server atsarginių kopijų kūrimo operacijos.
Pagrindinės funkcijos:
- Internetinė architektūra supaprastintam valdymui
- Momentinio masinio atkūrimo galimybės SQL Server duomenų bazės
- Programą atitinkančios momentinės nuotraukos
- Visuotinis visų atsarginių kopijų dublikatų pašalinimas
- Gimtoji debesijos integracija (AWS, Azure, Google Cloud)
- Integruotos analizės ir stebėjimo ataskaitų suvestinės
- Duomenų bazės klonavimo ir testavimo galimybės
- Apsauga nuo išpirkos reikalaujančių programų su nekeičiamomis momentinėmis kopijomis
8.6 „Red Gate SQL Backup Pro“
„Red Gate SQL Backup Pro“ yra specializuotas įrankis, skirtas tik optimizuoti SQL Server atsarginių kopijų kūrimo ir atkūrimo operacijos su puikiu glaudinimu ir našumu.
Pagrindinės funkcijos:
- Pirmaujantys pramonėje suspaudimo laipsniai (iki 95 %)
- Tinklo atsparumas atsarginėms kopijoms SQL Server per nepatikimus ryšius
- Atsarginių kopijų šifravimas naudojant 256 bitų AES
- Atsarginių kopijų patikrinimas ir vientisumo patikrinimas
- Išsami atsarginių kopijų istorija ir ataskaitos
- Integracija su SQL Server Vadybos studija
- Palaikymas atsarginėms kopijoms tinklo vietose ir debesies saugykloje
- Lygiagretus atsarginių kopijų kūrimas ir atkūrimas spartesnėms operacijoms
9. Kaip atkurti SQL Server duomenų bazė
9.1 Atkūrimo proceso supratimas
Atkuriama a SQL Server Duomenų bazė atkuria duomenų bazę iš atsarginių kopijų failų. Atkūrimo procesas nuskaito atsarginės kopijos failą ir atkuria duomenų bazę į atsarginę kopiją.
Svarbūs svarstymai:
- Atkūrimas perrašo esamą duomenų bazę
- Vartotojai atjungiami atkūrimo metu
- Atkūrimas turi atitikti atsarginių kopijų kūrimo seką (visiškas, tada diferencinis, tada žurnalai).
- Duomenų bazė nepasiekiama atkūrimo operacijos metu
9.2 Visos atsarginės kopijos atkūrimas naudojant SSMS
Norėdami atkurti visą duomenų bazės atsarginę kopiją, atlikite šiuos veiksmus.
9.2.1 Žingsnis po žingsnio atkūrimo procesas
- Atviras SQL Server Vadybos studija ir prisijunkite prie savo serverio
- In Objektų naršyklė, dešiniuoju pelės mygtuku spustelėkite Duomenų bazės
- pasirinkti Atkurti duomenų bazę
- Lauke Šaltinis skyriuje pasirinkite Įrenginio
- Spustelkite ... mygtukas, skirtas atsarginių kopijų failų naršymui
- Spauskite papildyti ir eikite į savo .bak failą
- Pasirinkite atsarginės kopijos failą ir spustelėkite OK
- Lauke Šalys skyriuje įveskite duomenų bazės pavadinimą
- Peržiūrėkite atsarginių kopijų rinkinius, kuriuos norite atkurti
- Spauskite OK į start atkūrimas
9.2.2 Atkūrimo parinktys ir nustatymai
Spauskite Nustatymai kairiajame skydelyje, kad sukonfigūruotumėte:
- Perrašyti esamą duomenų bazę (SU PAKEITIMU) – Leidžia atkurti duomenis iš esamos duomenų bazės
- Išsaugoti replikacijos būsenas (SU KEEP_REPLICATION) – Laikykite SQL Server replikacija valstybės
- Apriboti prieigą prie atkurtos duomenų bazės (WITH RESTRICTED_USER) – Ribos post- atkurti prieigą
- Atkūrimo būsena – Pasirinkite ATKURTI SU ATKURIMU arba BE ATKURIMO
9.3 Diferencinio atsarginio kopijavimo atkūrimas
Diferencialiniam atkūrimui reikalingos ir pilnos, ir diferencinės atsarginės kopijos:
- Pirmiausia atkurkite visą atsarginę kopiją naudodami NORECOVERY pasirinkimas
- Tada atkurkite diferencinę atsarginę kopiją naudodami IŠIEŠKOJIMAS pasirinkimas
T-SQL pavyzdys:
-- Restore full backup (NORECOVERY to allow differential)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore differential backup (RECOVERY to complete)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH RECOVERY;
GO
9.4 Atkūrimas naudojant operacijų žurnalo atsargines kopijas
Norėdami atkurti duomenis tam tikru momentu, atkurkite tokia tvarka:
- Atkurti visą atsarginę kopiją naudojant NORECOVERY
- Atkurti diferencinę atsarginę kopiją naudojant NORECOVERY (jei yra)
- Atkurkite operacijų žurnalo atsargines kopijas eilės tvarka naudodami NORECOVERY
- Atkurti galutinę žurnalo atsarginę kopiją naudojant RECOVERY
-- Restore full backup
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore first log backup
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
-- Restore second log backup with recovery
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log2.trn'
WITH RECOVERY;
GO
9.5 Atkūrimas konkrečiu momentu
Atkurti duomenų bazę iki konkretaus laiko momento naudojant STOPAT parinktį:
-- Restore to specific time: January 15, 2025 at 2:30 PM
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH RECOVERY, STOPAT = '2025-01-15 14:30:00';
GO
9.6 Lentelės atkūrimas
SQL Server nepalaiko tiesioginio lentelės lygio atkūrimo iš atsarginių kopijų failų. Tačiau vis dar yra keletas sprendimų.
9.6.1 1 metodas: duomenų bazės momentinės kopijos (geriausia prevencijai)
Duomenų bazės momentinės kopijos yra greičiausias būdas atkurti lentelės duomenis, jei jos buvo sukurtos prieš kylant problemai. Momentinė kopija yra tik skaitymui skirtas statinis duomenų bazės vaizdas konkrečiu laiko momentu.
Duomenų bazės momentinės kopijos kūrimas:
-- Create snapshot before making changes
CREATE DATABASE ProductionDB_Snapshot_20250107
ON
( NAME = ProductionDB_Data,
FILENAME = 'C:\Snapshots\ProductionDB_Snapshot.ss' )
AS SNAPSHOT OF ProductionDB;
GO
Lentelės duomenų atkūrimas iš momentinės kopijos:
USE ProductionDB;
GO
-- Replace entire table content
BEGIN TRANSACTION;
-- Disable constraints temporarily
ALTER TABLE dbo.Orders NOCHECK CONSTRAINT ALL;
-- Clear current data
TRUNCATE TABLE dbo.Orders;
-- Restore from snapshot
INSERT INTO dbo.Orders
SELECT * FROM ProductionDB_Snapshot_20250107.dbo.Orders;
-- Re-enable constraints
ALTER TABLE dbo.Orders CHECK CONSTRAINT ALL;
COMMIT TRANSACTION;
GO
Versijos reikalavimai: Duomenų bazės momentinės kopijos pasiekiamos SQL Server „Enterprise Edition“ (visos versijos) ir „Standard Edition“tarting su SQL Server 2016 m. SP1.
9.6.2 2 metodas: Atkurti tempąrary duomenų bazė (Most Dažnas)
Šis metodas veikia, kai reikia atkurti lentelės duomenis po problemos atsiradimo ir momentinės kopijos nėra:
- Atkurti atsarginę kopiją į tempąrary duomenų bazė
- Kopijuoti lentelės duomenis iš temporary duomenų bazės į dabartinę duomenų bazę
9.7 Puslapio atkūrimas
Puslapio atkūrimo funkcija atkuria atskirus pažeistus puslapius neatkurdama visos duomenų bazės, taip sumažindama prastovas targaunami tik sugadinti puslapiai. Ši funkcija galima tik naudojant visiško arba masinio žurnalavimo atkūrimo modelius ir reikalauja nenutrūkstamos operacijų žurnalo atsarginių kopijų grandinės nuo puslapio atsarginės kopijos iki dabartinio žurnalo failo.
Norėdami atkurti puslapį, pirmiausia nustatykite pažeistus puslapius, sukurkite operacijų žurnalo atsarginę kopiją, atkurkite konkrečius puslapius ir pritaikykite visus operacijų žurnalus:
-- Identify damaged pages
SELECT * FROM msdb.dbo.suspect_pages
WHERE database_id = DB_ID('AdventureWorks');
-- Take tail-log backup
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH NORECOVERY;
-- Restore damaged pages
RESTORE DATABASE AdventureWorks
PAGE = '1:123, 1:456'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
-- Apply transaction logs
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH RECOVERY;
GO
Pastaba: Puslapio atkūrimas negalimas naudojant paprastą atkūrimo modelį. Negalite atkurti puslapių iš sistemos lentelių arba pagrindinių failų grupių metaduomenų.
9.8 Dalinis atkūrimas
Dalinis atkūrimas atkuria duomenų bazę etapais failų grupės lygmeniu, staratkuriant duomenis su pagrindine failų grupe. Tai akimirksniu sukuria svarbius duomenis, o mažiau svarbūs duomenys atkuriami fone. Taikant paprastą atkūrimo modelį, visos skaitomos ir rašomos failų grupės turi būti atkurtos kartu su pagrindine failų grupe; atskirai galima atkurti tik skaitomas failų grupes. Taikant visiško arba masinio registravimo atkūrimo modelius, kiekvieną failų grupę galima sukurti atskirai, pritaikius operacijų žurnalus.
| Atkūrimo modelis | Dalinio atkūrimo elgesys |
|---|---|
| paprastas | Pagrindinė ir visos skaitymui/rašymui skirtos failų grupės atkurtos kartu. Tik skaitymui skirtos failų grupės atkurtos atskirai. |
| Pilnas/masinis registravimas | Kiekviena failų grupė atkurta nepriklausomai failų grupės lygmeniu. |
Visiško atkūrimo modelio pavyzdys – pirmiausia atkurkite pagrindinę failų grupę, kad duomenų bazė būtų įjungta, tada atkurkite antrines failų grupes, kol duomenų bazė veikia:
-- Stage 1: Restore primary filegroup (database comes online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
-- Stage 2: Restore secondary filegroup (database stays online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'HistoricalData'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
Paprasto atkūrimo modelio pavyzdys:
-- Restore primary with all read-write filegroups
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, RECOVERY;
-- Restore read-only filegroup separately
RESTORE DATABASE AdventureWorks
FILEGROUP = 'ReadOnlyArchive'
FROM DISK = 'C:\Backups\AdventureWorks_ReadOnly.bak'
WITH RECOVERY;
GO
9.9 Atkūrimas naudojant T-SQL komandas
Užbaigti atkūrimo scenarijų su failų perkėlimu:
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'D:\Data\AdventureWorks.mdf',
MOVE 'AdventureWorks_Log' TO 'E:\Logs\AdventureWorks.ldf',
REPLACE,
STATS = 10;
GO
9.10 Atsarginės kopijos vientisumo patikrinimas prieš atkūrimą
Patikrinkite atsarginės kopijos galiojimą neatkuriant:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO
Ši komanda patikrina, ar atsarginių kopijų rinkinys yra baigtas ir įskaitomas, neatkuriant duomenų bazės.
10. SQL Server Geriausia atsarginių kopijų kūrimo praktika
10.1 Atsarginės strategijos kūrimas
10.1.1 Verslo reikalavimų vertinimas
Prieš diegdami atsargines kopijas, įvertinkite:
- Duomenų kritiškumas: Kiek šie duomenys svarbūs operacijoms?
- Keisti dažnį: Kaip dažnai keičiasi duomenys?
- Duomenų bazės dydis: Kokio dydžio yra duomenų bazė?
- Galimi ištekliai: Kokia saugykla ir pralaidumas yra prieinami?
- Atitikties poreikiai: Kokių taisyklių privalote laikytis?
10.1.2 RTO ir RPO apibrėžimas
Atkūrimo laiko tikslas (RTO): Maksimalus priimtinas prastovos laikas. Nustato, kaip greitai reikia atkurti veiklą.
Atkūrimo taško tikslas (RPO): Didžiausias priimtinas duomenų praradimas. Nustato atsarginių kopijų kūrimo dažnumą.
| RTO/RPO reikalavimas | Rekomenduojama atsarginių kopijų kūrimo strategija |
|---|---|
| RPO: valandos, RTO: valandos | Kasdienis pilnas + operacijų žurnalas kas 1–2 valandas |
| RPO: minutės, RTO: valandos | Kasdienės pilnos + žurnalų atsarginės kopijos kas 15–30 minučių |
| RPO: Beveik nulis, RTO: Minutės | Visada prieinamumo grupės + dažnos žurnalų atsarginės kopijos |
| RPO: Dienos, RTO: Dienos | Savaitės pilnas + dienos skirtumas |
10.2 Atsarginių kopijų kūrimo tvarkaraščio kūrimas
10.2.1 Dažnio rekomendacijos
Tipinis atsarginių kopijų kūrimo grafikas gamybos duomenų bazėms:
- Pilnos atsarginės kopijos: Kas savaitę (sekmadienio vakarais, kai aktyvumas mažas)
- Diferencialinės atsarginės kopijos: Kasdien (kiekvieną naktį)
- Operacijų žurnalo atsarginės kopijos: Kas 15–30 minučių darbo valandomis
- Tik kopijavimui skirtos atsarginės kopijos: Pagal poreikį testavimui ar kūrimui
10.2.2 Našumo ir apsaugos balansavimas
Planuodami atsižvelkite į šiuos veiksnius:
- Ne piko valandos: Atlikite visas atsargines kopijas mažai aktyvių laikotarpių metu
- Išteklių poveikis: Suspaudimas sumažina įvesties/išvesties greitį, bet padidina procesoriaus apkrovą
- Tinklo pralaidumas: Planuokite tinklo atsargines kopijas, kai srautas mažas
- Atsarginių kopijų langai: Užtikrinkite, kad atsarginės kopijos būtų sukurtos iki darbo valandų
10.3 Atsarginių kopijų saugojimo geriausia praktika
10.3.1 Saugojimas vietoje ir ne vietoje
Atsarginės kopijos vietoje:
- Greitesnis atsarginių kopijų kūrimas ir atkūrimas
- Žemutinė cost aukšto dažnio prieigai
- Pažeidžiami vietinių nelaimių
- Geriausia greito atkūrimo scenarijams
Atsarginės kopijos ne svetainėje:
- Apsauga nuo konkrečioje vietoje esančių nelaimių
- Atitiktis geografinio perteklinio kiekio reikalavimams
- Lėtesnis atkūrimo laikas
- Būtinas atkuriant nelaimes
10.3.2 Atsarginių kopijų kūrimo debesyje parinktys
Debesijos saugyklos privalumai:
- Azure Blob saugykla: Gimtasis SQL Server integracija, cost- efektyvus retam naudojimui
- „Amazon S3“: Labai patvarūs, lankstūs sandėliavimo sluoksniai
- „Google“ debesies saugykla: Konkurencingos kainos, prieinamumas visame pasaulyje
10.3.3 Atsarginių kopijų saugojimo politikos
Mėginių saugojimo politika:
- Kasdienes atsargines kopijas saugokite 7 dienas
- Savaitinių atsarginių kopijų saugojimas 4 savaites
- Mėnesines atsargines kopijas saugokite 12 mėnesių
- Metines atsargines kopijas saugokite 7 metus (atitiktis)
10.4 Atsarginių kopijų glaudinimas ir šifravimas
Kompresijos privalumai:
- Sumažina atsarginės kopijos failo dydį 50–70 %
- Sumažina atsarginės kopijos kūrimo laiką
- Sumažina sandėliavimo costs
- Sumažina tinklo pralaidumą nuotolinėms atsarginėms kopijoms
Geriausia šifravimo praktika:
- Visada šifruokite atsargines kopijas, kuriose yra jautrių duomenų
- Naudokite AES 256 bitų šifravimą
- Saugus sertifikatas arba raktų valdymas
- Dokumentuokite šifravimo raktus ir saugokite juos atskirai
10.5 Atsarginių kopijų testavimas ir tikrinimas
10.5.1 Įprastas atkūrimo testavimas
Testo atkūrimo procedūros kas ketvirtį arba kas mėnesį:
- Atkurti atsargines kopijas bandymo aplinkoje
- Patikrinkite duomenų vientisumą ir išsamumą
- Patikrinkite programos funkcionalumą
- Dokumento atkūrimo laikas (patvirtinti RTO)
- Nustatykite ir išspręskite visas problemas
10.5.2 Naudojant „ATKURTI TIK VERIFYONLY“
Automatizuoti atsarginių kopijų patvirtinimą:
-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Atlikite patikrinimą iš karto po atsarginės kopijos kūrimo arba kaip planinės priežiūros dalį.
10.6 Atsarginių kopijų automatizavimas ir stebėjimas
10.6.1 SQL Server Agentas Jobsas
Kurkite automatines atsarginių kopijų kūrimo užduotis:
- Plėsti SQL Server Agentas
SSMS sistemoje
- Dešiniuoju pelės mygtuku spustelėkite Darbai ir tuomet Naujas darbas
- Pavadinkite užduotį (pvz., „Kasdienis pilnas atsarginis kopijavimas“)
- pridėti Žingsnis su T-SQL atsarginių kopijų komandomis
- Sukurtia Planuoti vykdymo laikui
- Nustatyti Pranešimai už sėkmę / nesėkmę
10.6.2 Techninės priežiūros planai
SQL Server Priežiūros planai suteikia vizualinę sąsają atsarginių kopijų kūrimo automatizavimui:
- Eikite į valdymas -> Priežiūros planai
- Dešiniuoju pelės mygtuku spustelėkite ir pasirinkite Priežiūros plano vedlys
- Pasirinkite atsarginių kopijų kūrimo užduotis, kurias norite automatizuoti
- Atsarginių kopijų planavimo grafiko ir parinkčių konfigūravimas
- Ataskaitų teikimo ir registravimo nustatymas
10.6.3 Atsarginių kopijų įspėjimai ir pranešimai
El. pašto pranešimų konfigūravimas:
- Nustatykite duomenų bazės paštą SQL Server
- Kurti įspėjimus apie atsarginių kopijų kūrimo gedimus
- Stebėti atsarginių kopijų kūrimo darbų istoriją
- Siųsti suvestines ataskaitas administratoriams
10.7 Dokumentacija ir atkūrimo po nelaimių planavimas
Tvarkykite išsamią dokumentaciją:
- Atsarginių kopijų kūrimo grafikas: Kada ir kas kuriama atsarginių kopijų forma
- Saugojimo politika: Kiek laiko saugomos atsarginės kopijos
- Sandėliavimo vietos: Kur saugomos atsarginės kopijos
- Atkūrimo procedūros: Žingsnis po žingsnio atkūrimo instrukcijos
- Kontaktinė informacija: Pagrindiniai darbuotojai ir tiekėjai
- Atsigavimo testo rezultatai: Dokumentuoti bandymų rezultatai
11. Pažengęs SQL Server Atsarginių kopijų scenarijai
11.1 Labai didelių duomenų bazių (VLDB) atsarginių kopijų kūrimas
11.1.1 Failų ir failų grupių strategijos
Duomenų bazėms, viršijančioms kelis šimtus gigabaitų:
- Atskirkite tik skaitymui ir skaitymui-rašymui skirtus duomenis į skirtingas failų grupes
- Rečiau kurkite tik skaitymui skirtų failų grupių atsargines kopijas
- Dažnas atsarginių kopijų kūrimas aktyviose failų grupėse
- Naudokite failų lygio atsargines kopijas, kad būtų užtikrinta išsami kontrolė
Failo atsarginės kopijos pavyzdys:
-- Back up specific file
BACKUP DATABASE LargeDB
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO
11.1.2 Atsarginių kopijų našumo optimizavimas
Pagerinkite VLDB atsarginių kopijų našumą:
- Dryžuotos atsarginės kopijos: Rašyti į kelis failus vienu metu
- Suspaudimas: Sumažinkite įvesties / išvesties ir saugyklos reikalavimus
- Keli atsarginės kopijos įrenginiai: Lygiagrečiai sukurkite atsarginių kopijų kūrimo operacijas
- Greitas saugojimas: Naudokite SSD diskus atsarginių kopijų kūrimui
- Buferio skaičius: Padidinti BUFFERCOUNT parinktį
- Maksimalus perdavimo dydis: Optimizuokite MAXTRANSFERSIZE nustatymą
-- Optimized VLDB backup
BACKUP DATABASE LargeDB
TO DISK = 'C:\Backups\LargeDB_1.bak',
DISK = 'D:\Backups\LargeDB_2.bak',
DISK = 'E:\Backups\LargeDB_3.bak'
WITH COMPRESSION,
BUFFERCOUNT = 100,
MAXTRANSFERSIZE = 4194304;
GO
11.2 Atsarginių kopijų kūrimas „Always On“ prieinamumo grupėse
„Always On“ prieinamumo grupės paskirsto atsarginių kopijų apkrovą:
- Atsarginių kopijų nuostatų konfigūravimas (pirminė, antrinė arba bet kuri kopija)
- Atsarginių kopijų perkėlimas į antrines kopijas, siekiant sumažinti pagrindinį darbo krūvį
- Antrinėse kopijose naudoti COPY_ONLY atsargines kopijas
- Stebėkite atsarginių kopijų prioritetų nustatymus
-- Check backup preferences
SELECT
ag.name AS AvailabilityGroup,
ar.replica_server_name,
ar.backup_priority
FROM sys.availability_replicas ar
INNER JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
GO
11.3 Duomenų bazės veidrodinio kopijavimo atsarginės kopijos
Duomenų bazės veidrodinio atspindžio scenarijuose:
- Reguliariai kurkite pagrindinės duomenų bazės atsargines kopijas
- Sandorių žurnalo atsarginės kopijos yra būtinos veidrodiniam kopijavimui
- Veidrodinė duomenų bazė yra ATKURIAMOJE būsenoje (negalima tiesiogiai sukurti atsarginės kopijos)
- Apsvarstykite galimybę sukurti veidrodinio atsparumo kopiją po perjungimo
11.4 Atsarginių kopijų kūrimas „Azure Blob“ saugykloje
SQL Server galima kurti atsargines kopijas tiesiai į „Azure Blob Storage“:
- Sukurkite „Azure“ saugyklos paskyrą
- kurti SQL Server „Azure“ autentifikavimo kredencialai
- Atsarginės kopijos paskirties vietai naudokite URL sintaksę
-- Create credential for Azure
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'your_SAS_token';
GO
-- Backup to Azure
BACKUP DATABASE AdventureWorks
TO URL = 'https://mystorageaccount.blob.core.windows.net/backups/AdventureWorks.bak'
WITH COMPRESSION,
STATS = 10;
GO
11.5 Atsarginė kopija URL adresu
Atsarginių kopijų kūrimo URL adresu privalumai:
- Neribota debesies saugyklos talpa
- Geografinis perteklius tvarkomas automatiškai
- Einamojo mokėjimo modelis
- Nereikia vietos vietiniame diske
- Palaiko iki 64 URL vienoje atsarginėje kopijoje (striping)
11.6 Dryžuotos atsarginės kopijos našumui užtikrinti
Dryžuotos atsarginės kopijos padalija duomenis į kelis failus, kad būtų galima greičiau įvesti/išvesti:
-- Striped backup to 4 files
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AW_Stripe1.bak',
DISK = 'D:\Backups\AW_Stripe2.bak',
DISK = 'E:\Backups\AW_Stripe3.bak',
DISK = 'F:\Backups\AW_Stripe4.bak'
WITH COMPRESSION, FORMAT;
GO
Pastaba: norint atkurti duomenis, reikalingi visi „stripe“ failai. Trūkstant bet kurio failo, atsarginė kopija tampa netinkama naudoti.
12. Problemų sprendimas SQL Server Atsarginės kopijos problemos
12.1 Dažniausios atsarginių kopijų kūrimo klaidos ir sprendimai
Klaida: „Operacinės sistemos klaida 5: Prieiga uždrausta“
- Priežastis: SQL Server paslaugos paskyrai trūksta leidimų
- Sprendimas: Suteikti rašymo teises SQL Server paslaugos paskyra atsarginių kopijų aplanke
Klaida: „Nepavyksta atidaryti atsarginės kopijos įrenginio... Įrenginio klaida arba įrenginys neprijungtas“
- Priežastis: Neteisingas kelias arba nepasiekiamas tinklo bendrinimas
- Sprendimas: Patikrinkite, ar kelias egzistuoja, patikrinkite tinklo ryšį, užtikrinkite pakankamai vietos diske
Klaida: „Diske nepakanka vietos“
- Priežastis: Nepakanka vietos diske atsarginei kopijai
- Sprendimas: Atlaisvinkite vietos diske, naudokite glaudinimą, sukurkite atsarginę kopiją kitoje vietoje
Klaida: „Duomenų bazė naudojama. Duomenų bazę naudoja kiti vartotojai“
- Priežastis: Aktyvūs ryšiai atkūrimo metu
- Sprendimas: Naudokite parinktį SU PAKEITIMU arba pirmiausia atjunkite vartotojus
12.2 Atsarginių kopijų našumo problemos
Lėtų atsarginių kopijų diagnozavimas:
- Patikrinkite disko įvesties / išvesties našumą naudodami Našumo stebėjimas
- Stebėkite atsarginių kopijų kūrimo eigą naudodami STATS parinktį
- apžvalga SQL Server klaidų žurnalas, skirtas kliūtims
- Apsvarstykite glaudinimą, kad sumažintumėte įvesties/išvesties greitį
- Naudokite dryžuotas atsargines kopijas keliuose diskuose
Užklausa atsarginės kopijos kūrimo eigai stebėti:
SELECT
session_id,
command,
percent_complete,
CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
+ CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
+ CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
+ CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
+ CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests
WHERE command LIKE 'BACKUP%';
GO
12.3 Vietos ir sandėliavimo problemos
Išvenkite saugojimo problemų:
- Įgyvendinkite saugojimo politiką: Automatiškai ištrinti senas atsargines kopijas
- Naudokite suspaudimą: Sumažinkite atsarginės kopijos failo dydį 50–70 %
- Archyvuoti pigesnėje saugykloje: Perkelkite senas atsargines kopijas į archyvo saugyklą
- Monitoriaus disko vieta: Nustatykite įspėjimus apie mažą disko vietą
- Apytikslis atsarginės kopijos dydis: Prieš kurdami atsarginę kopiją, apskaičiuokite numatomą dydį
Apytikslis atsarginės kopijos dydis:
-- Estimate full backup size
EXEC sp_spaceused;
GO
12.4 Leidimų ir prieigos problemos
Reikalingi leidimai atsarginėms kopijoms kurti:
- ATSARGINĖ DUOMENŲ BAZĖ leidimas
- db_backupoperator vaidmens narystė
- sysadminas serverio vaidmuo (visoms atsarginių kopijų kūrimo operacijoms)
Suteikite atsarginių kopijų kūrimo leidimus:
-- Grant backup permission to user
GRANT BACKUP DATABASE TO [BackupUser];
GRANT BACKUP LOG TO [BackupUser];
GO
-- Add user to backup operator role
ALTER ROLE db_backupoperator ADD MEMBER [BackupUser];
GO
12.5 Sugadinti atsarginių kopijų failai
Aptikti ir tvarkyti sugadintas atsargines kopijas:
Patikrinkite atsarginės kopijos vientisumą:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Įjungti kontrolinę sumą būsimoms atsarginėms kopijoms:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO
Prevencijos strategijos:
- Atsarginės kopijos kūrimo metu visada naudokite kontrolinės sumos parinktį
- Patikrinkite atsargines kopijas iš karto po sukūrimo
- Reguliariai tikrinkite atkūrimą
- Atsargines kopijas saugokite patikimoje saugykloje
- Turėkite kelias atsargines kopijas
12.6 Atkurti duomenis iš sugadintų atsarginių kopijų failų
Jei atsarginės kopijos failai yra sugadinti ir vis tiek norite atkurti duomenis iš jų, galite naudoti trečiųjų šalių įrankius, pvz., DataNumen SQL Recovery, kaip nurodyta žemiau:
- Start DataNumen SQL Recovery.
- Pasirinkite sugadintą atsarginės kopijos failą kaip šaltinio failą, pakeisdami filtrą į „Visi failai (*.*)“:
- Jei reikia, nustatykite išvesties .MDF failą.
- Spustelėkite „Star„t Recovery“ ir vykdykite instrukcijas, kad atkurtumėte duomenų bazę.
- Po atkūrimo proceso atsiras nauja atkūrimo duomenų bazė SQL Server kuriame yra visi atkurti duomenys.
13. SQL Server Atsarginių kopijų apsauga
13.1 Atsarginių kopijų failų apsauga
Apsaugokite atsargines kopijas nuo neteisėtos prieigos:
- Failų sistemos leidimai: Apriboti prieigą tik įgaliotiems administratoriams
- Tinklo saugumas: Naudokite saugius protokolus tinklo atsarginėms kopijoms kurti
- Fizinis saugumas: Atsarginių kopijų laikmenas laikykite saugiose vietose
- Prieigos registravimas: Audito atsarginės kopijos failų prieiga
13.2 Šifravimo parinktys
SQL Server palaiko skaidrų atsarginių kopijų šifravimą:
Sukurkite šifravimo sertifikatą:
-- Create master key
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongP@ssw0rd!';
GO
-- Create certificate
CREATE CERTIFICATE BackupCertificate
WITH SUBJECT = 'Database Backup Certificate',
EXPIRY_DATE = '2026-12-31';
GO
Užšifruota atsarginė kopija:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
);
GO
Svarbu: Atskirai sukurkite sertifikato ir privataus rakto atsargines kopijas. Be jų užšifruotų atsarginių kopijų atkurti negalima.
-- Backup certificate
BACKUP CERTIFICATE BackupCertificate
TO FILE = 'C:\Certificates\BackupCertificate.cer'
WITH PRIVATE KEY (
FILE = 'C:\Certificates\BackupCertificate.key',
ENCRYPTION BY PASSWORD = 'C3rt!f!c@t3P@ss'
);
GO
13.3 Prieigos kontrolė ir leidimai
Įgyvendinti mažiausių privilegijų principą:
- Suteikite atsarginių kopijų kūrimo leidimus tik būtinoms paskyroms
- Atsarginių kopijų kūrimo ir atkūrimo operacijoms naudokite atskiras paskyras
- Venkite naudoti SA paskyrą atsarginėms kopijoms kurti
- Reguliariai tikrinkite atsarginių kopijų kūrimo leidimus
- Pašalinkite leidimus, kai jų nebereikia
13.4 Atitikties svarstymai
Atsižvelkite į norminius reikalavimus:
- BDAR: Šifruoti atsargines kopijas, kuriose yra asmens duomenų, įdiegti saugojimo politiką
- HIPAA: Šifruoti PHI atsarginėse kopijose, kontroliuoti prieigą, tvarkyti audito įrašus
- PCI DSS: Šifruokite kortelės turėtojo duomenų atsargines kopijas, saugiai saugokite atsargines kopijas
- SOX: Palaikyti atsarginių kopijų vientisumą, dokumentų saugojimo politiką
14. Atsarginių kopijų operacijų stebėjimas ir priežiūra
14.1 Atsarginių kopijų istorijos sekimas
SQL Server Saugo atsarginių kopijų istoriją msdb duomenų bazėje:
-- View recent backup history
SELECT
bks.database_name,
bks.backup_start_date,
bks.backup_finish_date,
CASE bks.type
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Log'
ELSE 'Other'
END AS backup_type,
bks.backup_size / 1024 / 1024 AS backup_size_mb,
bkmf.physical_device_name
FROM msdb.dbo.backupset bks
INNER JOIN msdb.dbo.backupmediafamily bkmf ON bks.media_set_id = bkmf.media_set_id
WHERE bks.backup_start_date >= DATEADD(DAY, -7, GETDATE())
ORDER BY bks.backup_start_date DESC;
GO
Raskite duomenų bazes be neseniai sukurtų atsarginių kopijų:
SELECT
d.name AS database_name,
MAX(bs.backup_finish_date) AS last_backup_date,
DATEDIFF(DAY, MAX(bs.backup_finish_date), GETDATE()) AS days_since_last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON d.name = bs.database_name
WHERE d.database_id > 4 -- Exclude system databases
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE())
OR MAX(bs.backup_finish_date) IS NULL
ORDER BY last_backup_date;
GO
14.2 Naudojimas SQL Server Ataskaitos
SQL Server „Management Studio“ apima integruotas atsargines ataskaitas:
- Dešiniuoju pelės mygtuku spustelėkite duomenų bazę objektų naršyklėje
- pasirinkti Ataskaitos -> Standartinės ataskaitos
- Pasirinkite iš galimų ataskaitų:
- Atsarginių kopijų kūrimo ir atkūrimo įvykiai
- Visos atsarginės kopijos
- Operacijų žurnalo pristatymo būsena
14.3 Trečiųjų šalių stebėjimo įrankiai
Komerciniai stebėjimo sprendimai:
- SQL Sentry: Išsamus stebėjimas ir įspėjimai
- „Redgate“ SQL monitorius: Stebėjimas ir diagnostika realiuoju laikuostnika
- „SolarWinds“ duomenų bazės našumo analizatorius: Našumo ir atsarginių kopijų stebėjimas
- Idera SQL diagnostikaostIC vadybininkas: Atsarginių kopijų patvirtinimas ir įspėjimai
14.4 Atsarginės būsenos patikrinimai
Sukurkite sveikatos patikrinimo procedūrą:
-- Backup health check procedure
CREATE PROCEDURE sp_BackupHealthCheck
AS
BEGIN
-- Check for databases without recent full backup
SELECT
'Missing Recent Full Backup' AS issue,
d.name AS database_name,
ISNULL(CAST(MAX(bs.backup_finish_date) AS VARCHAR), 'Never') AS last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs
ON d.name = bs.database_name AND bs.type = 'D'
WHERE d.database_id > 4
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE()) OR MAX(bs.backup_finish_date) IS NULL; -- Check for failed backup jobs SELECT 'Failed Backup Job' AS issue, j.name AS job_name, jh.run_date, jh.run_time, jh.message FROM msdb.dbo.sysjobs j INNER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id WHERE jh.run_status = 0 -- Failed AND jh.step_id = 0 AND jh.run_date >= CONVERT(INT, CONVERT(VARCHAR, GETDATE()-7, 112))
AND j.name LIKE '%backup%';
END
GO
15. SQL Server Atsarginių kopijų DUK
15.1 Kaip dažnai turėčiau kurti atsargines kopijas SQL Server?
Atsarginių kopijų kūrimo dažnumas priklauso nuo jūsų atkūrimo taško tikslo (RPO):
- Svarbios gamybos duomenų bazės: Visas savaitinis, diferencinis kasdienis, žurnalas kas 15–30 minučių
- Standartinės gamybos duomenų bazės: Pilnas savaitinis, diferencialinis kasdienis, žurnalas kas 1–2 valandas
- Kūrimo duomenų bazės: Visą dieną arba savaitę
- Tik skaitymui skirtos duomenų bazės: Pilna po kiekvieno duomenų pakeitimo
15.2 Kuo skiriasi visiškas ir diferencinis atsarginių kopijų kūrimas?
Pilna atsarginė kopija kopijuoja visą duomenų bazę, o diferencinė atsarginė kopija fiksuoja tik pakeitimus nuo paskutinės pilnos atsarginės kopijos. Diferencinės atsarginės kopijos yra mažesnės ir greitesnės, tačiau joms atkurti reikalinga bazinė pilna atsarginė kopija.
15.3 Ar galiu sukurti atsarginę kopiją SQL Server Kol jis veikia?
Taip, SQL Server palaiko atsargines kopijas internetu. Vartotojai gali tęsti darbą atsarginių kopijų kūrimo metu. SQL Server naudoja savo operacijų žurnalą nuoseklumui palaikyti, užtikrindamas, kad atsarginės kopijos galiotų net ir atliekant tuo pačiu metu atliekamus pakeitimus.
15.4 Kiek laiko trunka SQL Server Atsarginė kopija?
Atsarginės kopijos trukmė priklauso nuo:
- Duomenų bazės dydis: Didesnės duomenų bazės užtrunka ilgiau
- Atsarginės kopijos tipas: Ilgiausiai užtrunka pilnų atsarginių kopijų kūrimas
- Suspaudimas: Gali padidinti procesoriaus laiką, bet sutrumpinti bendrą trukmę
- Saugojimo greitis: SSD diskai yra žymiai greitesni nei HDD
- Serverio apkrova: Didesnis aktyvumas lėtina atsarginių kopijų kūrimą
Tipiniai diapazonai: 10 GB duomenų bazės atsarginė kopija, naudojant suspaudimą šiuolaikinėje įrangoje, gali būti sukurta per 5–15 minučių.
15.5 Kur turėčiau laikyti SQL Server Atsarginės kopijos?
Geriausia praktika: laikykitės 3-2-1 taisyklės:
- 3 jūsų duomenų kopijos
- 2 skirtingų tipų saugyklos (pvz., diskas ir juosta / debesis)
- 1 kopija iš kitos svetainės
Rekomenduojamos vietos:
- Vietinis diskas greitam atkūrimui
- Tinklo saugykla centralizuotam valdymui
- Debesijos saugykla („Azure“, AWS), skirta atkurti duomenis po nelaimių
15.6 Kas yra .bak failo plėtinys?
.bak plėtinys yra numatytasis failo plėtinys, skirtas SQL Server atsarginių kopijų failus. Tai įprasta, o ne reikalavimas – SQL Server Atsarginės kopijos veikia su bet kokiu failų plėtiniu. Tačiau naudojant .bak, atsarginių kopijų failus lengva atpažinti ir tai yra standartinė pramonės praktika.
15.7 Kaip sukurti atsarginę kopiją SQL Server į tinklo diską?
Norėdami sukurti atsarginę kopiją tinklo diske:
- Užtikrinti SQL Server Paslaugos paskyra turi rašymo teises tinklo bendrinamame aplanke
- Atsarginės kopijos komandoje naudokite UNC kelią:
\\ServerName\ShareName\BackupFile.bak - Prieš planuodami automatines atsargines kopijas, patikrinkite ryšį
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO
15.8 Ar galiu suspausti? SQL Server Atsarginės kopijos?
Taip, SQL Server palaiko vietinį atsarginių kopijų glaudinimą („Enterprise Edition“ arba „Standard Edition“)tarTing SQL Server 2016 SP1). Glaudinimas paprastai sumažina atsarginės kopijos dydį 50–70 % ir dažnai sutrumpina atsarginės kopijos kūrimo laiką, sumažindamas įvesties/išvesties kiekį, nors ir padidina procesoriaus apkrovą.
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO
16. Išvada
16.1 pagrindiniai dalykai
Veiksmingas SQL Server Atsarginių kopijų kūrimo strategijos apsaugo jūsų duomenis ir užtikrina verslo tęstinumą. Atminkite šiuos svarbius dalykus:
- Supraskite atsarginių kopijų tipus: Pasirinkite tinkamus atsarginių kopijų tipus (pilną, diferencialinę, operacijų žurnalo) pagal savo atkūrimo poreikius
- Pasirinkite tinkamą atkūrimo modelį: Visiškas svarbių duomenų atkūrimas, paprastas kūrimo duomenų bazėms
- Įdiegti atsarginių kopijų kūrimo tvarkaraštį: Reguliarios pilnos atsarginės kopijos kartu su diferencinėmis ir žurnalų atsarginėmis kopijomis sumažina duomenų praradimą
- Bandymo atkūrimo procedūros: Atsarginės kopijos vertingos tik tuo atveju, jei jas galima sėkmingai atkurti
- Automatizuoti ir stebėti: naudojimas SQL Server Agentas, priežiūros planai ir stebėjimo įrankiai
- Saugios atsarginės kopijos: Šifruokite neskelbtinus duomenis ir kontroliuokite prieigą prie atsarginių kopijų failų
- Saugoti ne vietoje esančias kopijas: Apsaugokite nuo visoje vietoje esančių nelaimių naudodami debesies arba nuotolinę saugyklą
- Viską dokumentuoti: Aiškiai dokumentuokite atsarginių kopijų kūrimo ir atkūrimo procedūras
16.2 Kiti žingsniai ir ištekliai
Norėdami pagerinti savo SQL Server atsarginės kopijos įgyvendinimas:
- Įvertinkite savo dabartinę atsarginių kopijų kūrimo strategiją pagal geriausią praktiką
- Apskaičiuokite savo RTO ir RPO reikalavimus
- Testavimo atkūrimo procedūros negamybinėse sistemose
- Reguliariai peržiūrėkite ir atnaujinkite atsarginių kopijų planavimo tvarkaraščius
- Įdiegti automatizuotą stebėjimą ir įspėjimus
- Apmokykite komandos narius atkūrimo procedūrų
Papildomi resursai:
- "Microsoft" SQL Server Dokumentacija: Oficialios atsarginių kopijų kūrimo ir atkūrimo instrukcijos
- SQL Server atsarginių kopijų bendruomenės forumai: dalinkitės patirtimi ir sprendimais
- Profesionalūs sertifikatai: „Microsoft“ sertifikuotas: „Azure“ duomenų bazių administratoriaus partneris
16.3 Rekomenduojami įrankiai ir sprendimai
Remiantis skirtingais scenarijais:
Mažos įmonės:
- Gimtasis SQL Server atsarginė kopija su suplanuotu režimu SQL Server Agento darbo pasiūlymai
- SQLBackupAndFTP, skirtas integracijai į debesį
- „Azure“ atsarginė kopija SQL Server
Vidutinės įmonės:
- SQL Server Priežiūros planai
- Trečiųjų šalių įrankiai, tokie kaip „Redgate SQL Backup Pro“
- „Veeam“ atsarginė kopija SQL Server
Didelės įmonės:
- „Quest LiteSpeed“ maksimaliam suspaudimui
- „Commvault“ arba „Veritas NetBackup“, skirta įmonės atsarginių kopijų valdymui
- Visada įjungtos prieinamumo grupės, užtikrinančios aukštą prieinamumą
SQL Server Atsarginių kopijų kūrimas yra esminis duomenų bazės administravimo elementas. Tinkamai suplanavę, įdiegę ir išbandę duomenis, galite užtikrinti, kad jūsų duomenys išliktų apsaugoti ir prireikus juos būtų galima atkurti.tarįgyvendindami šią geriausią praktiką jau šiandien, kad užtikrintumėte savo SQL Server duomenų bazės.
Apie Autorius:
Yuan Sheng yra vyresnysis duomenų bazių administratorius (DBA), turintis daugiau nei 10 metų patirtį SQL Server aplinkose ir įmonių duomenų bazių valdyme. Jis sėkmingai išsprendė šimtus duomenų bazių atkūrimo scenarijų finansinių paslaugų, sveikatos priežiūros ir gamybos organizacijose.
Yuan specializuojasi SQL Server duomenų bazių atkūrimas, didelio prieinamumo sprendimai ir našumo optimizavimas. Jo didelė praktinė patirtis apima kelių terabaitų duomenų bazių valdymą, „Always On Availability Groups“ diegimą ir automatizuotų atsarginių kopijų kūrimo bei atkūrimo strategijų, skirtų kritiškai svarbioms verslo sistemoms, kūrimą.
Pasitelkdamas savo technines žinias ir praktinį požiūrį, Yuanas daugiausia dėmesio skiria išsamių vadovų, padedančių duomenų bazių administratoriams ir IT specialistams spręsti sudėtingas problemas, kūrimui. SQL Server efektyviai meta iššūkius. Jis neatsilieka nuo naujausių žinių SQL Server leidimus ir besivystančias „Microsoft“ duomenų bazių technologijas, reguliariai testuodamas atkūrimo scenarijus, siekdamas užtikrinti, kad jo rekomendacijos atitiktų geriausią realią praktiką.
Turite klausimų apie SQL Server atkūrimo ar reikia papildomų duomenų bazės trikčių šalinimo nurodymų? Yuan mielai atsiliepimai ir pasiūlymai už šių techninių išteklių tobulinimą.











