Distribuie acum:
Cuprins ascunde

Backup SQL Server baza de date cu ghidul nostru complet din 2025. Instrucțiuni pas cu pas și cele mai bune practici pentru toate nivelurile de calificare.

1. Introducere în SQL Server Backup

1.1 Ce este SQL Server Copiere de rezervă?

SQL Server Copierea de rezervă este procesul de creare a unor copii ale fișierelor bazei de date pentru a proteja împotriva pierderii datelor. O copie de rezervă surprinde starea bazei de date la un anumit moment în timp, permițându-vă să restaurați datele dacă apar defecțiuni hardware, erori umane sau dezastre.

SQL Server stochează în mod implicit copiile de rezervă în fișiere .bak, care conțin toate obiectele bazei de date, inclusiv tabele, proceduri stocate, vizualizări, indexuri și jurnalele de tranzacții.

1.2 De ce SQL Server Copia de rezervă este critică

Copiile de rezervă ale bazelor de date servesc drept ultimă linie de apărare împotriva pierderii datelor. Fără copii de rezervă adecvate, organizația dumneavoastră riscă:

  • Pierderea permanentă a datelor din cauza defecțiunilor sau coruperii hardware-ului
  • Timp de nefuncționare extins în timpul încercărilor de recuperare
  • Perturbarea afacerii și pierderi de venituri
  • Încălcări de conformitate dacă datele nu pot fi recuperate
  • Daune reputației din cauza întreruperilor de servicii

Regulat SQL Server Copiile de rezervă asigură continuitatea afacerii și îndeplinesc cerințele de reglementare pentru protecția datelor.

1.3 Scenarii comune de pierdere a datelor

Înțelegerea momentului în care se produce pierderea datelor vă ajută să dezvoltați o strategie eficientă de backup:

  • Defecțiuni hardware: Prăbușiri ale discului, defecțiuni ale serverului sau erori ale sistemului de stocare
  • Erori umane: Ștergeri accidentale, actualizări incorecte sau tabele pierdute
  • Probleme de software: Erori ale aplicațiilor, actualizări corupte sau blocări ale sistemului
  • Breșe de securitate: Atacuri ransomware, ștergeri rău intenționate sau acces neautorizat
  • Dezastre naturale: Incendii, inundații sau pene de curent care afectează centrele de date

2. Înţelegere SQL Server Tipuri de backup

SQL Server acceptă mai multe tipuri de backup, fiecare deservind nevoi diferite de recuperare și cerințe de stocare.

2.1 Copiere de rezervă completă

O copie de rezervă completă creează o copie completă a întregii baze de date, inclusiv toate fișierele de date și o parte din jurnalul de tranzacții necesar pentru recuperare.

2.1.1 Când se utilizează o copie de rezervă completă

Copiile de rezervă complete sunt ideale pentru:

  • Stabilirea unei linii de bază pentru alte tipuri de backup
  • Baze de date mici și medii unde timpul de backup este acceptabil
  • Programări de backup săptămânale sau lunare
  • Baze de date cu modificări rare

2.1.2 Avantajele și limitările copiei de rezervă complete

avantaje:

  • Cel mai simplu proces de restaurare – un singur fișier conține totul
  • Autonom și independent de alte copii de rezervă
  • Cel mai rapid timp de recuperare pentru restaurarea completă a bazei de date

Limitări:

  • Necesită spațiu de stocare semnificativ
  • Timp de backup mai lung pentru bazele de date mari
  • Consum mai mare de resurse în timpul operațiunilor de backup

2.2 Copiere de rezervă diferențială

O copie de rezervă diferențială capturează doar modificările datelor de la ultima copie de rezervă completă, reducând timpul de backup și cerințele de stocare.

2.2.1 Cum funcționează backup-ul diferențial

Copiile de rezervă diferențiale urmăresc modificările utilizând extensiile modificate. Când restaurați, SQL Server aplică mai întâi ultima copie de rezervă completă, apoi aplică cea mai recentă copie de rezervă diferențială.

2.2.2 Copiere de rezervă completă vs. diferențială

Copiere de rezervă completă vs. diferențială

Aspect Backup complet Backup diferențial
Mărimea Bază de date completă Numai modificările de la ultima copie de rezervă completă
Timp de rezervă Cea mai lungă Mai rapid decât plin
Procesul de restaurare Restaurare cu un singur fișier Necesită complet + diferențial
Depozitare necesară Cel mai mult spațiu Mai puțin spațiu inițial, crește în timp

2.3 Copiere de rezervă a jurnalului de tranzacții

Copiile de rezervă ale jurnalului de tranzacții capturează toate tranzacțiile de la ultima copie de rezervă a jurnalului, permițând recuperarea la un moment dat.

2.3.1 Înțelegerea jurnalelor de tranzacții

Jurnalul de tranzacții înregistrează fiecare modificare adusă bazei de date. Copiile de rezervă ale jurnalelor trunchiază porțiunea inactivă a jurnalului, împiedicând creșterea la nesfârșit a acestuia și umplerea discului.

2.3.2 Recuperare la un moment dat

Copiile de rezervă ale jurnalului de tranzacții vă permit să restaurați baza de date la orice moment specific dintr-o copie de rezervă a jurnalului. Acest lucru este esențial pentru recuperarea după modificări sau ștergeri accidentale de date.

Pentru a efectua recuperarea la un moment dat, aveți nevoie de:

  • Ultima copie de rezervă completă
  • Cea mai recentă copie de rezervă diferențială (opțional)
  • Toate copiile de rezervă ale jurnalului de tranzacții de la copia de rezervă completă/diferențială până la ora țintă

2.4 Copiere de rezervă a jurnalului de coadă

Copiile de rezervă ale jurnalelor de coadă capturează înregistrări din jurnal care nu au fost încă copiate de rezervă, prevenind pierderea datelor și menținând un lanț de jurnale intact. Înainte de recuperarea unui SQL Server baza de date la cel mai recent moment în timp, trebuie să faceți o copie de rezervă a finalului jurnalului de tranzacții. Copia de rezervă a finalului jurnalului este ultima copie de rezervă de interes în planul de recuperare pentru baza de date.

Diagrama care explică copiile de rezervă ale jurnalului de coadă în SQL Server.

Notă: Nu toate scenariile de restaurare necesită o copie de rezervă a jurnalului de coadă. Nu aveți nevoie de una dacă punctul de recuperare este conținut într-o copie de rezervă a jurnalului anterioară. O copie de rezervă a jurnalului de coadă este, de asemenea, inutilă dacă mutați sau înlocuiți (suprascrieți) o bază de date și nu trebuie să o restaurați la un moment dat după cea mai recentă copie de rezervă.

2.4.1 Când sunt necesare copii de rezervă ale jurnalului de coadă

Următoarele scenarii descriu când ar trebui să faceți o copie de rezervă a jurnalului de coadă:

Restaurarea bazei de date online: Dacă baza de date este online și intenționați să efectuați o operațiune de restaurare a bazei de date, începeți prin a crea o copie de rezervă a finalului jurnalului. Pentru a evita o eroare pentru o bază de date online, trebuie să utilizați opțiunea WITH NORECOVERY din instrucțiunea BACKUP Transact-SQL atunci când creați o copie de rezervă. SQL Server Bază de date.

Recuperare bază de date offline: Dacă o bază de date este offline și nu pornește și trebuie să o restaurați, faceți mai întâi o copie de rezervă a finalului jurnalului. Deoarece nu pot avea loc tranzacții în acest moment, utilizarea opțiunii WITH NORECOVERY este opțională. NORECOVERY este practic același lucru cu o copie de rezervă a jurnalului de tranzacții doar pentru copierea acestuia în acest scenariu.

Copiere de rezervă a bazei de date deteriorate: Dacă o bază de date este deteriorată, încercați să faceți o copie de rezervă a jurnalului de coadă utilizând opțiunea WITH CONTINUE_AFTER_ERROR din instrucțiunea BACKUP. Pe o bază de date deteriorată, copierea de rezervă a jurnalului de coadă poate reuși numai dacă fișierele jurnal sunt intacte, baza de date se află într-o stare care acceptă copii de rezervă ale jurnalului de coadă și baza de date nu conține modificări înregistrate în bloc. Dacă nu se poate crea o copie de rezervă a jurnalului de coadă, orice tranzacții comise după cel mai recent jurnal MS... SQL Server bazele de date de rezervă se pierd.

2.4.2 Opțiuni cheie pentru copiile de rezervă ale jurnalului de coadă

CU NORECOVERY: Folosiți WITH NORECOVERY dacă faceți o copie de rezervă a unei părți a jurnalului unei baze de date online pe care intenționați să o restaurați ulterior. NORECOVERY scoate baza de date offline. De asemenea, puteți face copii de rezervă SQL Server jurnalul final al unei baze de date offline. Dacă doriți să lăsați baza de date offline, utilizați WITH NORECOVERY. Rețineți că jurnalul va fi trunchiat dacă nu specificați opțiunea COPY_ONLY sau NO_TRUNCATE.

CU CONTINUE_AFTER_ERROR: Folosește CONTINUE_AFTER_ERROR numai dacă creezi o copie de rezervă a finalului unei baze de date deteriorate. Când creezi o copie de rezervă a finalului unui jurnal dintr-o bază de date deteriorată, este posibil ca unele dintre metadatele capturate în mod normal în copiile de rezervă ale jurnalelor să nu fie disponibile.

2.5 Copiere de rezervă doar pentru copiere

Copiile de rezervă doar pentru copiere creează o copie de rezervă independentă fără a afecta secvența normală de backup. Nu perturbă lanțurile de backup diferențiale sau continuitatea jurnalului de tranzacții.

Folosiți copii de rezervă doar pentru copiere pentru:

  • Crearea copiilor bazei de date de testare sau dezvoltare
  • Copii de rezervă ad-hoc fără a afecta copiile de rezervă programate
  • Copiere de rezervă înainte de modificări majore sau testare

2.6 Copiere de rezervă a fișierelor și grupurilor de fișiere

Copiile de rezervă ale fișierelor și grupurilor de fișiere vizează anumite fișiere sau grupuri de fișiere din baza de date, mai degrabă decât întreaga bază de date. Această abordare funcționează bine pentru bazele de date foarte mari, unde copierea de rezervă a tuturor elementelor durează prea mult.

Beneficiile includ:

  • Operațiuni de backup mai rapide pentru baze de date mari
  • Copiere de rezervă paralelă a mai multor grupuri de fișiere
  • Opțiuni de recuperare granulară
  • Programări optimizate de backup pentru grupuri de fișiere doar pentru citire

2.7 Copiere de rezervă parțială

Copiile de rezervă parțiale includ toate datele din grupul de fișiere principal și orice grupuri de fișiere cu permisiuni de citire-scriere, excluzând grupurile de fișiere doar pentru citire. Acest lucru reduce dimensiunea și timpul de copiere de rezervă pentru bazele de date cu date istorice statice stocate în grupuri de fișiere doar pentru citire.

3. SQL Server Modele de recuperare

SQL Server Modelele de recuperare determină ce tipuri de copii de rezervă sunt disponibile și cum sunt gestionate jurnalele de tranzacții.

3.1 Model simplu de recuperare

3.1.1 Caracteristici și cazuri de utilizare

Recuperarea simplă trunchiază automat jurnalul de tranzacții după fiecare punct de control, recuperând spațiu fără a fi necesare copii de rezervă ale jurnalului.

Cel mai bun pentru:

  • Baze de date de dezvoltare și testare
  • Baze de date în care pierderea de date între copii de rezervă este acceptabilă
  • Depozite de date cu procese ETL care pot fi rulate din nou
  • Baze de date doar pentru citire sau cu raportare

3.1.2 Opțiuni de rezervă disponibile

Recuperarea simplă susține:

  • Copii de rezervă complete
  • Copii de rezervă diferențiale
  • Copii de rezervă pentru fișiere și grupuri de fișiere
  • Copii de rezervă doar pentru copiere

Copiile de rezervă ale jurnalului de tranzacții sunt nu sunt disponibile în modelul simplu de recuperare.

3.2 Model de recuperare completă

3.2.1 Caracteristici și beneficii

Recuperarea completă înregistrează toate tranzacțiile și păstrează înregistrările din jurnal până când le creați o copie de rezervă. Aceasta permite recuperarea completă a datelor în orice moment dintr-o copie de rezervă a jurnalului de tranzacții.

Beneficii cheie:

  • Potențial minim de pierdere a datelor
  • Capacitate de restaurare la un moment dat
  • Acceptă transportul jurnalelor și oglindirea bazei de date
  • Flexibilitate maximă de recuperare

3.2.2 Gestionarea jurnalului de tranzacții

În cadrul recuperării complete, trebuie să efectuați copii de rezervă ale jurnalului de tranzacții în mod regulat pentru:

  • Împiedicați ocuparea spațiului pe disc de către jurnalul de tranzacții
  • Mențineți un lanț continuu de backup
  • Activați recuperarea la un moment dat
  • Controlează creșterea fișierelor jurnal

Program tipic de backup: backup-uri complete săptămânale, backup-uri diferențiale zilnice, backup-uri ale jurnalelor la fiecare 15-30 de minute.

3.3 Model de recuperare înregistrată în bloc

3.3.1 Când se utilizează înregistrarea în bloc

Recuperarea înregistrată în bloc înregistrează minim operațiunile în bloc, cum ar fi BULK INSERT, SELECT INTO și reconstruirea indexurilor, menținând în același timp înregistrarea completă a tranzacțiilor obișnuite.

Folosește recuperarea înregistrată în jurnal în bloc atunci când:

  • Efectuarea unor operațiuni de import în vrac de mari dimensiuni
  • Reconstruirea indexurilor pe tabele mari
  • Executarea operațiunilor care beneficiază de o înregistrare minimă a înregistrărilor
  • Necesitatea reducerii dimensiunii jurnalului de tranzacții în timpul anumitor operațiuni

3.3.2 Limitări și considerații

Limitări importante:

  • Restaurarea la un moment dat nu este disponibilă în timpul operațiunilor în bloc
  • Copiile de rezervă ale jurnalelor sunt mai mari atunci când au loc operațiuni în bloc
  • Trebuie să comutați între înregistrarea completă și înregistrarea în bloc, după cum este necesar

3.4 Alegerea modelului de recuperare potrivit

Selectați modelul de recuperare în funcție de cerințele afacerii:

Model de recuperare Risc de pierdere a datelor Recuperare punct-in-time Cele mai bune
simplu Modificări de la ultima copie de rezervă Nu Dezvoltare/testare, pierdere de date acceptabilă
Complet Minim (de obicei minute) Da Baze de date de producție, date critice
Înregistrare în bloc Modificări de la ultima copie de rezervă a jurnalului Limitat în timpul operațiunilor în vrac Utilizare temporară în timpul operațiunilor în vrac

4. Backup SQL Server Bază de date folosind SSMS

4.1 Cerințe preliminare și pregătire

Înainte de a face backup SQL Server baza de date, asigurați-vă că:

  • Aveți permisiunile corespunzătoare (permisiunea db_owner sau BACKUP DATABASE)
  • Spațiu suficient pe disc pentru fișierul de rezervă
  • SQL Server Management Studio (SSMS) instalat
  • Căi de rețea accesibile dacă se face backup la locații de rețea

4.2 Pas cu pas: Copiere de rezervă completă cu SSMS

Urmați acești pași pentru a crea o copie de rezervă completă a SQL Server bază de date folosind SSMS.

4.2.1 Deschidere SQL Server Studio de management

  1. Lansa SQL Server Studio de management
  2. Introduceți numele serverului dvs. în Numele serverului camp
  3. Selectați metoda de autentificare
  4. Clic Connect

4.2.2 Selectarea opțiunilor pentru baza de date și copie de rezervă

  1. In Explorator de obiecte, extindeți Baze de date nod
  2. Faceți clic dreapta pe baza de date pe care doriți să o copiați de rezervă
  3. Selectați Sarcini -> Copii de rezervă
    Porniți o sarcină de copiere de rezervă pentru un SQL Server bază de date în SQL Server Studio de management.
  4. În Faceți backup bazei de date fereastră, verificați numele bazei de date
  5. Selectați Complet ca Tip de rezervă
    Creați o copie de rezervă completă a unui SQL Server bază de date în SQL Server Studio de management.

4.2.3 Configurarea destinației de rezervă

  1. În Destinaţie, Faceți clic pe Elimină pentru a șterge calea implicită (dacă este necesar)
  2. Clic Adăuga pentru a specifica o nouă locație de rezervă
  3. Introduceți calea și numele fișierului cu .in spate extensie
  4. Clic OK pentru a confirma destinația

Setați destinația de rezervă în SQL Server Studio de management.

4.2.4 Advanced Backup Setări cont

  1. Clic Opțiuni media în panoul din stânga
  2. Alegeți opțiunile de rezervă:
    • Suprascrieți toate seturile de copii de rezervă existente – Înlocuiește copiile de rezervă existente
    • Adăugați la setul de copii de rezervă existent – Adaugă la fișierul de rezervă existent

    Setați opțiunile pentru suportul de rezervă în SQL Server Studio de management.

  3. Clic Opțiuni de backup în panoul din stânga
  4. Configurați setările opționale:
    • Comprimați copia de rezervă – Reduce dimensiunea fișierului de rezervă
    • Criptați backupul – Protejează datele sensibile
    • Verificați copia de rezervă când ați terminat – Verifică integritatea copiei de rezervă

    Setați opțiunile de rezervă în SQL Server Studio de management.

4.2.5 Executarea copiei de rezervă

  1. Revizuiți toate setările din Faceți backup bazei de date fereastră
  2. Clic OK pentru a începe procesul de backup
  3. Așteptați finalizarea copiei de rezervă
  4. Un mesaj de succes apare când copia de rezervă se termină
  5. Clic OK pentru a închide caseta de dialog de confirmare

4.3 Crearea unui backup diferențial cu SSMS

Pentru a crea o copie de rezervă diferențială, urmați aceiași pași ca pentru o copie de rezervă completă, dar selectați Diferenţial ca tip de copie de rezervă în pasul 4.2.2. Rețineți că copiile de rezervă diferențiale necesită o copie de rezervă completă anterioară ca bază.

Creați o copie de rezervă diferențială a unui SQL Server bază de date în SQL Server Studio de management.

4.4 Crearea unei copii de rezervă a jurnalului de tranzacții cu SSMS

Copiile de rezervă ale jurnalului de tranzacții sunt disponibile numai pentru bazele de date care utilizează modele de recuperare completă sau înregistrată în bloc.

  1. Faceți clic dreapta pe baza de date în Explorator de obiecte
  2. Selectați Sarcini -> Copii de rezervă
  3. Alege Jurnal de tranzacții ca tip de rezervă
  4. Configurați destinația și opțiunile după cum este necesar
  5. Clic OK pentru a crea o copie de rezervă a jurnalului

Creați o copie de rezervă a jurnalului de tranzacții al unui SQL Server bază de date în SQL Server Studio de management.

4.5 Crearea unei copii de rezervă doar pentru copiere cu SSMS

Copiile de rezervă doar pentru copiere nu interferează cu secvența obișnuită de backup.

  1. Urmați pașii pentru crearea unei copii de rezervă complete
  2. În Opțiuni de backup pagină
  3. Verifică Copiere de rezervă doar pentru copiere opțiune
  4. Finalizați procesul de backup în mod normal

Creați o copie de rezervă doar pentru copierea unui SQL Server bază de date în SQL Server Studio de management.

5. Backup SQL Server Bază de date folosind T-SQL

5.1 Sintaxa de bază a bazei de date BACKUP

Comanda T-SQL BACKUP DATABASE oferă control programatic asupra SQL Server backup-uri.

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

5.2 Comenzi T-SQL pentru backup complet

5.2.1 Script simplu pentru copie de rezervă completă

Creați o copie de rezervă completă de bază cu opțiuni minime:

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

5.2.2 Copiere de rezervă completă cu opțiuni

Adăugați informații descriptive și opțiuni de formatare:

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

Opțiuni explicate:

  • FORMAT – Creează un nou set de copii de rezervă
  • INIT – Suprascrie fișierul de rezervă existent
  • NUME – Atribuie un nume setului de copii de rezervă
  • DESCRIERE – Adaugă text descriptiv
  • STATS – Arată progresul la fiecare 10%

5.3 Comenzi T-SQL pentru backup diferențial

Copiile de rezervă diferențiale utilizează opțiunea DIFFERENTIAL:

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

5.4 Comenzi T-SQL pentru copierea de rezervă a jurnalului de tranzacții

Folosește BACKUP LOG pentru copiile de rezervă ale jurnalului de tranzacții:

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

5.5 Opțiuni avansate de backup T-SQL

5.5.1 Copiere de rezervă în mai multe fișiere

Distribuiți backup-ul pe mai multe fișiere pentru o performanță mai rapidă:

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 Copiere de rezervă cu compresie

Reduceți dimensiunea fișierului de rezervă și lățimea de bandă a rețelei:

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

5.5.3 Copiere de rezervă cu criptare

Protejați datele sensibile cu criptare:

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 Copiere de rezervă cu protecție prin parolă

Adăugați protecție prin parolă (depreciată, utilizați criptarea în schimb):

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

5.5.5 Copii de rezervă în oglindă

Creați copii simultane în locații diferite:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO

5.6 Exemple și scripturi de backup T-SQL

Script complet de backup cu gestionarea erorilor:

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. Backup SQL Server Bază de date folosind PowerShell

6.1 Cmdlet-uri pentru backup PowerShell

SQL Server Modulul PowerShell oferă cmdlet-uri pentru automatizarea backup-ului:

  • Copiere de rezervă-SqlDatabase – Creează copii de rezervă ale bazei de date
  • Restaurare-SqlDatabase – Restaurează copiile de rezervă ale bazei de date
  • Get-SqlDatabase – Preia informații din baza de date

Importați fișierul SQL Server modul:

Import-Module SqlServer

6.2 Crearea de scripturi de backup cu PowerShell

Comandă de bază pentru backup în PowerShell:

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

Exemplu de backup diferențial:

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

Copiere de rezervă a jurnalului de tranzacții:

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

6.3 Automatizarea copiilor de rezervă cu PowerShell

Creați un script de backup automat pentru mai multe baze de date:

# 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. Backup SQL Server Bază de date folosind linia de comandă

SQL Server oferă utilitare din linia de comandă care vă permit să faceți copii de rezervă SQL Server baza de date fără a utiliza SSMS sau interfețe grafice. Aceste instrumente sunt esențiale pentru scenarii de automatizare, scripting și administrare la distanță.

7.1 Utilizarea bazei de date de rezervă SQLCMD

SQLCMD este utilitarul modern din linia de comandă pentru SQL Server care a înlocuit OSQL. Acesta oferă funcționalități îmbunătățite și este instrumentul recomandat pentru executarea comenzilor T-SQL din promptul de comandă.

7.1.1 Sintaxa SQLCMD de bază

sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: Specifică SQL Server nume instanță
  • -d: Specifică numele bazei de date
  • -Î: Execută o interogare și se închide
  • -ȘI: Utilizează autentificarea Windows
  • -U: Specifică SQL Server nume de utilizator de conectare
  • -P: Specifică parola pentru SQL Server Logare

7.1.2 Crearea unei copii de rezervă cu SQLCMD

Pentru backup SQL Server Folosind SQLCMD, urmați acești pași:

  1. Operatii Deschise Command Prompt or PowerShell
  2. Navigați către SQL Server directorul tools (de obicei adăugat la PATH în timpul instalării)
  3. Executați comanda SQLCMD pentru copierea de rezervă a bazei de date cu parametrii corespunzători
  4. Verificați dacă fișierul de rezervă a fost creat cu succes

Exemplu de comandă pentru o copie de rezervă completă folosind autentificarea Windows:

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

Exemplu folosind SQL Server Autentificare:

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

Crearea unei copii de rezervă diferențiale cu SQLCMD

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

Crearea unei copii de rezervă a jurnalului de tranzacții cu SQLCMD

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

7.1.3 Copiere de rezervă a bazei de date a editorului în SQL Server Replicarea

Când se fac copii de rezervă ale bazelor de date ale editorilor în SQL Server Replicare, utilizați opțiunea WITH REPLICATION pentru a păstra metadatele de replicare și a asigura consecvența tranzacțiilor.

-- Backup publisher database with replication support
BACKUP DATABASE PublisherDB 
TO DISK = 'C:\Backup\PublisherDB_Full.bak'
WITH REPLICATION, 
     COMPRESSION,
     CHECKSUM,
     INIT,
     STATS = 10;
GO

Pentru mai multe detalii despre SQL Server replicare, vezi ghid cuprinzător.

7.2 Utilizarea bazei de date de rezervă OSQL

OSQL este un utilitar de linie de comandă vechi pentru SQL ServerDeși Microsoft recomandă utilizarea SQLCMD, OSQL rămâne disponibil pentru compatibilitate inversă cu scripturile și sistemele mai vechi.

7.2.1 Sintaxa OSQL de bază

Sintaxa OSQL este similară cu SQLCMD:

osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: SQL Server nume instanță
  • -d: Numele bazei de date
  • -Î: Execută interogarea și se închide
  • -ȘI: Folosește o conexiune de încredere (autentificare Windows)
  • -U: Autentificare nume de utilizator
  • -P: Parola de logare

7.2.2 Crearea unei copii de rezervă cu OSQL

Pentru a efectua operațiuni de backup la baza de date OSQL:

  1. Operatii Deschise Command Prompt
  2. Verificați dacă OSQL este disponibil în SQL Server instalare
  3. Executați comanda de backup OSQL

Exemplu de copie de rezervă completă:

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

Exemplu de backup diferențial:

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

8. Terță parte SQL Server Instrumente de rezervă

In timp ce SQL Server include capacități native de backup, instrumentele terțe oferă funcții îmbunătățite, automatizare și gestionare la nivel de întreprindere pentru organizațiile cu cerințe complexe. Aceste soluții oferă compresie avansată, gestionare centralizată și fluxuri de lucru simplificate pentru backup. SQL Server baze de date în mai multe medii.

8.1 Veeam Backup pentru SQL Server

Veeam oferă soluții complete de protecție a datelor, concepute special pentru backup SQL Server baze de date cu impact minim asupra sistemelor de producție.

Caracteristici cheie:

  • Procesare bazată pe aplicație pentru SQL Server consistența backup-ului
  • Copiere de rezervă și gestionare a jurnalului de tranzacții
  • Recuperare la un moment dat cu opțiuni de restaurare granulară
  • Integrare cu Veeam Backup & Replication pentru o protecție unificată a datelor
  • Verificare și validare automată a copiilor de rezervă
  • Suport pentru grupurile de disponibilitate mereu active
  • La nivel de mașină virtuală și la nivel de aplicație SQL Server opțiuni de rezervă

8.2 Copiere de rezervă Barracuda pentru SQL Server

Barracuda oferă soluții de backup integrate în cloud cu gestionare simplificată pentru MS SQL Server operațiuni de backup ale bazei de date.

Caracteristici cheie:

  • Automated SQL Server programarea copiilor de rezervă
  • Replicare în cloud încorporată către Barracuda Cloud Storage
  • Deduplicare și compresie globală
  • Capacități de recuperare locală instantanee
  • Consolă de administrare bazată pe web
  • Suport pentru copii de rezervă complete, diferențiale și ale jurnalului de tranzacții
  • Protecție ransomware cu copii de rezervă imuabile

8.3 Veritas NetBackup pentru SQL Server

Veritas NetBackup este o platformă de backup la nivel de întreprindere care oferă protecție completă pentru SQL Server baze de date în medii IT complexe.

Caracteristici cheie:

  • Gestionare a copiilor de rezervă la scară largă pentru mii de utilizatori SQL Server cazuri
  • Algoritmi avansați de deduplicare și compresie
  • Politici și programare flexibile de backup
  • Sprijin pentru toți SQL Server modele de recuperare
  • Integrare cu biblioteci de benzi și stocare în cloud
  • Recuperare granulară a bazelor de date, tabelelor și obiectelor
  • Suport multi-platformă (Windows, Linux) SQL Server)
  • Gestionarea automată a ciclului de viață al copiilor de rezervă

8.4 Commvault Copiere de rezervă și recuperare completă pentru SQL Server

Commvault oferă gestionare inteligentă a datelor cu backup complet SQL Server capabilități și funcții avansate de automatizare.

Caracteristici cheie:

  • Optimizarea backup-urilor bazată pe inteligență artificială și detectarea anomaliilor
  • Platformă unificată pentru backup, recuperare și arhivare
  • Avansat SQL Server compresie de rezervă (reducere de până la 90%)
  • Orchestrarea automată a recuperării în caz de dezastru
  • Sincronizare live pentru protecție RPO aproape zero
  • Suport pentru SQL Server implementări locale, în cloud și hibride
  • IntelliSnap pentru copii de rezervă bazate pe instantanee
  • Capacități complete de conformitate și e-discovery

8.5 Cohesity DataProtect pentru SQL Server

Cohesity oferă managementul datelor de generație următoare cu infrastructură hiperconvergentă pentru tehnologiile moderne SQL Server operațiuni de rezervă.

Caracteristici cheie:

  • Arhitectură la scară web pentru o gestionare simplificată
  • Capacități de restaurare instantanee în masă pentru SQL Server baze de date
  • Instantanee consistente cu aplicația
  • Deduplicare globală pentru toate copiile de rezervă
  • Integrare nativă în cloud (AWS, Azure, Google Cloud)
  • Tablouri de bord integrate pentru analiză și monitorizare
  • Capacități de clonare și testare a bazei de date
  • Protecție împotriva ransomware cu instantanee imuabile

8.6 Red Gate SQL Backup Pro

Red Gate SQL Backup Pro este un instrument specializat, axat exclusiv pe optimizarea SQL Server operațiuni de backup și restaurare cu compresie și performanță superioare.

Caracteristici cheie:

  • Rapoarte de compresie de top în industrie (până la 95%)
  • Reziliență a rețelei pentru backup SQL Server prin conexiuni nesigure
  • Criptare backup cu AES pe 256 de biți
  • Verificarea copiilor de rezervă și verificarea integrității
  • Istoric detaliat al copiilor de rezervă și raportare
  • Integrarea cu SQL Server Studio de management
  • Suport pentru backup în locații de rețea și stocare în cloud
  • Copiere de rezervă și restaurare în paralel pentru operațiuni mai rapide

9. Cum se restaurează SQL Server Baza de date

9.1 Înțelegerea procesului de restaurare

Restaurarea unui SQL Server baza de date recreează baza de date din fișierele de rezervă. Procesul de restaurare citește fișierul de rezervă și reconstruiește baza de date la starea în care a fost creată copia de rezervă.

Considerații importante:

  • Restaurarea suprascrie baza de date existentă
  • Utilizatorii sunt deconectați în timpul restaurării
  • Restaurarea trebuie să urmeze secvența de backup (complet, apoi diferențial, apoi jurnale)
  • Baza de date nu este disponibilă în timpul operațiunii de restaurare

9.2 Restaurarea copiei de rezervă complete folosind SSMS

Urmați acești pași pentru a restaura o copie de rezervă completă a bazei de date.

9.2.1 Procesul de restaurare pas cu pas

  1. Operatii Deschise SQL Server Studio de management și conectați-vă la serverul dvs.
  2. In Explorator de obiecte, Click dreapta Baze de date
  3. Selectați Restaurați baza de date
  4. În Sursa secțiune, selectați Dispozitiv
  5. Apasă pe ... buton pentru a căuta fișiere de rezervă
  6. Clic Adăuga și navigați la fișierul .bak
  7. Selectați fișierul de rezervă și faceți clic pe OK
  8. În Destinaţie secțiune, introduceți numele bazei de date
  9. Revizuirea seturilor de copii de rezervă pentru restaurare
  10. Clic OK pentru a începe restaurarea

9.2.2 Opțiuni și setări de restaurare

Clic Opţiuni în panoul din stânga pentru a configura:

  • Suprascrie baza de date existentă (CU ÎNLOCUIRE) – Permite restaurarea peste baza de date existentă
  • Păstrați stările de replicare (CU KEEP_REPLICATION) - Păstrează SQL Server replică de stat
  • Restricționare acces la baza de date restaurată (CU RESTRICTED_USER) – Limitează accesul post-restaurare
  • Starea de recuperare – Alegeți între RESTAURARE CU RECUPERARE sau FĂRĂ RECUPERARE

9.3 Restaurarea copiei de rezervă diferențiale

Restaurarea diferențială necesită atât copii de rezervă complete, cât și copii de rezervă diferențiale:

  1. Mai întâi, restaurați copia de rezervă completă cu NORECUPERARE opțiune
  2. Apoi restaurați copia de rezervă diferențială cu RECUPERARE opțiune

Exemplu T-SQL:

-- 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 Restaurarea cu copii de rezervă ale jurnalului de tranzacții

Pentru recuperarea la un moment dat, restaurați în ordine:

  1. Restaurați o copie de rezervă completă cu NORECOVERY
  2. Restaurați backup-ul diferențial cu NORECOVERY (dacă este disponibil)
  3. Restaurați copiile de rezervă ale jurnalului de tranzacții în ordine cu NORECOVERY
  4. Restaurați copia de rezervă a jurnalului final cu 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 Restaurare la un moment dat

Restaurați baza de date la un anumit moment în timp folosind opțiunea STOPAT:

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

SQL Server nu acceptă restaurarea directă la nivel de tabel din fișierele de rezervă. Cu toate acestea, există încă câteva soluții.

9.6.1 Metoda 1: Instantanee ale bazei de date (cea mai bună pentru prevenire)

Instantaneele bazei de date oferă cea mai rapidă modalitate de a restaura datele din tabel dacă sunt create înainte de apariția problemei. Un instantaneu este o vizualizare statică, doar pentru citire, a unei baze de date la un anumit moment în timp.

Crearea unei instantanee a bazei de date:

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

Restaurarea datelor din tabel din instantaneu:

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

Cerințe versiune: Instantaneele bazei de date sunt disponibile în SQL Server Enterprise Edition (toate versiunile) și Standard Edition începând cu SQL Server 2016 SP1.

9.6.2 Metoda 2: Restaurare în baza de date temporară (cea mai frecventă)

Această metodă funcționează atunci când trebuie să recuperați datele din tabel după ce apare o problemă și nu există nicio instantanee:

  1. Restaurați o copie de rezervă într-o bază de date temporară
  2. Copiați datele tabelului din baza de date temporară în baza de date curentă

9.7 Restaurare pagină

Restaurarea paginilor recuperează paginile individuale deteriorate fără a restaura întreaga bază de date, reducând la minimum timpul de nefuncționare prin vizarea doar a paginilor corupte. Această funcție este disponibilă numai în modelele de recuperare completă sau în jurnal în bloc și necesită un lanț neîntrerupt de copii de rezervă ale jurnalului de tranzacții, de la copia de rezervă a paginii până la fișierul jurnal curent.

Pentru a efectua restaurarea paginii, identificați mai întâi paginile deteriorate, faceți o copie de rezervă a jurnalului de tranzacții, restaurați paginile specifice, apoi aplicați toate jurnalele de tranzacții:

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

Notă: Restaurarea paginilor nu este disponibilă în modelul de recuperare simplă. Nu puteți restaura pagini din tabelele de sistem sau din metadatele grupului de fișiere principal.

9.8 Restaurare fragmentată

Restaurarea fragmentară (restaurare parțială) restaurează o bază de date în etape la nivel de grup de fișiere, începând cu grupul de fișiere principal. Aceasta aduce online imediat datele critice, în timp ce datele mai puțin critice sunt restaurate în fundal. În modelul de recuperare simplă, toate grupurile de fișiere de citire-scriere trebuie restaurate împreună cu grupul de fișiere principal; numai grupurile de fișiere doar de citire pot fi restaurate separat. În modelele de recuperare completă sau cu înregistrare în bloc, fiecare grup de fișiere poate fi adus online independent după aplicarea jurnalelor de tranzacții.

Model de recuperare Comportament de restaurare fragmentată
simplu Grupurile de fișiere principale și toate grupurile de fișiere de citire-scriere au fost restaurate împreună. Grupurile de fișiere doar de citire au fost restaurate separat.
Înregistrare completă/în bloc Fiecare grup de fișiere restaurat independent la nivel de grup de fișiere.

Exemplu pentru modelul de recuperare completă – restaurați mai întâi grupul de fișiere principal pentru a aduce baza de date online, apoi restaurați grupurile de fișiere secundare în timp ce baza de date rămâne operațională:

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

Exemplu pentru modelul simplu de recuperare:

-- 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 Restaurarea folosind comenzi T-SQL

Script de restaurare complet cu relocarea fișierelor:

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 Verificarea integrității copiei de rezervă înainte de restaurare

Verificați validitatea copiei de rezervă fără restaurare:

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

Această comandă verifică dacă setul de copii de rezervă este complet și poate fi citit fără a restaura efectiv baza de date.

10. SQL Server Cele mai bune practici pentru backup

10.1 Dezvoltarea unei strategii de backup

10.1.1 Evaluarea cerințelor de afaceri

Înainte de a implementa copii de rezervă, evaluați:

  • Importanța datelor: Cât de importante sunt aceste date pentru operațiuni?
  • Frecvența modificării: Cât de des se schimbă datele?
  • Dimensiunea bazei de date: Cât de mare este baza de date?
  • Resurse valabile: Ce spațiu de stocare și lățime de bandă sunt disponibile?
  • Nevoi de conformitate: Ce reglementări trebuie să respectați?

10.1.2 Definirea RTO și RPO

Obiectiv de timp de recuperare (RTO): Timp maxim de nefuncționare acceptabil. Determină cât de repede trebuie să restabiliți operațiunile.

Obiectiv Punct de Recuperare (RPO): Pierdere maximă acceptabilă de date. Determină frecvența de backup.

Cerință RTO/RPO Strategie de backup recomandată
RPO: Ore, RTO: Ore Jurnal complet zilnic + jurnal de tranzacții la fiecare 1-2 ore
RPO: Minute, RTO: Ore Copii de rezervă complete zilnice + jurnal la fiecare 15-30 de minute
RPO: Aproape zero, RTO: Minute Grupuri de disponibilitate permanent + copii de rezervă frecvente ale jurnalelor
RPO: Zile, RTO: Zile Diferențial săptămânal complet + zilnic

10.2 Crearea unui program de copiere de rezervă

10.2.1 Recomandări de frecvență

Program tipic de backup pentru bazele de date de producție:

  • Copii de rezervă complete: Săptămânal (duminică noaptea în timpul activității reduse)
  • Copii de rezervă diferențiale: Zilnic (în fiecare noapte)
  • Copii de rezervă ale jurnalului de tranzacții: La fiecare 15-30 de minute în timpul programului de lucru
  • Copii de rezervă doar pentru copiere: După cum este necesar pentru testare sau dezvoltare

10.2.2 Echilibrarea performanței și a protecției

Luați în considerare acești factori atunci când programați:

  • Ore de vârf: Executați copii de rezervă complete în perioadele cu activitate redusă
  • Impactul asupra resurselor: Compresia reduce I/O, dar crește utilizarea CPU-ului
  • Lățimea de bandă a rețelei: Programați copii de rezervă ale rețelei atunci când traficul este scăzut
  • Ferestre de rezervă: Asigurați-vă că backup-urile sunt complete înainte de orele de program

10.3 Cele mai bune practici pentru stocarea copiilor de rezervă

10.3.1 Depozitare la fața locului vs. depozitare în afara amplasamentului

Copii de rezervă la fața locului:

  • Timp de backup și restaurare mai rapid
  • Cost mai mic pentru accesul de înaltă frecvență
  • Vulnerabil la dezastre locale
  • Cel mai bun pentru scenarii de recuperare rapidă

Copii de rezervă în afara locației:

  • Protecție împotriva dezastrelor specifice amplasamentului
  • Respectarea cerințelor de redundanță geografică
  • Timpi de restaurare mai lenți
  • Esențial pentru recuperarea în caz de dezastru

10.3.2 Opțiuni de backup în cloud

Avantajele stocării în cloud:

  • Azure Blob Storage: Nativ SQL Server integrare, rentabilă pentru acces rar
  • Amazon S3: Niveluri de depozitare extrem de durabile și flexibile
  • Google Cloud Storage: Prețuri competitive, disponibilitate globală

10.3.3 Politici de păstrare a copiilor de rezervă

Politica de păstrare a mostrelor:

  • Păstrați copii de rezervă zilnice timp de 7 zile
  • Păstrați copii de rezervă săptămânale timp de 4 săptămâni
  • Păstrați copii de rezervă lunare timp de 12 luni
  • Păstrați copii de rezervă anuale timp de 7 ani (conformitate)

10.4 Compresie și criptare backup

Beneficii ale compresiei:

  • Reduce dimensiunea fișierului de rezervă cu 50-70%
  • Reduce timpul de backup
  • Reduce costurile de depozitare
  • Reduce lățimea de bandă a rețelei pentru backup-uri la distanță

Cele mai bune practici de criptare:

  • Criptați întotdeauna copiile de rezervă care conțin date sensibile
  • Folosește criptarea AES pe 256 de biți
  • Gestionare securizată a certificatelor sau cheilor
  • Documentați cheile de criptare și stocați-le separat

10.5 Testarea și verificarea copiilor de rezervă

10.5.1 Testarea regulată a restaurării

Proceduri de restaurare a testului trimestrial sau lunar:

  1. Restaurarea copiilor de rezervă într-un mediu de testare
  2. Verificați integritatea și completitudinea datelor
  3. Verificați funcționalitatea aplicației
  4. Timpul de restaurare a documentului (validare RTO)
  5. Identificați și rezolvați orice probleme

10.5.2 Utilizarea RESTORE VERIFYONLY

Validarea automată a copiilor de rezervă:

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

Executați verificarea imediat după finalizarea copiei de rezervă sau ca parte a întreținerii programate.

10.6 Automatizarea și monitorizarea copiilor de rezervă

10.6.1 SQL Server Locuri de muncă de agent

Creați sarcini de backup automate:

  1. Extinde SQL Server AgentLink extern în SSMS
  2. Faceți clic dreapta Locuri de munca și selectați Nou loc de muncă
  3. Denumiți jobul (de exemplu, „Copiere de rezervă completă zilnică”)
  4. Adauga o Pas cu comenzi de backup T-SQL
  5. Crearea unei Program pentru timpul de execuție
  6. Configurați Anunturi pentru succes/eșec

10.6.2 Planuri de întreținere

SQL Server Planurile de întreținere oferă o interfață vizuală pentru automatizarea copiilor de rezervă:

  1. Navigheaza catre Management -> Planuri de întreținere
  2. Faceți clic dreapta și selectați Expert plan de întreținere
  3. Selectați sarcinile de backup pentru automatizare
  4. Configurați programul și opțiunile de backup
  5. Configurați raportarea și înregistrarea în jurnal

10.6.3 Alerte și notificări de rezervă

Configurați notificările prin e-mail:

  • Configurați Mail-ul bazei de date în SQL Server
  • Creați alerte pentru erori de backup
  • Monitorizați istoricul lucrărilor de backup
  • Trimiteți rapoarte rezumative administratorilor

10.7 Documentație și planificare a recuperării în caz de dezastru

Mențineți documentația completă:

  • Programul de backup: Când și ce se face backup
  • Politici de retenție: Cât timp sunt păstrate copiile de rezervă
  • Locații de depozitare: Unde sunt stocate copiile de rezervă
  • Proceduri de restaurare: Instrucțiuni de recuperare pas cu pas
  • Informatii de contact: Personal cheie și furnizori
  • Rezultatele testelor de recuperare: Rezultatele testelor documentate

11. avansat SQL Server Scenarii de rezervă

11.1 Copierea de rezervă a bazelor de date foarte mari (VLDB)

11.1.1 Strategii pentru fișiere și grupuri de fișiere

Pentru baze de date care depășesc câteva sute de gigaocteți:

  • Separați datele doar pentru citire și cele pentru scriere în grupuri de fișiere diferite
  • Faceți copii de rezervă ale grupurilor de fișiere doar pentru citire rar
  • Concentrați copiile de rezervă frecvente pe grupurile de fișiere active
  • Folosește copii de rezervă la nivel de fișier pentru control granular

Exemplu de copie de rezervă a fișierelor:

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

11.1.2 Optimizarea performanței de backup

Îmbunătățiți performanța backup-ului VLDB:

  • Copii de rezervă în dungi: Scrieți simultan în mai multe fișiere
  • Comprimare: Reduceți cerințele de I/O și stocare
  • Mai multe dispozitive de rezervă: Paralelizarea operațiunilor de backup
  • Stocare rapidă: Folosește SSD-uri pentru pregătirea copiilor de rezervă
  • Număr de buffere: Opțiunea de mărire a BUFFERCOUNT-ului
  • Dimensiune maximă transfer: Optimizați setarea MAXTRANSFERSIZE
-- 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 Copiere de rezervă în grupurile de disponibilitate mereu active

Grupurile de disponibilitate Always On distribuie sarcina de backup între replici:

  • Configurați preferințele pentru backup (primar, secundar sau orice replică)
  • Descarcă copiile de rezervă către replici secundare pentru a reduce volumul de muncă principal
  • Folosește copii de rezervă COPY_ONLY pe replici secundare
  • Monitorizați setările de prioritate a copiilor de rezervă
-- 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 Copiere de rezervă pentru oglindirea bazei de date

În scenariile de oglindire a bazelor de date:

  • Faceți copii de rezervă ale bazei de date principale în mod regulat
  • Copiile de rezervă ale jurnalului de tranzacții sunt esențiale pentru oglindire
  • Baza de date oglindă este în starea RESTAURARE (nu poate fi copiată de rezervă direct)
  • Luați în considerare crearea unei copii de rezervă a oglinzii după failover

11.4 Copiere de rezervă în Azure Blob Storage

SQL Server se poate face backup direct în Azure Blob Storage:

  1. Creați un cont de stocare Azure
  2. Crează SQL Server credențiale pentru autentificarea Azure
  3. Folosește sintaxa URL pentru destinația de rezervă
-- 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 Copiere de rezervă la URL

Avantajele copierii de rezervă la adresa URL:

  • Capacitate nelimitată de stocare în cloud
  • Redundanța geografică gestionată automat
  • Model de prețuri plătite
  • Nu este necesar spațiu pe disc local
  • Acceptă până la 64 de adrese URL per copie de rezervă (striping)

11.6 Backup-uri în dungi pentru performanță

Copiile de rezervă în dungi împart datele în mai multe fișiere pentru o operare/ieșire mai rapidă:

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

Notă: Toate fișierele stripe sunt necesare pentru restaurare. Lipsa oricărui fișier face ca copia de rezervă să fie inutilizabilă.

12. Depanare SQL Server Probleme de backup

12.1 Erori frecvente de backup și soluții

Eroare: „Eroare sistem de operare 5: Acces refuzat”

  • Cauza: SQL Server contul de serviciu nu are permisiuni
  • Soluţie: Acordați permisiuni de scriere către SQL Server cont de serviciu în folderul de rezervă

Eroare: „Nu se poate deschide dispozitivul de backup… Eroare dispozitiv sau dispozitiv offline”

  • Cauza: Cale nevalidă sau partajare de rețea indisponibilă
  • Soluţie: Verificați existența căii, verificați conectivitatea la rețea, asigurați suficient spațiu pe disc

Eroare: „Nu există suficient spațiu pe disc”

  • Cauza: Spațiu pe disc insuficient pentru backup
  • Soluţie: Eliberați spațiu pe disc, utilizați compresia, faceți backup într-o altă locație

Eroare: „Bază de date în uz. Baza de date este utilizată de alți utilizatori”

  • Cauza: Conexiuni active în timpul restaurării
  • Soluţie: Folosește opțiunea WITH REPLACE sau deconectează utilizatorii mai întâi

12.2 Probleme de performanță ale backup-ului

Diagnosticarea copiilor de rezervă lente:

  • Verificați performanța I/O a discului folosind Performance Monitor
  • Monitorizați progresul backup-ului cu opțiunea STATS
  • Recenzie SQL Server jurnal de erori pentru blocaje
  • Luați în considerare compresia pentru a reduce I/O
  • Utilizați copii de rezervă în dungi pe mai multe discuri

Interogare pentru monitorizarea progresului copiei de rezervă:

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 Probleme de spațiu și depozitare

Preveniți problemele de depozitare:

  • Implementați politici de retenție: Ștergeți automat copiile de rezervă vechi
  • Utilizați compresia: Reduceți dimensiunea fișierului de rezervă cu 50-70%
  • Arhivați într-un spațiu de stocare mai ieftin: Mutați copiile de rezervă vechi în spațiul de stocare al arhivei
  • Monitorizați spațiul pe disc: Configurați alerte pentru spațiul insuficient pe disc
  • Dimensiunea estimată a copiei de rezervă: Calculați dimensiunea așteptată înainte de a crea o copie de rezervă

Dimensiunea estimată a copiei de rezervă:

-- Estimate full backup size
EXEC sp_spaceused;
GO

12.4 Probleme legate de permisiuni și acces

Permisiuni necesare pentru copii de rezervă:

  • BAZA DE DATE DE COPIERE DE SCHIMB permisiune
  • db_backupoperator apartenența la rol
  • administrator de sistem rolul serverului (pentru toate operațiunile de backup)

Acordați permisiuni de backup:

-- 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 Fișiere de rezervă corupte

Detectarea și gestionarea copiilor de rezervă corupte:

Verificați integritatea copiei de rezervă:

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

Activați CHECKSUM pentru copiile de rezervă viitoare:

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

Strategii de prevenire:

  • Folosește întotdeauna opțiunea CHECKSUM în timpul copierii de rezervă
  • Verificați copiile de rezervă imediat după creare
  • Testul se restaurează în mod regulat
  • Stocați copiile de rezervă pe un spațiu de stocare fiabil
  • Păstrați mai multe copii de rezervă

12.6 Recuperarea datelor din fișierele de rezervă corupte

Dacă fișierele de rezervă sunt corupte și totuși doriți să recuperați datele de pe acestea, puteți utiliza instrumente terțe, cum ar fi DataNumen SQL Recovery, ca mai jos:

  1. acasă DataNumen SQL Recovery.
  2. Selectați fișierul de rezervă corupt ca fișier sursă schimbând filtrul la „Toate fișierele (*.*)”:
    Selectați fișierul de rezervă corupt (*.bak) ca fișier sursă care va fi recuperat.
  3. Setați fișierul .MDF de ieșire, dacă este necesar.
  4. Faceți clic pe „Start Recovery” (Începere recuperare) și urmați instrucțiunile pentru a recupera baza de date.
  5. După procesul de recuperare, o nouă bază de date de recuperare va apărea în SQL Server care conține toate datele recuperate.

Utilizare DataNumen SQL Recovery pentru a recupera datele de la cei corupți SQL Server fișier de rezervă (*.bak).

13. SQL Server Securitate de rezervă

13.1 Securizarea fișierelor de rezervă

Protejați fișierele de rezervă împotriva accesului neautorizat:

  • Permisiuni sistem de fișiere: Restricționați accesul doar la administratorii autorizați
  • Securitatea retelei: Utilizați protocoale securizate pentru copiile de rezervă din rețea
  • Siguranță fizică: Depozitați suporturile de backup în locații sigure
  • Înregistrarea accesului: Auditarea accesului la fișierele de rezervă

13.2 Opțiuni de criptare

SQL Server acceptă criptarea transparentă a copiilor de rezervă:

Creați certificat pentru criptare:

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

Copie de rezervă criptată:

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

Important: Faceți copii de rezervă separate pentru certificat și cheia privată. Fără acestea, copiile de rezervă criptate nu pot fi restaurate.

-- 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 Controlul accesului și permisiuni

Implementați principiul privilegiilor minime:

  • Acordați permisiuni de backup doar conturilor necesare
  • Folosește conturi separate pentru operațiuni de backup și restaurare
  • Evitați utilizarea contului SA pentru copii de rezervă
  • Verificați periodic permisiunile de backup
  • Eliminați permisiunile când nu mai sunt necesare

13.4 Considerații de conformitate

Abordați cerințele de reglementare:

  • GDPR: Criptați copiile de rezervă care conțin date personale, implementați politici de păstrare a datelor
  • HIPAA: Criptați informațiile protejate de infecție (PHI) în copiile de rezervă, controlați accesul, mențineți pistele de audit
  • PCI DSS: Criptați copiile de rezervă ale datelor titularului de card, stocați copiile de rezervă în siguranță
  • SOX: Mențineți integritatea copiilor de rezervă și politicile de păstrare a documentelor

14. Monitorizarea și întreținerea operațiunilor de backup

14.1 Urmărirea istoricului copiilor de rezervă

SQL Server stochează istoricul copiilor de rezervă în baza de date msdb:

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

Găsiți baze de date fără copii de rezervă recente:

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 Folosind SQL Server Rapoarte

SQL Server Management Studio include rapoarte de backup încorporate:

  1. Faceți clic dreapta pe baza de date în Object Explorer
  2. Selectați Rapoarte -> Rapoarte standard
  3. Alegeți dintre rapoartele disponibile:
    • Evenimente de backup și restaurare
    • Toate copiile de rezervă
    • Starea expedierii jurnalului de tranzacții

14.3 Instrumente de monitorizare de la terți

Soluții de monitorizare comercială:

  • SQL Sentry: Monitorizare și alertare complete
  • Monitorul SQL Redgate: Monitorizare și diagnosticare în timp real
  • Analizorul de performanță al bazei de date SolarWinds: Monitorizarea performanței și a copiilor de rezervă
  • Manager de diagnosticare Idera SQL: Validarea și alertarea copiilor de rezervă

14.4 Verificări ale stării de sănătate a copiilor de rezervă

Creați o procedură de verificare a stării de sănătate:

-- 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 Întrebări frecvente despre backup

15.1 Cât de des ar trebui să fac backup SQL Server?

Frecvența backup-urilor depinde de obiectivul punctului de recuperare (RPO):

  • Baze de date critice pentru producție: Săptămânal complet, diferențial zilnic, jurnal la fiecare 15-30 de minute
  • Baze de date standard de producție: Săptămânal complet, diferențial zilnic, jurnal la fiecare 1-2 ore
  • Baze de date de dezvoltare: Zilnic sau săptămânal complet
  • Baze de date doar pentru citire: Complet după fiecare modificare a datelor

15.2 Care este diferența dintre backup-ul complet și cel diferențial?

O copie de rezervă completă copiază întreaga bază de date, în timp ce o copie de rezervă diferențială capturează doar modificările de la ultima copie de rezervă completă. Copiile de rezervă diferențiale sunt mai mici și mai rapide, dar necesită copia de rezervă completă de bază pentru restaurare.

15.3 Pot face backup? SQL Server În timp ce rulează?

Da, SQL Server acceptă copii de rezervă online. Utilizatorii pot continua să lucreze în timpul operațiunilor de backup. SQL Server folosește jurnalul său de tranzacții pentru a menține consecvența, asigurându-se că copiile de rezervă sunt valide chiar și cu modificări simultane.

15.4 Cât durează SQL Server Luare de rezervă?

Durata copiei de rezervă variază în funcție de:

  • Dimensiunea bazei de date: Bazele de date mai mari necesită mai mult timp
  • Tip de copie de rezervă: Copiile de rezervă complete durează cel mai mult
  • Comprimare: Poate crește timpul CPU, dar reduce durata totală
  • Viteză de stocare: SSD-urile semnificativ mai rapide decât HDD-urile
  • Încărcarea serverului: Activitatea mai mare încetinește backup-urile

Intervale tipice: o bază de date de 10 GB ar putea dura 5-15 minute pentru o copie de rezervă completă cu compresie pe hardware modern.

15.5 Unde ar trebui să depozitez SQL Server Copii de rezervă?

Cea mai bună practică: Urmați regula 3-2-1:

  • 3 copii ale datelor dvs
  • 2 diferite tipuri de stocare (de exemplu, disc și bandă/cloud)
  • 1 copie în afara site-ului

Locații recomandate:

  • Disc local pentru recuperare rapidă
  • Stocare în rețea pentru administrare centralizată
  • Stocare în cloud (Azure, AWS) pentru recuperare în caz de dezastru

15.6 Ce este extensia de fișier .bak?

Extensia .bak este extensia de fișier implicită pentru SQL Server fișiere de rezervă. Este o convenție, nu o cerință – SQL Server Copiile de rezervă funcționează cu orice extensie de fișier. Cu toate acestea, utilizarea extensiei .bak face ca fișierele de rezervă să fie ușor de identificat și este o practică standard în industrie.

15.7 Cum se face o copie de rezervă SQL Server pe unitatea de rețea?

Pentru a face o copie de rezervă pe o unitate de rețea:

  1. Asigura SQL Server contul de serviciu are permisiuni de scriere asupra partajării de rețea
  2. Folosește calea UNC în comanda de backup: \\ServerName\ShareName\BackupFile.bak
  3. Testați conectivitatea înainte de a programa copii de rezervă automate
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO

15.8 Pot comprima SQL Server Copii de rezervă?

Da, SQL Server acceptă compresia nativă a copiilor de rezervă (Enterprise Edition sau Standard Edition începând cu SQL Server 2016 SP1). Compresia reduce de obicei dimensiunea backup-ului cu 50-70% și adesea scade timpul de backup prin reducerea I/O, deși crește utilizarea CPU.

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

16. Concluzie

16.1 chei de luat masa

ultima modificare in SQL Server Strategiile de backup vă protejează datele și asigură continuitatea afacerii. Rețineți aceste puncte esențiale:

  • Înțelegerea tipurilor de copii de rezervă: Alegeți tipurile de backup adecvate (completă, diferențială, jurnal de tranzacții) în funcție de cerințele dvs. de recuperare
  • Selectați modelul de recuperare adecvat: Recuperare completă pentru date critice, simplă pentru bazele de date de dezvoltare
  • Implementați programul de backup: Copiile de rezervă complete regulate, combinate cu copii de rezervă diferențiale și de jurnal, minimizează pierderile de date
  • Proceduri de restaurare a testului: Copiile de rezervă sunt valoroase doar dacă pot fi restaurate cu succes
  • Automatizați și monitorizați: Utilizare SQL Server Agent, planuri de întreținere și instrumente de monitorizare
  • Copii de rezervă securizate: Criptați datele sensibile și controlați accesul la fișierele de rezervă
  • Stocarea copiilor în afara locației: Protejați-vă împotriva dezastrelor la nivelul întregului site cu stocare în cloud sau la distanță
  • Documentează totul: Mențineți o documentație clară a procedurilor de backup și recuperare

16.2 Următorii pași și resurse

Pentru a vă îmbunătăți SQL Server implementare copie de rezervă:

  • Evaluați strategia actuală de backup în raport cu cele mai bune practici
  • Calculați cerințele RTO și RPO
  • Proceduri de restaurare a testului pe sisteme non-producție
  • Revizuiți și actualizați periodic programele de backup
  • Implementați monitorizare și alerte automate
  • Instruiți membrii echipei cu privire la procedurile de restaurare

Resurse aditionale:

  • Microsoft SQL Server Documentație: Îndrumări oficiale pentru backup și restaurare
  • SQL Server Forumuri comunitare pentru backup: Distribuiți experiențe și soluții
  • Certificări profesionale: Certificat Microsoft: Administrator asociat de baze de date Azure

16.3 Instrumente și soluții recomandate

Pe baza diferitelor scenarii:

Treburi mărunte:

  • Nativ SQL Server copie de rezervă programată SQL Server Locuri de muncă pentru agenți
  • SQLBackupAndFTP pentru integrare în cloud
  • Azure Backup pentru SQL Server

Întreprinderi mijlocii:

  • SQL Server Planuri de întreținere
  • Instrumente terțe precum Redgate SQL Backup Pro
  • Veeam Backup pentru SQL Server

Întreprinderi mari:

  • Quest LiteSpeed ​​pentru compresie maximă
  • Commvault sau Veritas NetBackup pentru gestionarea copiilor de rezervă la nivel de întreprindere
  • Grupuri de disponibilitate mereu active pentru Disponibilitate maxima în

SQL Server Copierea de rezervă este fundamentală pentru administrarea bazelor de date. Cu o planificare, implementare și testare adecvate, vă puteți asigura că datele dvs. rămân protejate și pot fi recuperate atunci când este nevoie. Începeți să implementați aceste bune practici astăzi pentru a vă securiza datele. SQL Server baze de date.


Despre autor

Yuan Sheng este un administrator senior de baze de date (DBA) cu peste 10 ani de experiență în SQL Server medii de lucru și managementul bazelor de date la nivel de întreprindere. A rezolvat cu succes sute de scenarii de recuperare a bazelor de date în cadrul unor organizații din domeniul serviciilor financiare, al sănătății și al producției.

Yuan este specializat în SQL Server recuperarea bazelor de date, soluții de înaltă disponibilitate și optimizarea performanței. Experiența sa practică vastă include gestionarea bazelor de date de mai mulți terabyți, implementarea grupurilor de disponibilitate Always On și dezvoltarea de strategii automate de backup și recuperare pentru sistemele critice ale afacerii.

Prin expertiza sa tehnică și abordarea practică, Yuan se concentrează pe crearea de ghiduri complete care ajută administratorii de baze de date și profesioniștii IT să rezolve probleme complexe. SQL Server provocări eficiente. El se menține la curent cu cele mai recente SQL Server versiunilor de software și tehnologiilor de baze de date în continuă evoluție ale Microsoft, testând periodic scenarii de recuperare pentru a se asigura că recomandările sale reflectă cele mai bune practici din lumea reală.

Ai întrebări despre SQL Server recuperare sau aveți nevoie de îndrumări suplimentare pentru depanarea bazei de date? Yuan vă urează bun venit pentru a vă ajuta. feedback și sugestii pentru îmbunătățirea acestor resurse tehnice.

Distribuie acum: