Kopīgot tūlīt:
Saturs slēpt

rezerves SQL Server datubāze ar mūsu pilnīgo 2025. gada rokasgrāmatu. Soli pa solim sniegtas instrukcijas un labākā prakse visiem prasmju līmeņiem.

1. Ievads SQL Server rezerves

1.1 Kas ir SQL Server Rezerves kopija?

SQL Server Dublēšana ir datubāzes failu kopiju izveides process, lai aizsargātu pret datu zudumu. Dublēšana fiksē datubāzes stāvokli noteiktā laika brīdī, ļaujot atjaunot datus aparatūras kļūmju, cilvēcisku kļūdu vai katastrofu gadījumā.

SQL Server pēc noklusējuma saglabā dublējumkopijas .bak failos, kas satur visus datubāzes objektus, tostarp tabulas, saglabātās procedūras, skatus, indeksus un darījumu žurnālus.

1.2 Kāpēc? SQL Server Rezerves kopēšana ir kritiski svarīga

Datu bāzes dublējumkopijas kalpo kā jūsu pēdējā aizsardzības līnija pret datu zudumu. Bez atbilstošām dublējumkopijām jūsu organizācija riskē ar:

  • Neatgriezenisks datu zudums aparatūras kļūmju vai bojājumu dēļ
  • Pagarināts dīkstāves laiks atgūšanas mēģinājumu laikā
  • Uzņēmējdarbības traucējumi un ieņēmumu zaudējumi
  • Atbilstības pārkāpumi ja datus nevar atgūt
  • Reputācijas kaitējums no pakalpojumu pārtraukumiem

regulārs SQL Server Rezerves kopijas nodrošina uzņēmējdarbības nepārtrauktību un atbilst datu aizsardzības normatīvajām prasībām.

1.3 Biežākie datu zuduma scenāriji

Izpratne par datu zuduma gadījumiem palīdz izstrādāt efektīvu dublēšanas stratēģiju:

  • Aparatūras kļūmes: Disku avārijas, serveru darbības traucējumi vai krātuves sistēmas kļūmes
  • Cilvēciskās kļūdas: Nejauša dzēšana, nepareizi atjauninājumi vai izmestas tabulas
  • Programmatūras problēmas: Lietojumprogrammu kļūdas, bojāti atjauninājumi vai sistēmas avārijas
  • Drošības pārkāpumi: Izspiedējvīrusu uzbrukumi, ļaunprātīga dzēšana vai neatļauta piekļuve
  • Dabas katastrofas: Ugunsgrēki, plūdi vai strāvas padeves pārtraukumi, kas ietekmē datu centrus

2. Saprašana SQL Server Dublēšanas veidi

SQL Server atbalsta vairākus dublējuma veidus, katrs no tiem atbilst atšķirīgām atkopšanas vajadzībām un krātuves prasībām.

2.1 Pilnīga dublēšana

Pilna dublējumkopija izveido pilnīgu visas datubāzes kopiju, tostarp visus datu failus un daļu no atkopšanai nepieciešamā transakciju žurnāla.

2.1.1 Kad izmantot pilnu dublējumu

Pilnas rezerves kopijas ir ideāli piemērotas:

  • Citu dublējuma veidu bāzes līnijas izveide
  • Mazas un vidējas datubāzes, kurās dublēšanas laiks ir pieņemams
  • Nedēļas vai mēneša dublēšanas grafiki
  • Datubāzes ar retām izmaiņām

2.1.2 Pilnīgas dublēšanas priekšrocības un ierobežojumi

Priekšrocības:

  • Vienkāršākais atjaunošanas process — vienā failā ir viss
  • Autonoms un neatkarīgs no citiem dublējumiem
  • Ātrākais atkopšanas laiks pilnīgai datubāzes atjaunošanai

Ierobežojumi:

  • Nepieciešama ievērojama uzglabāšanas vieta
  • Ilgāks dublēšanas laiks lielām datubāzēm
  • Lielāks resursu patēriņš dublēšanas darbību laikā

2.2 Diferenciālā dublēšana

Diferenciālā dublēšana ietver tikai datu izmaiņas kopš pēdējās pilnās dublēšanas, tādējādi samazinot dublēšanas laiku un krātuves prasības.

2.2.1 Kā darbojas diferenciālā dublēšana

Diferenciālās rezerves kopijas izseko izmaiņas, izmantojot mainītos apjomus. Atjaunojot, SQL Server vispirms lieto pēdējo pilno dublējumu, pēc tam lieto most nesen veiktā diferenciālā dublēšana.

2.2.2 Pilna un diferenciālā dublēšana

Pilna vai diferenciālā dublēšana

Aspekts Pilna dublēšana Diferenciālā dublēšana
Izmēri Pilnīga datubāze Izmaiņas tikai kopš pēdējās pilnās dublējuma
Dublēšanas laiks Garākā Ātrāk nekā pilns
Atjaunošanas process Viena faila atjaunošana Nepieciešams pilns + diferenciālis
Nepieciešama krātuve Most telpa Sākumā mazāk vietas, laika gaitā tā palielinās

2.3 Darījumu žurnāla dublēšana

Darījumu žurnāla dublējumi ietver visus darījumus kopš pēdējās žurnāla dublējuma, nodrošinot atkopšanu konkrētā laika punktā.

2.3.1 Darījumu žurnālu izpratne

Transakciju žurnāls reģistrē visas jūsu datubāzes izmaiņas. Žurnāla dublējumi saīsina žurnāla neaktīvo daļu, neļaujot tam bezgalīgi augt un piepildīt disku.

2.3.2 Atjaunošana noteiktā laika punktā

Darījumu žurnāla dublējumkopijas ļauj atjaunot datubāzi jebkurā konkrētā brīdī žurnāla dublējumkopijā. Tas ir ļoti svarīgi, lai atgūtu datus pēc nejaušas datu modificēšanas vai dzēšanas.

Lai veiktu atkopšanu noteiktā laika posmā, jums ir nepieciešams:

  • Pēdējā pilnā dublējumkopija
  • Most nesen veikts diferenciālais dublējums (pēc izvēles)
  • Visas darījumu žurnāla dublējumkopijas no pilnās/diferenciālās dublējumkopijas uz jūsu tardabūt laiku

2.4 Astes žurnāla dublēšana

Datu žurnālu dublējumkopijas ietver žurnālu ierakstus, kas vēl nav dublēti, tādējādi novēršot datu zudumu un saglabājot neskartu žurnālu ķēdi. Pirms datu atkopšanas SQL Server Lai atjaunotu datubāzi līdz tās jaunākajam laika punktam, ir jādublē tās darījumu žurnāla beigu daļa. Žurnāla beigu daļas dublējums ir pēdējais interesējošais dublējums datubāzes atkopšanas plānā.

Diagramma, kurā paskaidrotas astes žurnāla dublējumkopijas SQL Server.

Piezīme: Ne visiem atjaunošanas scenārijiem ir nepieciešama žurnāla astes dublējumkopija. Tā nav nepieciešama, ja atkopšanas punkts ir ietverts iepriekšējā žurnāla dublējumā. Žurnāla astes dublējumkopija nav nepieciešama arī tad, ja pārvietojat vai aizstājat (pārrakstāt) datubāzi un tā nav jāatjauno uz laika punktu pēc tās m.ost nesen veiktā dublēšana.

2.4.1 Kad nepieciešamas astes žurnāla dublējumkopijas

Tālāk norādītajos gadījumos ir aprakstīti gadījumi, kad jāveic astes žurnāla dublējums:

Tiešsaistes datubāzes atjaunošana: Ja datu bāze ir tiešsaistē un plānojat veikt datu bāzes atjaunošanas darbību, vispirms izveidojiet žurnāla beigu daļas dublējumu. Lai izvairītos no kļūdas tiešsaistes datu bāzē, dublējot, jāizmanto BACKUP Transact-SQL priekšraksta opcija WITH NORECOVERY. SQL Server datu bāze.

Bezsaistes datubāzes atkopšana: Ja datubāze ir bezsaistē un neizdodas starun jums ir jāatjauno datubāze, vispirms izveidojiet žurnāla daļas dublējumu. Tā kā šajā laikā nevar notikt nekādas transakcijas, opcijas WITH NORECOVERY izmantošana nav obligāta. Šajā scenārijā NORECOVERY būtībā ir tas pats, kas tikai kopēšanas transakciju žurnāla dublējums.

Bojātas datubāzes dublējums: Ja datubāze ir bojāta, mēģiniet izveidot žurnāla astes dublējumu, izmantojot BACKUP priekšraksta opciju WITH CONTINUE_AFTER_ERROR. Bojātā datubāzē žurnāla astes dublēšana var izdoties tikai tad, ja žurnāla faili nav bojāti, datubāze ir tādā stāvoklī, kas atbalsta žurnāla astes dublējumus, un datubāzē nav reģistrētu izmaiņu. Ja žurnāla astes dublējumu nevar izveidot, visas transakcijas, kas veiktas pēc jaunākās MS versijas, tiek saglabātas. SQL Server rezerves datubāze ir lost.

2.4.2 Galvenās opcijas astes žurnāla dublējumkopijām

AR NORECOVERY: Izmantojiet KOPĀ AR NORECOVERY, ja dublējat tiešsaistes datubāzes žurnāla daļu, kuru plānojat vēlāk atjaunot. NORECOVERY pārceļ datubāzi bezsaistes režīmā. Varat arī dublēt SQL Server Bezsaistes datubāzes astes žurnāls. Ja vēlaties atstāt datubāzi bezsaistē, izmantojiet WITH NORECOVERY. Ņemiet vērā, ka žurnāls tiks saīsināts, ja vien nenorādāt opciju COPY_ONLY vai NO_TRUNCATE.

AR TURPINĀŠANU_PĒC_KĻŪDAS: Izmantojiet CONTINUE_AFTER_ERROR tikai tad, ja dublējat bojātas datubāzes beigu daļu. Dublējot bojātas datubāzes žurnāla beigu daļu, daži no metadatiem, kas parasti tiek tverti žurnāla dublējumos, var nebūt pieejami.

2.5 Tikai kopēšanai paredzēta dublēšana

Tikai kopēšanai paredzētas dublējumkopijas izveido neatkarīgu dublējumkopiju, neietekmējot parasto dublēšanas secību. Tās nepārtrauc diferenciālās dublēšanas ķēdes vai darījumu žurnāla nepārtrauktību.

Izmantojiet tikai kopēšanai paredzētas rezerves kopijas šādiem mērķiem:

  • Testa vai izstrādes datubāzes kopiju izveide
  • Ad-hoc dublējumkopijas, neietekmējot plānotās dublējumkopijas
  • Rezerves kopija pirms lielām izmaiņām vai testēšanas

2.6 Failu un failu grupu dublēšana

Failu un failu grupu dublējumkopijas tariegūt konkrētus datubāzes failus vai failu grupas, nevis visu datubāzi. Šī pieeja labi darbojas ļoti lielām datubāzēm, kur visu datu dublēšana aizņem pārāk ilgu laiku.

Ieguvumi ietver:

  • Ātrākas dublēšanas darbības lielām datubāzēm
  • Vairāku failu grupu paralēla dublēšana
  • Granulētas atkopšanas iespējas
  • Optimizēti dublēšanas grafiki tikai lasāmām failu grupām

2.7 Daļēja dublēšana

Daļējās dublējumos tiek iekļauti visi dati primārajā failu grupā un visās lasāmajās/rakstāmajās failu grupās, izņemot tikai lasāmās failu grupas. Tas samazina dublēšanas lielumu un laiku datubāzēm ar statiskiem vēsturiskiem datiem, kas tiek glabāti tikai lasāmās failu grupās.

3. SQL Server Atkopšanas modeļi

SQL Server Atkopšanas modeļi nosaka, kādi dublējumu veidi ir pieejami un kā tiek pārvaldīti darījumu žurnāli.

3.1 Vienkāršs atkopšanas modelis

3.1.1 Raksturojums un lietošanas gadījumi

Vienkāršā atkopšana automātiski saīsina darījumu žurnālu pēc katra kontrolpunkta, tādējādi atbrīvojot vietu bez nepieciešamības veidot žurnāla dublējumkopijas.

Labākais:

  • Izstrādes un testēšanas datubāzes
  • Datu bāzes, kurās datu zudums starp dublējumkopijām ir pieņemams
  • Datu noliktavas ar atkārtoti izpildāmiem ETL procesiem
  • Tikai lasāmas vai atskaišu datubāzes

3.1.2 Pieejamās dublēšanas opcijas

Vienkārša atkopšana atbalsta:

  • Pilnas dublējumkopijas
  • Diferenciālie dublējumi
  • Failu un failu grupu dublējumkopijas
  • Tikai kopēšanai paredzētas rezerves kopijas

Darījumu žurnāla dublējumkopijas ir nav pieejams vienkāršā atveseļošanās modelī.

3.2 Pilnīgas atveseļošanās modelis

3.2.1. Funkcijas un priekšrocības

Pilnīga atkopšana reģistrē visus darījumus un saglabā žurnāla ierakstus, līdz tos dublējat. Tas ļauj pilnībā atgūt datus jebkurā laikā darījumu žurnāla dublējuma ietvaros.

Galvenās priekšrocības:

  • Minimāls datu zuduma potenciāls
  • Atjaunošanas iespēja noteiktā laika punktā
  • Atbalsta žurnālu nosūtīšanu un datubāzes spoguļošanu
  • Maksimāla atgūšanas elastība

3.2.2 Darījumu žurnāla pārvaldība

Pilnīgas atkopšanas gadījumā jums ir jāveic regulāras darījumu žurnāla dublējumkopijas, lai:

  • Neļaujiet darījumu žurnālam aizpildīt diska vietu
  • Uzturēt nepārtrauktu rezerves ķēdi
  • Iespējot tūlītēju atkopšanu
  • Kontrolēt žurnālfailu pieaugumu

Tipisks dublēšanas grafiks: pilnas dublējumkopijas katru nedēļu, diferenciālās dublējumkopijas katru dienu, žurnālu dublējumkopijas ik pēc 15–30 minūtēm.

3.3 Masveida reģistrēšanas atkopšanas modelis

3.3.1 Kad izmantot masveida reģistrēšanu

Masveida reģistrēšanas atkopšana minimāli reģistrē tādas masveida darbības kā MASAS IEVIETOŠANA, ATLASE INTO un indeksa atjaunošana, vienlaikus saglabājot pilnīgu reģistrēšanu regulārajām transakcijām.

Izmantojiet masveida reģistrēšanas atkopšanu, ja:

  • Lielapjoma importa operāciju veikšana
  • Indeksu atjaunošana lielās tabulās
  • Darbību veikšana, kurām nepieciešama minimāla reģistrēšana
  • Nepieciešamība samazināt darījumu žurnāla lielumu noteiktu darbību laikā

3.3.2. Ierobežojumi un apsvērumi

Svarīgi ierobežojumi:

  • Atjaunošana noteiktā laika punktā nav pieejama masveida darbību laikā
  • Žurnālu dublējumkopijas ir lielākas, ja tiek veiktas lielapjoma darbības
  • Pēc nepieciešamības jāpārslēdzas starp pilnu un masveida reģistrēšanu

3.4 Pareizā atveseļošanās modeļa izvēle

Izvēlieties atkopšanas modeli, pamatojoties uz uzņēmuma vajadzībām:

Atkopšanas modelis Datu zaudēšanas risks Atgūšana noteiktā laikā Best For
Vienkāršs Izmaiņas kopš pēdējās dublējuma Izstrāde/testēšana, pieņemams datu zudums
pilns Minimāli (parasti minūtes) Ražošanas datubāzes, kritiski svarīgi dati
Lielapjoma reģistrēts Izmaiņas kopš pēdējās žurnāla dublējuma Ierobežots beztaras operāciju laikā Laiksrarlietošana beztaras operāciju laikā

4. rezerves SQL Server Datu bāze, kas izmanto SSMS

4.1 Priekšnosacījumi un sagatavošanās

Pirms dublēšanas SQL Server datubāzē, nodrošiniet:

  • Jums ir atbilstošas ​​atļaujas (db_owner vai BACKUP DATABASE atļauja).
  • Pietiekami daudz vietas diskā dublējuma failam
  • SQL Server Instalēta pārvaldības studija (SSMS)
  • Tīkla ceļi ir pieejami, ja tiek veikta dublēšana tīkla atrašanās vietās

4.2 Soli pa solim: pilnīga dublēšana ar SSMS

Veiciet šīs darbības, lai izveidotu pilnu sava tālruņa dublējumu SQL Server datubāze, izmantojot SSMS.

4.2.1 Atvēršana SQL Server Vadības studija

  1. Sākt SQL Server Vadības studija
  2. Ievadiet sava servera nosaukumu laukā Servera nosaukums lauks
  3. Izvēlieties savu autentifikācijas metodi
  4. Noklikšķiniet Meklēt speciālistu

4.2.2 Datu bāzes un dublēšanas opciju izvēle

  1. In Objektu pētnieks, izvērsiet Datubāzes mezgls
  2. Ar peles labo pogu noklikšķiniet uz datubāzes, kuru vēlaties dublēt
  3. Izvēlēties Uzdevumi -> Atbalstīt
    Stardublēšanas uzdevums SQL Server datubāzē SQL Server Vadības studija.
  4. Iekš Dublējiet datu bāzi logā pārbaudiet datubāzes nosaukumu
  5. Izvēlēties pilns jo Rezerves veids
    Izveidojiet pilnu faila dublējumu SQL Server datubāzē SQL Server Vadības studija.

4.2.3 Rezerves kopijas galamērķa konfigurēšana

  1. Zem galamērķisklikšķis Izņemt lai notīrītu noklusējuma ceļu (ja nepieciešams)
  2. Noklikšķiniet Pievienot lai norādītu jaunu dublējuma atrašanās vietu
  3. Ievadiet faila ceļu un nosaukumu ar bak pagarināšana
  4. Noklikšķiniet OK lai apstiprinātu galamērķi

Iestatiet dublējuma galamērķi sadaļā SQL Server Vadības studija.

4.2.4 Advanced Backup Settings

  1. Noklikšķiniet Multivides opcijas kreisajā panelī
  2. Izvēlieties rezerves opcijas:
    • Pārrakstīt visus esošos dublējumu komplektus – Aizstāj esošās dublējumkopijas
    • Pievienot esošajam dublējumu komplektam – Pievieno esošajam dublējuma failam

    Iestatiet dublēšanas datu nesēja opcijas sadaļā SQL Server Vadības studija.

  3. Noklikšķiniet Rezerves opcijas kreisajā panelī
  4. Konfigurējiet papildu iestatījumus:
    • Saspiest dublējumu – Samazina dublējuma faila lielumu
    • Šifrēt dublējumu – Aizsargā sensitīvus datus
    • Pārbaudiet dublējumu, kad tas ir pabeigts – Pārbauda dublējuma integritāti

    Iestatiet dublēšanas opcijas sadaļā SQL Server Vadības studija.

4.2.5 Rezerves kopijas izveide

  1. Pārskatiet visus iestatījumus sadaļā Dublējiet datu bāzi logs
  2. Noklikšķiniet OK uz stardublēšanas process
  3. Pagaidiet, līdz dublēšana ir pabeigta
  4. Kad dublēšana ir pabeigta, tiek parādīts veiksmīgs ziņojums
  5. Noklikšķiniet OK lai aizvērtu apstiprinājuma dialoglodziņu

4.3 Diferenciālās dublēšanas izveide, izmantojot SSMS

Lai izveidotu diferenciālo dublējumu, veiciet tās pašas darbības kā pilnas dublējuma gadījumā, bet atlasiet Diferenciālis kā 4.2.2. darbībā norādīto dublējuma veidu. Atcerieties, ka diferenciālajām dublējumkopijām ir nepieciešama iepriekšēja pilna dublējumkopija kā pamats.

Izveidojiet diferenciālo dublējumu no SQL Server datubāzē SQL Server Vadības studija.

4.4 Darījumu žurnāla dublējuma izveide, izmantojot SSMS

Transakciju žurnāla dublējumkopijas ir pieejamas tikai datubāzēm, kas izmanto pilnas vai masveida reģistrēšanas atkopšanas modeļus.

  1. Ar peles labo pogu noklikšķiniet uz datubāzes Objektu pētnieks
  2. Izvēlēties Uzdevumi -> Atbalstīt
  3. izvēlēties Darījumu žurnāls kā rezerves kopēšanas veidu
  4. Konfigurējiet galamērķi un opcijas pēc nepieciešamības
  5. Noklikšķiniet OK lai izveidotu žurnāla dublējumu

Izveidojiet darījumu žurnāla dublējumu SQL Server datubāzē SQL Server Vadības studija.

4.5 Tikai kopēšanai paredzētas dublējuma izveide, izmantojot SSMS

Tikai kopēšanai paredzētas dublējumkopijas netraucē jūsu regulāro dublēšanas secību.

  1. Izpildiet darbības, lai izveidotu pilnu dublējumu
  2. Iekš Rezerves opcijas lappuse
  3. Pārbaudīt Tikai kopēšanai paredzēta dublēšana izvēle
  4. Pabeidziet dublēšanas procesu kā parasti

Izveidojiet tikai kopēšanai paredzētu dublējumu SQL Server datubāzē SQL Server Vadības studija.

5. rezerves SQL Server Datu bāze, kas izmanto T-SQL

5.1 Pamata dublējuma datu bāzes sintakse

T-SQL BACKUP DATABASE komanda nodrošina programmatisku kontroli pār SQL Server dublējumkopijas.

BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;

5.2 Pilnas T-SQL komandu dublēšanas

5.2.1 Vienkāršs pilnīgas dublēšanas skripts

Izveidojiet pilnu pamata dublējumu ar minimālām opcijām:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO

5.2.2 Pilnīga dublēšana ar opcijām

Pievienojiet aprakstošu informāciju un formatēšanas opcijas:

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

Iespējas paskaidrotas:

  • FORMĀTS – Izveido jaunu rezerves kopu
  • TAJĀ – Pārraksta esošo dublējuma failu
  • NAME – Piešķir rezerves kopas nosaukumu
  • APRAKSTS – Pievieno aprakstošu tekstu
  • STATS – Parāda progresu ik pēc 10%

5.3 Diferenciālās dublēšanas T-SQL komandas

Diferenciālās rezerves kopijas izmanto opciju DIFFERENTIAL:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
     INIT,
     NAME = 'AdventureWorks-Differential Backup',
     STATS = 10
GO

5.4 Darījumu žurnāla dublēšanas T-SQL komandas

Darījumu žurnāla dublējumkopijām izmantojiet BACKUP LOG:

BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
     NAME = 'AdventureWorks-Transaction Log Backup',
     STATS = 10
GO

5.5 Paplašinātas T-SQL dublēšanas opcijas

5.5.1 Dublēšana vairākos failos

Sadaliet dublējumu vairākos failos, lai nodrošinātu ātrāku veiktspēju:

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 Rezerves kopēšana ar saspiešanu

Samaziniet dublējuma faila lielumu un tīkla joslas platumu:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
     INIT,
     STATS = 10
GO

5.5.3 Dublēšana ar šifrēšanu

Aizsargājiet sensitīvus datus ar šifrēšanu:

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 Dublēšana ar paroles aizsardzību

Pievienot paroles aizsardzību (novecojusi, tā vietā izmantojiet šifrēšanu):

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
     INIT
GO

5.5.5 Spoguļotās dublējumkopijas

Izveidojiet vienlaicīgas kopijas dažādās vietās:

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 dublēšanas piemēri un skripti

Pilnīgs dublējuma skripts ar kļūdu apstrādi:

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. rezerves SQL Server Datu bāze, izmantojot PowerShell

6.1 PowerShell dublēšanas cmdlet

SQL Server PowerShell modulis nodrošina cmdlet dublēšanas automatizācijai:

  • Backup-SqlDatabase – Izveido datubāzes dublējumkopijas
  • Atjaunot SQL datu bāzi – Atjauno datubāzes dublējumkopijas
  • Get-SqlDatabase – Iegūst datubāzes informāciju

Importēt SQL Server modulis:

Import-Module SqlServer

6.2 Rezerves kopiju skriptu izveide, izmantojot PowerShell

Pamata PowerShell dublēšanas komanda:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks.bak" `
                    -BackupAction Database `
                    -CompressionOption On

Diferenciālās dublēšanas piemērs:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
                    -BackupAction Database `
                    -Incremental

Darījumu žurnāla dublējums:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Log.trn" `
                    -BackupAction Log

6.3 Dublējumu automatizācija, izmantojot PowerShell

Izveidojiet automatizētu dublēšanas skriptu vairākām datubāzēm:

# 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. rezerves SQL Server Datu bāze, izmantojot komandrindu

SQL Server nodrošina komandrindas utilītas, kas ļauj jums dublēt SQL Server datubāzi, neizmantojot SSMS vai grafiskās saskarnes. Šie rīki ir būtiski automatizācijas, skriptēšanas un attālās administrēšanas scenārijiem.

7.1 Izmantojiet SQLCMD dublējuma datubāzi

SQLCMD ir moderna komandrindas utilīta, kas paredzēta SQL Server kas aizstāja OSQL. Tas nodrošina uzlabotu funkcionalitāti un ir ieteicamais rīks T-SQL komandu izpildei no komandrindas.

7.1.1 SQLCMD pamata sintakse

sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: Norāda SQL Server instances nosaukums
  • -d: Norāda datubāzes nosaukumu
  • -J: Izpilda vaicājumu un iziet no tā
  • -UN: Izmanto Windows autentifikāciju
  • -U: Norāda SQL Server pieteikšanās lietotājvārds
  • -P: Norāda paroli SQL Server Pieslēgties

7.1.2 Rezerves kopijas izveide ar SQLCMD

Lai dublētu SQL Server Izmantojot SQLCMD, veiciet tālāk norādītās darbības.

  1. atvērts Command Prompt or PowerShell
  2. Virzīties uz SQL Server rīku direktorijs (parasti tiek pievienots PATH instalēšanas laikā)
  3. Izpildiet SQLCMD dublējuma datubāzes komandu ar atbilstošiem parametriem
  4. Pārliecinieties, vai dublējuma fails ir veiksmīgi izveidots

Pilnas dublēšanas komandas piemērs, izmantojot Windows autentifikāciju:

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

Piemērs, izmantojot SQL Server Autentifikācija:

sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

Diferenciālās dublējuma izveide ar SQLCMD

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"

Transakciju žurnāla dublējuma izveide, izmantojot SQLCMD

sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"

7.2 Izmantojiet OSQL dublējuma datubāzi

OSQL ir mantota komandrindas utilīta, kas paredzēta SQL ServerLai gan Microsoft iesaka izmantot SQLCMD, OSQL joprojām ir pieejams atpakaļsaderības nodrošināšanai ar vecākiem skriptiem un sistēmām.

7.2.1 OSQL pamatsintakse

OSQL sintakse ir līdzīga SQLCMD sintaksei:

osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: SQL Server instances nosaukums
  • -d: Datu bāzes nosaukums
  • -J: Izpilda vaicājumu un iziet
  • -UN: Izmanto uzticamu savienojumu (Windows autentifikācija)
  • -U: Pieteikšanās lietotājvārds
  • -P: Pieslēgšanās parole

7.2.2 Rezerves kopijas izveide, izmantojot OSQL

Lai veiktu OSQL dublējuma datubāzes darbības:

  1. atvērts Command Prompt
  2. Pārliecinieties, vai jūsu ierīcē ir pieejams OSQL. SQL Server uzstādīšana
  3. Izpildiet OSQL dublēšanas komandu

Pilnas dublējuma piemērs:

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"

Diferenciālās dublēšanas piemērs:

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"

8. Trešās puses SQL Server Dublēšanas rīki

Kamēr SQL Server ietver vietējās dublēšanas iespējas, trešo pušu rīki piedāvā uzlabotas funkcijas, automatizāciju un uzņēmuma līmeņa pārvaldību organizācijām ar sarežģītām prasībām. Šie risinājumi nodrošina uzlabotu saspiešanu, centralizētu pārvaldību un racionalizētas darbplūsmas dublēšanai. SQL Server datubāzes vairākās vidēs.

8.1 Veeam dublējums priekš SQL Server

Veeam piedāvā visaptverošus datu aizsardzības risinājumus, kas īpaši izstrādāti dublēšanai SQL Server datubāzes ar minimālu ietekmi uz ražošanas sistēmām.

Galvenās funkcijas:

  • Lietojumprogrammu apzinoša apstrāde SQL Server dublējuma konsekvence
  • Darījumu žurnāla dublēšana un pārvaldība
  • Atjaunošana noteiktā laika punktā ar detalizētām atjaunošanas iespējām
  • Integrācija ar Veeam Backup & Replication vienotai datu aizsardzībai
  • Automatizēta dublējuma verifikācija un validācija
  • Atbalsts vienmēr pieejamajām pieejamības grupām
  • VM līmenis un lietojumprogrammu līmenis SQL Server rezerves iespējas

8.2 Barracuda dublējums SQL Server

Barracuda nodrošina mākonī integrētus dublēšanas risinājumus ar vienkāršotu pārvaldību Microsoft. SQL Server dublēšanas datubāzes darbības.

Galvenās funkcijas:

  • Automatizēta SQL Server rezerves plānošana
  • Iebūvēta mākoņa replikācija uz Barracuda mākoņkrātuvi
  • Globālā deduplikācija un saspiešana
  • Tūlītējas lokālas atkopšanas iespējas
  • Tīmekļa pārvaldības konsole
  • Atbalsts pilnām, diferenciālām un darījumu žurnālu dublējumkopijām
  • Izspiedējvīrusu aizsardzība ar nemaināmām dublējumkopijām

8.3 Veritas NetBackup priekš SQL Server

Veritas NetBackup ir uzņēmuma līmeņa dublēšanas platforma, kas nodrošina visaptverošu aizsardzību SQL Server datubāzes sarežģītās IT vidēs.

Galvenās funkcijas:

  • Uzņēmuma mēroga dublējumu pārvaldība tūkstošiem SQL Server gadījumi
  • Uzlaboti deduplikācijas un saspiešanas algoritmi
  • Elastīgas dublēšanas politikas un plānošana
  • Atbalsts visiem SQL Server atveseļošanās modeļi
  • Integrācija ar lentes bibliotēkasrarun mākoņkrātuve
  • Datu bāzu, tabulu un objektu detalizēta atkopšana
  • Atbalsts vairākām platformām (Windows, Linux) SQL Server)
  • Automatizēta dublējuma dzīves cikla pārvaldība

8.4 Commvault pilnīga dublēšana un atkopšana SQL Server

Commvault nodrošina inteliģentu datu pārvaldību ar visaptverošu dublēšanu SQL Server iespējas un uzlabotas automatizācijas funkcijas.

Galvenās funkcijas:

  • Mākslīgā intelekta vadīta dublēšanas optimizācija un anomāliju noteikšana
  • Vienota platforma dublēšanai, atkopšanai un arhivēšanai
  • uzlabots SQL Server rezerves saspiešana (samazinājums līdz pat 90%)
  • Automatizēta katastrofu atkopšanas orķestrēšana
  • Tiešraides sinhronizācija gandrīz nulles RPO aizsardzībai
  • Atbalsts SQL Server lokālas, mākoņa un hibrīdas izvietošanas
  • IntelliSnap momentuzņēmumu dublēšanai
  • Visaptverošas atbilstības un e-atklāšanas iespējas

8.5. Kohēzijas datu aizsardzība SQL Server

Cohesity nodrošina nākamās paaudzes datu pārvaldību ar hiperkonverģētu infrastruktūru mūsdienīgai lietošanai SQL Server dublēšanas operācijas.

Galvenās funkcijas:

  • Tīmekļa mēroga arhitektūra vienkāršotai pārvaldībai
  • Tūlītējas masveida atjaunošanas iespējas SQL Server datu bāzes
  • Lietojumprogrammām konsekventi momentuzņēmumi
  • Globāla deduplikācija visās dublējumos
  • Vietējā mākoņa integrācija (AWS, Azure, Google Cloud)
  • Iebūvēti analītikas un uzraudzības informācijas paneļi
  • Datu bāzes klonēšanas un testēšanas iespējas
  • Izspiedējvīrusu aizsardzība ar nemaināmiem momentuzņēmumiem

8.6 Red Gate SQL dublēšanas programma Pro

Red Gate SQL Backup Pro ir specializēts rīks, kas paredzēts tikai optimizācijai SQL Server dublēšanas un atjaunošanas darbības ar izcilu saspiešanas spēju un veiktspēju.

Galvenās funkcijas:

  • Nozarē vadošie kompresijas koeficienti (līdz pat 95%)
  • Tīkla noturība dublēšanai SQL Server neuzticamu savienojumu gadījumā
  • Rezerves šifrēšana ar 256 bitu AES
  • Rezerves kopiju verifikācija un integritātes pārbaude
  • Detalizēta dublēšanas vēsture un pārskatu sniegšana
  • Integrācija ar SQL Server Vadības studija
  • Atbalsts dublēšanai tīkla atrašanās vietās un mākoņkrātuvē
  • Paralēla dublēšana un atjaunošana ātrākai darbībai

9. Kā atjaunot SQL Server Datubāze

9.1 Atjaunošanas procesa izpratne

Atjaunošana a SQL Server Datubāze atjauno datubāzi no dublējuma failiem. Atjaunošanas process nolasa dublējuma failu un atjauno datubāzi tās dublējuma stāvoklī.

Svarīgi apsvērumi:

  • Atjaunojot tiek pārrakstīta esošā datubāze
  • Atjaunošanas laikā lietotāji tiek atvienoti
  • Atjaunošanas procesā jāievēro dublēšanas secība (pilna, tad diferenciālā, tad žurnāli).
  • Datu bāze atjaunošanas darbības laikā nav pieejama

9.2 Pilnas dublējuma atjaunošana, izmantojot SSMS

Lai atjaunotu pilnu datubāzes dublējumu, veiciet šīs darbības.

9.2.1 Soli pa solim atjaunošanas process

  1. atvērts SQL Server Vadības studija un izveidojiet savienojumu ar savu serveri
  2. In Objektu pētnieks, ar peles labo pogu noklikšķiniet Datubāzes
  3. Izvēlēties Atjaunot datu bāzi
  4. Iekš avots sadaļā, izvēlieties Ierīce
  5. Noklikšķiniet ... poga, lai pārlūkotu dublējuma failus
  6. Noklikšķiniet Pievienot un dodieties uz savu .bak failu
  7. Atlasiet dublējuma failu un noklikšķiniet uz OK
  8. Iekš galamērķis sadaļā ievadiet datubāzes nosaukumu
  9. Pārskatiet dublējuma kopas, lai tās atjaunotu
  10. Noklikšķiniet OK uz start atjaunošana

9.2.2 Atjaunošanas opcijas un iestatījumi

Noklikšķiniet opcijas kreisajā panelī, lai konfigurētu:

  • Pārrakstīt esošo datubāzi (AR AIZSTĀŠANU) – Ļauj atjaunot, izmantojot esošo datubāzi
  • Saglabāt replikācijas iestatījumus (AR KEEP_REPLICATION) – Saglabā replikācijas konfigurāciju
  • Ierobežot piekļuvi atjaunotajai datubāzei (WITH RESTRICTED_USER) – Ierobežojumi post- atjaunot piekļuvi
  • Atveseļošanās stāvoklis – Izvēlieties starp ATJAUNOŠANU AR ATJAUNOŠANU vai BEZ ATJAUNOŠANAS

9.3 Diferenciālās dublēšanas atjaunošana

Diferenciālajai atjaunošanai ir nepieciešamas gan pilnas, gan diferenciālās dublējumkopijas:

  1. Vispirms atjaunojiet pilnu dublējumu, izmantojot NORECOVERY izvēle
  2. Pēc tam atjaunojiet diferenciālo dublējumu ar RECOVERY izvēle

T-SQL piemērs:

-- 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 Atjaunošana, izmantojot darījumu žurnāla dublējumkopijas

Lai atjaunotu noteiktā laika punktā, atjaunojiet šādā secībā:

  1. Atjaunojiet pilnu dublējumu, izmantojot NORECOVERY
  2. Atjaunot diferenciālo dublējumu, izmantojot NORECOVERY (ja pieejams)
  3. Atjaunojiet darījumu žurnāla dublējumus secībā, izmantojot NORECOVERY
  4. Atjaunojiet pēdējo žurnāla dublējumu, izmantojot 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 Atjaunošana noteiktā laika punktā

Atjaunot datubāzi noteiktā laika punktā, izmantojot STOPAT opciju:

-- 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 Tabulas atjaunošana

SQL Server neatbalsta tiešu atjaunošanu tabulas līmenī no dublējuma failiem. Tomēr joprojām pastāv daži risinājumi.

9.6.1 1. metode: datubāzes momentuzņēmumi (vislabāk profilaksei)

Datu bāzes momentuzņēmumi nodrošina ātrāko veidu, kā atjaunot tabulas datus, ja tie ir izveidoti pirms problēmas rašanās. Momentuzņēmums ir tikai lasāms, statisks datu bāzes skats noteiktā laika brīdī.

Datu bāzes momentuzņēmuma izveide:

-- 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

Tabulas datu atjaunošana no momentuzņēmuma:

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

Versijas prasības: Datu bāzes momentuzņēmumi ir pieejami sadaļā SQL Server Enterprise Edition (visas versijas) un Standard Editiontarzvanīt ar SQL Server 2016. gada 1. pakalpojums.

9.6.2 2. metode: Atjaunot tempurary datubāze (Most Bieži)

Šī metode darbojas, ja pēc problēmas rašanās ir jāatgūst tabulas dati, ja nav momentuzņēmuma:

  1. Atjaunot dublējumu tempārary datubāze
  2. Kopēt tabulas datus no temporary datubāzi uz pašreizējo datubāzi

9.7 Lapas atjaunošana

Lapu atjaunošanas funkcija atjauno atsevišķas bojātas lapas, neatjaunojot visu datubāzi, tādējādi samazinot dīkstāves laiku, tariegūst tikai bojātas lapas. Šī funkcija ir pieejama tikai pilnas vai masveida reģistrēšanas atkopšanas modeļos un tai ir nepieciešama nepārtraukta darījumu žurnāla dublējumu ķēde no lapas dublējuma līdz pašreizējam žurnālfailam.

Lai veiktu lapas atjaunošanu, vispirms identificējiet bojātās lapas, izveidojiet žurnāla dublējumu, atjaunojiet konkrētās lapas un pēc tam lietojiet visus darījumu žurnālus:

-- 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

Piezīme: Lapas atjaunošana nav pieejama, izmantojot vienkāršo atkopšanas modeli. Lapas nevar atjaunot no sistēmas tabulām vai primārās failu grupas metadatiem.

9.8 Pakāpeniska atjaunošana

Pakāpeniska atjaunošana (daļēja atjaunošana) atjauno datubāzi pa posmiem failu grupas līmenī, starsazinoties ar primāro failu grupu. Tas nekavējoties atjauno kritiski svarīgus datus, kamēr mazāk kritiski dati tiek atjaunoti fonā. Vienkāršajā atkopšanas modelī visas lasāmās/rakstāmās failu grupas ir jāatjauno kopā ar primāro failu grupu; atsevišķi var atjaunot tikai lasāmās failu grupas. Pilnajā vai masveida reģistrēšanas atkopšanas modelī katru failu grupu var atjaunot tiešsaistē neatkarīgi pēc darījumu žurnālu lietošanas.

Atkopšanas modelis Pakāpeniskas atjaunošanas uzvedība
Vienkāršs Primārās un visas lasāmās/rakstāmās failu grupas atjaunotas kopā. Tikai lasāmās failu grupas atjaunotas atsevišķi.
Pilnībā/lielapjoma reģistrēšana Katra failu grupa tika atjaunota neatkarīgi failu grupas līmenī.

Pilnīgas atkopšanas modeļa piemērs — vispirms atjaunojiet primāro failu grupu, lai datubāzi aktivizētu, pēc tam atjaunojiet sekundārās failu grupas, kamēr datubāze joprojām darbojas:

-- 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

Vienkārša atkopšanas modeļa piemērs:

-- 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 Atjaunošana, izmantojot T-SQL komandas

Pilnīgs atjaunošanas skripts ar failu pārvietošanu:

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 Dublējuma integritātes pārbaude pirms atjaunošanas

Pārbaudiet dublējuma derīgumu bez atjaunošanas:

RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO

Šī komanda pārbauda, ​​vai dublējuma komplekts ir pilnīgs un lasāms, faktiski neatjaunojot datubāzi.

10. SQL Server Rezerves kopēšanas paraugprakse

10.1 Rezerves stratēģijas izstrāde

10.1.1 Biznesa prasību novērtēšana

Pirms dublējumu ieviešanas izvērtējiet:

  • Datu kritiskums: Cik svarīgi šie dati ir darbībai?
  • Mainīt frekvenci: Cik bieži mainās dati?
  • Datubāzes lielums: Cik liela ir datubāze?
  • Pieejamie resursi: Kāda krātuve un joslas platums ir pieejams?
  • Atbilstības prasības: Kādi noteikumi jums jāievēro?

10.1.2 RTO un RPO definēšana

Atveseļošanās laika mērķis (RTO): Maksimāli pieņemamais dīkstāves laiks. Nosaka, cik ātri nepieciešams atjaunot darbību.

Atjaunošanas punkta mērķis (RPO): Maksimāli pieļaujamais datu zudums. Nosaka dublēšanas biežumu.

RTO/RPO prasība Ieteicamā dublēšanas stratēģija
RPO: Stundas, RTO: Stundas Pilns dienas + darījumu žurnāls ik pēc 1–2 stundām
RPO: Minūtes, RTO: Stundas Pilnas ikdienas + žurnālu dublējumkopijas ik pēc 15–30 minūtēm
RPO: Gandrīz nulle, RTO: Minūtes Vienmēr ieslēgtas pieejamības grupas + biežas žurnālu dublējumkopijas
RPO: Dienas, RTO: Dienas Nedēļas pilna + dienas starpība

10.2 Rezerves kopēšanas grafika izveide

10.2.1 Frekvences ieteikumi

Tipisks dublēšanas grafiks ražošanas datubāzēm:

  • Pilnas rezerves kopijas: Katru nedēļu (svētdienas vakarā, kad aktivitāte ir zema)
  • Diferenciālās rezerves kopijas: Katru dienu (katru nakti)
  • Darījumu žurnāla dublējumkopijas: Darba laikā ik pēc 15–30 minūtēm
  • Tikai kopēšanai paredzētas rezerves kopijas: Pēc nepieciešamības testēšanai vai izstrādei

10.2.2 Veiktspējas un aizsardzības līdzsvarošana

Plānojot grafiku, ņemiet vērā šādus faktorus:

  • Ārpus pīķa stundām: Veiciet pilnas dublējumkopijas zemas aktivitātes periodos
  • Resursu ietekme: Saspiešana samazina I/O, bet palielina CPU izmantošanu
  • Tīkla joslas platums: Plānojiet tīkla dublēšanu, kad datplūsma ir zema
  • Rezerves logi: Nodrošiniet, lai dublējumkopijas tiktu pabeigtas pirms darba laika.

10.3 Rezerves kopiju glabāšanas labākā prakse

10.3.1 Uzglabāšana uz vietas salīdzinājumā ar glabāšanu ārpus objekta

Vietnes dublējumkopijas:

  • Ātrāks dublēšanas un atjaunošanas laiks
  • Apakšējā cost augstfrekvences piekļuvei
  • Neaizsargāts pret vietējām katastrofām
  • Vislabāk piemērots ātras atkopšanas scenārijiem

Ārpusvietas dublējumkopijas:

  • Aizsardzība pret konkrētai vietai raksturīgām katastrofām
  • Atbilstība ģeogrāfiskās redundances prasībām
  • Lēnāks atjaunošanas laiks
  • Būtiski katastrofu seku novēršanai

10.3.2 Mākoņa dublēšanas opcijas

Mākoņkrātuves priekšrocības:

  • Azure Blob krātuve: Dzimtais SQL Server integrācija, cost- efektīvs reti sastopamas piekļuves gadījumā
  • Amazon S3: Ļoti izturīgi, elastīgi uzglabāšanas līmeņi
  • Google mākoņkrātuve: Konkurētspējīgas cenas, globāla pieejamība

10.3.3 Rezerves kopiju saglabāšanas politikas

Paraugu saglabāšanas politika:

  • Saglabājiet ikdienas dublējumus 7 dienas
  • Saglabājiet iknedēļas dublējumus 4 nedēļas
  • Saglabājiet ikmēneša dublējumus 12 mēnešus
  • Saglabājiet ikgadējās dublējumkopijas 7 gadus (atbilstība)

10.4 Rezerves kopiju saspiešana un šifrēšana

Kompresijas priekšrocības:

  • Samazina dublējuma faila lielumu par 50–70 %
  • Samazina rezerves kopēšanas laiku
  • Samazina uzglabāšanas costs
  • Samazina tīkla joslas platumu attālinātām dublējumkopijām

Šifrēšanas labākā prakse:

  • Vienmēr šifrējiet dublējumkopijas, kas satur sensitīvus datus
  • Izmantojiet AES 256 bitu šifrēšanu
  • Drošs sertifikāts vai atslēgu pārvaldība
  • Dokumentējiet šifrēšanas atslēgas un glabājiet tās atsevišķi

10.5 Dublējumu testēšana un verifikācija

10.5.1 Regulāra atjaunošanas pārbaude

Testa atjaunošanas procedūras reizi ceturksnī vai mēnesī:

  1. Atjaunot dublējumus testa vidē
  2. Pārbaudiet datu integritāti un pilnīgumu
  3. Pārbaudiet lietojumprogrammas funkcionalitāti
  4. Dokumenta atjaunošanas laiks (apstiprināt RTO)
  5. Identificējiet un atrisiniet visas problēmas

10.5.2 ATJAUNOŠANAS VERIFYONLY izmantošana

Automatizēt dublējuma validāciju:

-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

Veiciet pārbaudi nekavējoties pēc dublējuma pabeigšanas vai kā daļu no plānotās apkopes.

10.6 Rezerves kopēšanas automatizācija un uzraudzība

10.6.1 SQL Server Aģenta darbs

Izveidojiet automatizētus dublēšanas darbus:

  1. paplašināt SQL Server AģentsExternal Link SSMS
  2. Right-click Darbs un izvēlieties Jauns darbs
  3. Nosauciet uzdevumu (piemēram, “Ikdienas pilna dublēšana”).
  4. Pievienot Solis ar T-SQL dublēšanas komandām
  5. Izveidot Ieplānot izpildes laikam
  6. Konfigurēt Paziņojumi par panākumiem/neveiksmēm

10.6.2 Apkopes plāni

SQL Server Apkopes plāni nodrošina vizuālu saskarni dublēšanas automatizācijai:

  1. Virzīties uz vadība -> Apkopes plāni
  2. Ar peles labo pogu noklikšķiniet uz un izvēlieties Apkopes plāna vednis
  3. Atlasiet automatizējamos dublēšanas uzdevumus
  4. Konfigurējiet dublēšanas grafiku un opcijas
  5. Atskaišu veidošanas un reģistrēšanas iestatīšana

10.6.3 Rezerves brīdinājumi un paziņojumi

E-pasta paziņojumu konfigurēšana:

  • Iestatiet datubāzes pastu SQL Server
  • Izveidojiet brīdinājumus par dublēšanas kļūmēm
  • Dublēšanas darbu vēstures uzraudzība
  • Nosūtīt kopsavilkuma pārskatus administratoriem

10.7 Dokumentācija un katastrofu seku novēršanas plānošana

Saglabājiet visaptverošu dokumentāciju:

  • Rezerves kopēšanas grafiks: Kad un kas tiek dublēts
  • Saglabāšanas politikas: Cik ilgi tiek glabātas dublējumkopijas
  • Uzglabāšanas vietas: Kur tiek glabātas dublējumkopijas
  • Atjaunošanas procedūras: Soli pa solim atkopšanas instrukcijas
  • Kontaktinformācija: Galvenie darbinieki un piegādātāji
  • Atveseļošanās testa rezultāti: Dokumentēti testa rezultāti

11. Advanced SQL Server Rezerves scenāriji

11.1 Ļoti lielu datubāzu (VLDB) dublēšana

11.1.1 Failu un failu grupu stratēģijas

Datubāzēm, kas pārsniedz vairākus simtus gigabaitu:

  • Atdaliet tikai lasāmos un lasāmos/rakstāmos datus dažādās failu grupās
  • Reti dublējiet tikai lasāmas failu grupas
  • Koncentrējieties uz biežām dublējumkopijām uz aktīvām failu grupām
  • Izmantojiet failu līmeņa dublējumus detalizētai kontrolei

Faila dublējuma piemērs:

-- Back up specific file
BACKUP DATABASE LargeDB 
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO

11.1.2 Dublēšanas veiktspējas optimizācija

Uzlabojiet VLDB dublēšanas veiktspēju:

  • Svītrainās rezerves kopijas: Rakstīt vairākos failos vienlaikus
  • Compression: Samaziniet I/O un krātuves prasības
  • Vairākas rezerves ierīces: Paralēlizēt dublēšanas darbības
  • Ātra uzglabāšana: Izmantojiet SSD diskus dublēšanas sagatavošanai
  • Buferu skaits: Palielināt BUFFERCOUNT opciju
  • Maksimālais pārsūtīšanas lielums: Optimizēt MAXTRANSFERSIZE iestatījumu
-- 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 Dublēšana Always On pieejamības grupās

Vienmēr ieslēgtās pieejamības grupas sadala dublēšanas slodzi starp kopijām:

  • Konfigurējiet dublēšanas preferences (primāro, sekundāro vai jebkuru repliku)
  • Pārnesiet dublējumus uz sekundārajām kopijām, lai samazinātu primāro darba slodzi
  • Izmantot COPY_ONLY dublējumkopijas sekundārajās kopijās
  • Monitora dublēšanas prioritātes iestatījumi
-- 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 Dublēšana datubāzes spoguļošanai

Datu bāzes spoguļošanas scenārijos:

  • Regulāri dublējiet galveno datubāzi
  • Darījumu žurnāla dublējumkopijas ir būtiskas spoguļošanai
  • Spoguļa datubāze ir ATJAUNOŠANAS stāvoklī (to nevar tieši dublēt)
  • Apsveriet spoguļa dublēšanu pēc rezerves kopijas izveides

11.4 Dublēšana Azure Blob krātuvē

SQL Server var dublēt tieši pakalpojumā Azure Blob Storage:

  1. Izveidot Azure krātuves kontu
  2. izveidot SQL Server Azure autentifikācijas akreditācijas dati
  3. Rezerves galamērķim izmantojiet URL sintaksi
-- 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 Dublēšana uz URL

Dublēšanas priekšrocības uz URL:

  • Neierobežota mākoņkrātuves ietilpība
  • Ģeogrāfiskā redundanci apstrādā automātiski
  • Izmaksas cenu noteikšanas modelis
  • Nav nepieciešama vieta lokālajā diskā
  • Atbalsta līdz 64 URL katrā dublējumkopijā (svītrošana)

11.6 Svītrotās dublējumkopijas veiktspējas uzlabošanai

Svītrotās dublējumkopijas sadala datus vairākos failos, lai nodrošinātu ātrāku ievadi/izvadi:

-- 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

Piezīme. Atjaunošanas darbiem nepieciešami visi svītru faili. Ja trūkst kāda faila, dublējums kļūst nelietojams.

12. Traucējummeklēšana SQL Server Dublēšanas problēmas

12.1 Biežāk sastopamās dublēšanas kļūdas un risinājumi

Kļūda: “Operētājsistēmas kļūda 5: Piekļuve liegta”

  • Iemesls: SQL Server pakalpojuma kontam trūkst atļauju
  • Risinājums: Piešķirt rakstīšanas atļaujas SQL Server pakalpojuma konts dublējuma mapē

Kļūda: “Nevar atvērt dublēšanas ierīci… Ierīces kļūda vai ierīce ir bezsaistē”

  • Iemesls: Nederīgs ceļš vai nepieejama tīkla koplietošanas vieta
  • Risinājums: Pārbaudiet, vai ceļš pastāv, pārbaudiet tīkla savienojamību un nodrošiniet pietiekamu vietu diskā.

Kļūda: “Diskā nepietiek vietas”

  • Iemesls: Nepietiek vietas diskā dublēšanai
  • Risinājums: Atbrīvojiet vietu diskā, izmantojiet saspiešanu, dublējiet citā vietā

Kļūda: “Datubāze tiek izmantota. Datubāzi izmanto citi lietotāji”

  • Iemesls: Aktīvie savienojumi atjaunošanas laikā
  • Risinājums: Izmantojiet opciju WITH REPLACE vai vispirms atvienojiet lietotājus

12.2 Dublēšanas veiktspējas problēmas

Lēnu dublējumu diagnostika:

  • Pārbaudiet diska I/O veiktspēju, izmantojot Performance Monitor
  • Uzraugiet dublēšanas progresu, izmantojot STATS opciju
  • Pārskats SQL Server kļūdu žurnāls sastrēgumiem
  • Apsveriet saspiešanu, lai samazinātu I/O
  • Izmantojiet svītrotās dublējumkopijas vairākos diskos

Vaicājums dublēšanas progresa uzraudzībai:

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 Vietas un uzglabāšanas problēmas

Novērst uzglabāšanas problēmas:

  • Ieviest saglabāšanas politikas: Automātiski dzēst vecās dublējumkopijas
  • Izmantojiet saspiešanu: Samaziniet dublējuma faila lielumu par 50–70 %
  • Arhīvs uz lētāku krātuvi: Pārvietojiet vecās dublējumkopijas uz arhīva krātuvi
  • Monitora diska vieta: Iestatiet brīdinājumus par nepietiekamu diska vietu
  • Aptuvenais dublējuma lielums: Aprēķiniet paredzamo izmēru pirms dublēšanas

Aptuvenais dublējuma lielums:

-- Estimate full backup size
EXEC sp_spaceused;
GO

12.4 Atļauju un piekļuves problēmas

Nepieciešamās atļaujas dublējumkopijām:

  • REZERVES DATU BĀZE atļauja
  • db_backupoperator lomas dalība
  • sysadmin servera loma (visām dublēšanas darbībām)

Piešķirt dublēšanas atļaujas:

-- 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 Bojāti dublējuma faili

Bojātu dublējumu noteikšana un apstrāde:

Pārbaudiet dublējuma integritāti:

RESTORE VERIFYONLY 
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

Iespējot kontrolsummu turpmākajām dublējumkopijām:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO

Profilakses stratēģijas:

  • Dublēšanas laikā vienmēr izmantojiet opciju CHECKSUM
  • Pārbaudiet dublējumus tūlīt pēc izveides
  • Regulāri pārbaudiet atjaunojumus
  • Saglabājiet dublējumkopijas uzticamā krātuvē
  • Saglabājiet vairākas rezerves kopijas

12.6 Datu atgūšana no bojātiem dublējuma failiem

Ja jūsu dublējuma faili ir bojāti un jūs joprojām vēlaties atgūt no tiem datus, varat izmantot trešo pušu rīkus, piemēram, DataNumen SQL Recovery, kā norādīts zemāk:

  1. Start DataNumen SQL Recovery.
  2. Atlasiet bojāto dublējuma failu kā avota failu, mainot filtru uz “Visi faili (*.*)”:
    Atlasiet bojāto dublējuma failu (*.bak) kā atgūstamo avota failu.
  3. Ja nepieciešams, iestatiet izvades .MDF failu.
  4. Noklikšķiniet uz “Start Atkopšana” un izpildiet norādījumus, lai atjaunotu datubāzi.
  5. Pēc atkopšanas procesa parādīsies jauna atkopšanas datubāze. SQL Server kas satur visus atgūtos datus.

lietošana DataNumen SQL Recovery atgūt datus no bojātiem SQL Server dublējuma fails (*.bak).

13. SQL Server Rezerves rezerves drošība

13.1 Dublējuma failu aizsardzība

Aizsargājiet dublējuma failus no nesankcionētas piekļuves:

  • Failu sistēmas atļaujas: Ierobežot piekļuvi tikai pilnvarotiem administratoriem
  • Tīkla drošība: Izmantojiet drošus protokolus tīkla dublējumkopijām
  • Fiziskā drošība: Saglabājiet rezerves datu nesējus drošās vietās
  • Piekļuves reģistrēšana: Audita dublējuma faila piekļuve

13.2 Šifrēšanas opcijas

SQL Server atbalsta caurspīdīgu dublējuma šifrēšanu:

Izveidojiet šifrēšanas sertifikātu:

-- 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

Šifrēta dublēšana:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
     ENCRYPTION (
         ALGORITHM = AES_256,
         SERVER CERTIFICATE = BackupCertificate
     );
GO

Svarīgi: atsevišķi izveidojiet sertifikāta un privātās atslēgas dublējumu. Bez tiem šifrētas dublējumkopijas nevar atjaunot.

-- 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 Piekļuves kontrole un atļaujas

Ieviest mazāko privilēģiju principu:

  • Piešķiriet dublēšanas atļaujas tikai nepieciešamajiem kontiem
  • Dublēšanas un atjaunošanas darbībām izmantojiet atsevišķus kontus
  • Izvairieties no SA konta izmantošanas dublējumkopijām
  • Regulāri pārbaudiet dublēšanas atļaujas
  • Noņemiet atļaujas, kad tās vairs nav nepieciešamas

13.4. Atbilstības apsvērumi

Risināt normatīvās prasības:

  • GDPR: Šifrēt dublējumkopijas, kas satur personas datus, ieviest saglabāšanas politikas
  • HIPAA: Šifrēt aizsargātu veselības informāciju (PHI) dublējumos, kontrolēt piekļuvi, uzturēt auditācijas ierakstus
  • PCI DSS: Šifrējiet kartes turētāja datu dublējumus, nodrošiniet rezerves kopiju glabāšanu
  • SOX: Saglabāt dublējuma integritāti, dokumentu saglabāšanas politikas

14. Rezerves kopēšanas darbību uzraudzība un uzturēšana

14.1 Rezerves kopiju vēstures izsekošana

SQL Server saglabā dublēšanas vēsturi msdb datubāzē:

-- 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

Atrodiet datubāzes bez nesenām dublējumkopijām:

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 Izmantojot SQL Server Ziņojumi

SQL Server Management Studio ietver iebūvētas rezerves kopijas:

  1. Ar peles labo pogu noklikšķiniet uz datubāzes objektu pārlūkā
  2. Izvēlēties Ziņojumi -> Standarta ziņojumi
  3. Izvēlieties no pieejamajām atskaitēm:
    • Dublēšanas un atjaunošanas notikumi
    • Visas rezerves kopijas
    • Darījumu žurnāla piegādes statuss

14.3 Trešo pušu uzraudzības rīki

Komerciālie uzraudzības risinājumi:

  • SQL Sentry: Visaptveroša uzraudzība un brīdināšana
  • Redgate SQL monitors: Reāllaika uzraudzība un diagnostikaostICS
  • SolarWinds datubāzes veiktspējas analizators: Veiktspējas un dublējuma uzraudzība
  • Idera SQL diagnostikaostic pārvaldnieks: Rezerves kopijas validācija un brīdināšana

14.4 Rezerves veselības pārbaudes

Izveidojiet veselības pārbaudes procedūru:

-- 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 Bieži uzdotie jautājumi par dublēšanu

15.1 Cik bieži man vajadzētu veidot dublējumu SQL Server?

Dublēšanas biežums ir atkarīgs no jūsu atkopšanas punkta mērķa (RPO):

  • Kritiskās ražošanas datubāzes: Pilna iknedēļas, diferenciālā ikdiena, žurnāls ik pēc 15–30 minūtēm
  • Standarta ražošanas datubāzes: Pilna iknedēļas, diferenciālā ikdiena, žurnāls ik pēc 1-2 stundām
  • Izstrādes datubāzes: Pilna dienas vai nedēļas
  • Tikai lasāmas datubāzes: Pilns pēc katras datu maiņas

15.2 Kāda ir atšķirība starp pilnu un diferenciālo dublēšanu?

Pilna dublējumkopija kopē visu datubāzi, savukārt diferenciālā dublējumkopija fiksē tikai izmaiņas kopš pēdējās pilnās dublējumkopijas. Diferenciālās dublējumkopijas ir mazākas un ātrākas, taču atjaunošanai ir nepieciešama pilna pamata dublējumkopija.

15.3 Vai es varu izveidot dublējumu SQL Server Kamēr tas darbojas?

Jā, SQL Server atbalsta tiešsaistes dublēšanu. Lietotāji var turpināt darbu dublēšanas darbību laikā. SQL Server izmanto savu darījumu žurnālu, lai saglabātu konsekvenci, nodrošinot, ka dublējumkopijas ir derīgas pat ar vienlaicīgām izmaiņām.

15.4 Cik ilgi tas notiek? SQL Server Rezerves kopijas uzņemšana?

Rezerves kopijas ilgums atšķiras atkarībā no:

  • Datubāzes lielums: Lielākām datubāzēm nepieciešams ilgāks laiks
  • Rezerves veids: Pilnas dublējumkopijas aizņem visilgāko laiku
  • Compression: Var palielināt procesora laiku, bet samazināt kopējo ilgumu
  • Uzglabāšanas ātrums: SSD diski ir ievērojami ātrāki nekā HDD diski
  • Servera slodze: Lielāka aktivitāte palēnina dublēšanu

Tipiski diapazoni: 10 GB datubāzes pilnīgai dublēšanai ar saspiešanu modernā aparatūrā var būt nepieciešamas 5–15 minūtes.

15.5 Kur man vajadzētu uzglabāt SQL Server Rezerves kopijas?

Labākā prakse: Ievērojiet noteikumu 3-2-1:

  • 3 jūsu datu kopijas
  • 2 dažādi krātuves veidi (piemēram, disks un lente/mākonis)
  • 1 kopiju ārpus vietnes

Ieteicamās atrašanās vietas:

  • Lokālais disks ātrai atkopšanai
  • Tīkla krātuve centralizētai pārvaldībai
  • Mākoņkrātuve (Azure, AWS) katastrofu atkopšanai

15.6 Kas ir .bak faila paplašinājums?

Paplašinājums .bak ir noklusējuma faila paplašinājums SQL Server dublējuma faili. Tā ir konvencija, nevis prasība – SQL Server Dublējumi darbojas ar jebkuru faila paplašinājumu. Tomēr, izmantojot .bak, dublējuma faili ir viegli identificējami, un tā ir nozares standarta prakse.

15.7 Kā dublēt SQL Server uz tīkla disku?

Lai dublētu tīkla diskā:

  1. Nodrošināt SQL Server pakalpojuma kontam ir rakstīšanas atļaujas tīkla koplietojumā
  2. Rezerves komandā izmantojiet UNC ceļu: \\ServerName\ShareName\BackupFile.bak
  3. Pirms automātisko dublējumu plānošanas pārbaudiet savienojamību
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO

15.8 Vai es varu saspiest SQL Server Rezerves kopijas?

Jā, SQL Server atbalsta vietējo dublējuma saspiešanu (Enterprise Edition vai Standard Edition)tarTing SQL Server 2016 SP1). Saspiešana parasti samazina dublējuma lielumu par 50–70 % un bieži vien samazina dublējuma laiku, samazinot ievadizvadi, lai gan tā palielina centrālā procesora noslodzi.

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO

16. secinājums

16.1 atslēgas līdzņemšanai

Efektīvs SQL Server Dublēšanas stratēģijas aizsargā jūsu datus un nodrošina uzņēmējdarbības nepārtrauktību. Atcerieties šos svarīgos punktus:

  • Izprotiet dublējumu veidus: Izvēlieties atbilstošus dublējuma veidus (pilnu, diferenciālu, darījumu žurnāla) atkarībā no atkopšanas prasībām.
  • Izvēlieties atbilstošu atkopšanas modeli: Pilnīga kritiski svarīgu datu atgūšana, vienkārša izstrādes datubāzēm
  • Ieviest dublēšanas grafiku: Regulāras pilnas dublējumkopijas apvienojumā ar diferenciālajām un žurnālu dublējumkopijām samazina datu zudumu
  • Testa atjaunošanas procedūras: Rezerves kopijas ir vērtīgas tikai tad, ja tās var veiksmīgi atjaunot
  • Automatizēt un uzraudzīt: lietošana SQL Server Aģents, apkopes plāni un uzraudzības rīki
  • Drošas dublējumkopijas: Šifrējiet sensitīvus datus un kontrolējiet piekļuvi dublējuma failiem
  • Saglabājiet kopijas ārpus vietnes: Aizsargājieties pret katastrofām visā objektā, izmantojot mākoņkrātuvi vai attālo krātuvi
  • Visu dokumentē: Uzturēt skaidru dokumentāciju par dublēšanas un atkopšanas procedūrām

16.2. Nākamie soļi un resursi

Lai uzlabotu savu SQL Server rezerves kopijas ieviešana:

  • Novērtējiet savu pašreizējo dublēšanas stratēģiju, ņemot vērā labāko praksi
  • Aprēķiniet savas RTO un RPO prasības
  • Testa atjaunošanas procedūras neražošanas sistēmās
  • Regulāri pārskatiet un atjauniniet dublēšanas grafikus
  • Ieviest automatizētu uzraudzību un brīdināšanu
  • Apmācīt komandas locekļus atjaunošanas procedūrās

Papildu resursi:

  • microsoft SQL Server Dokumentācija: Oficiālas dublēšanas un atjaunošanas vadlīnijas
  • SQL Server dublēšanas kopienas forumi: dalieties pieredzē un risinājumos
  • Profesionālās sertifikācijas: Microsoft sertificēts: Azure datubāzes administratora asociētais speciālists

16.3 Ieteicamie rīki un risinājumi

Balstoties uz dažādiem scenārijiem:

Mazie uzņēmumi:

  • Dzimtais SQL Server dublēšana ar ieplānotu SQL Server Aģenta darbi
  • SQLBackupAndFTP mākoņa integrācijai
  • Azure dublēšana SQL Server

Vidējie uzņēmumi:

  • SQL Server Apkopes plāni
  • Trešo pušu rīki, piemēram, Redgate SQL Backup Pro
  • Veeam dublējums priekš SQL Server

Lielie uzņēmumi:

  • Quest LiteSpeed ​​maksimālai saspiešanai
  • Commvault vai Veritas NetBackup uzņēmuma dublējumu pārvaldībai
  • Vienmēr ieslēgtas pieejamības grupas augstai pieejamībai

SQL Server Dublēšana ir būtiska datubāzes administrēšanai. Ar pareizu plānošanu, ieviešanu un testēšanu jūs varat nodrošināt, ka jūsu dati paliek aizsargāti un atgūstami, kad tas nepieciešams.tart ieviešot šo labāko praksi jau šodien, lai nodrošinātu savu drošību SQL Server datubāzes.


par autoru

Juaņs Šens ir vecākais datubāzes administrators (DBA) ar vairāk nekā 10 gadu pieredzi SQL Server vides un uzņēmumu datubāzu pārvaldību. Viņš ir veiksmīgi atrisinājis simtiem datubāzu atkopšanas scenāriju finanšu pakalpojumu, veselības aprūpes un ražošanas organizācijās.

Juaņa specializējas SQL Server datubāzu atjaunošana, augstas pieejamības risinājumi un veiktspējas optimizācija. Viņa plašā praktiskā pieredze ietver vairāku terabaitu datubāzu pārvaldību, Always On pieejamības grupu ieviešanu un automatizētu dublēšanas un atkopšanas stratēģiju izstrādi kritiski svarīgām biznesa sistēmām.

Izmantojot savu tehnisko pieredzi un praktisko pieeju, Juans koncentrējas uz visaptverošu rokasgrāmatu izveidi, kas palīdz datubāzu administratoriem un IT speciālistiem risināt sarežģītus jautājumus SQL Server efektīvi izaicina. Viņš seko līdzi jaunākajām tendencēm SQL Server laidieniem un Microsoft attīstītajām datubāzu tehnoloģijām, regulāri testējot atkopšanas scenārijus, lai nodrošinātu, ka viņa ieteikumi atspoguļo labāko praksi reālajā pasaulē.

Ir jautājumi par SQL Server atkopšanai vai nepieciešama papildu palīdzība datubāzes problēmu novēršanā? Juans laipni aicina atsauksmes un ieteikumi lai uzlabotu šos tehniskos resursus.

Kopīgot tūlīt: