SQL Server Differential Backup

SQL Server Differential Backup

I SQL Server er en differensiell sikkerhetskopi en type sikkerhetskopi som fanger opp endringene/modifikasjonene som er gjort i en database siden forrige fulle sikkerhetskopi.

Differensiell sikkerhetskopi skanner den fulle sikkerhetskopien, også kjent som basen av differensial sikkerhetskopien, og sammenligner den med den nåværende databasetilstanden. Den fanger deretter endringene og lagrer dem.

En full sikkerhetskopi kan fungere som base for forskjellige differensielle sikkerhetskopier, inkludert sikkerhetskopiering av databaser, delvis sikkerhetskopiering og sikkerhetskopiering.

Fordeler

Den største fordelen med differensielle sikkerhetskopier er hastighet. I tillegg, siden differensiell sikkerhetskopiering av sikkerhetskopiering bare de eksisterende endringene, reduserer det tid og rom som kreves for å sikkerhetskopiere dataene på serveren.

Dette kan på sin side bidra til å øke frekvensen som sikkerhetskopiering i en gitt SQL Server -forekomst blir utstedt.

En annen fordel med differensielle sikkerhetskopier er antallet loggsikkerhetskopiering du trenger for å gjenopprette.

SQL Server Opprett differensiell sikkerhetskopi

Det er to hovedmetoder du kan bruke for å lage en differensiell sikkerhetskopi i SQL Server:

    1. Bruke SQL Server Management Studio - Grafisk
    2. Bruke T-SQL-kommandoer

La oss illustrere hvordan vi bruker hver av metodene ovenfor.

Eksempel på database

La oss lage eksempeldata for best å fange opp bruken og illustrasjonen av differensielle sikkerhetskopieringer.

Begynn å bytte til hoveddatabasen:

Bruk master;


Kjør deretter spørsmålene som angitt:

Drop -databasen hvis eksisterer oppløsning;
opprette databaseresolver;
Bruk resolver;
slippbord hvis finnes oppføringer;
Lag bordoppføringer (
id int ikke null identitet (1,
1) Primærnøkkel,
Server_name varchar (50),
server_address varchar (255) ikke null,
kompresjon_metod varchar (100) standard 'ingen',
size_on_disk float ikke null,
Size_Compription Float,
total_records int ikke null,
init_date dato
);
sett inn
inn i
Oppføringer (servernavn,
server adresse,
komprimering_metod,
størrelse_on_disk,
størrelse_komprimert,
Total_records,
init_date)
verdier
('Mysql', 'localhost: 3306', 'lz77', 90.66,40.04.560000, '2022-01-02'),
('Redis', 'Localhost: 6307', 'Snappy', 3.55.998.2.100000, '2022-03-19'),
('PostgreSql', 'localhost: 5432', 'pglz', 101.2,98.01,340000, '2022-11-11'),
('Elasticsearch', 'Localhost: 9200', 'LZ4', 333.2.300.2.1200000, '2022-10-08');


Dette skal lage en ny database og utføre alle handlingene som er definert ovenfor.

SQL Server full sikkerhetskopi

Før vi fanger en differensiell sikkerhetskopi, må vi først ta en full database -sikkerhetskopi. For enkelhets skyld vil vi bruke en T-SQL-kommando for å fange opp en full database-sikkerhetskopi.

Sikkerhetskopieringsdatabaseoppløsning
Til disk = 'C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLServer \ MSSQL \ Backup \ Resolver.kopiere'
Med init,
Navn = 'Resolver DB Backup';

Gjør endringer i databasen

Når vi har fanget hele sikkerhetskopien av databasen, må vi gjøre endringer i databasen for å fange opp en differensiell sikkerhetskopi.

Vi kan gjøre dette ved å legge til ytterligere to poster til oppføringstabellen:

sett inn
inn i
Oppføringer (servernavn,
server adresse,
komprimering_metod,
størrelse_on_disk,
størrelse_komprimert,
Total_records,
init_date)
verdier
('Mongodb', 'Localhost: 27017', 'Snappy', 4.55,4.10.620000, '2021-12-12'),
('Apache Cassandra', 'Localhost: 9042', 'Zstd', 300.3.200.12.10000000, '2020-03-21');


Når endringene er brukt, kan vi kjøre en differensiell sikkerhetskopi.

SQL Server Differential Backup - SSMS

For å ta en differensiell sikkerhetskopi av en gitt database i SSM-er, utvid databasen-mappen og høyreklikk på måldatabasen.

Velg oppgaver -> Sikkerhetskopier.


I Back Up -databasevinduet velger du sikkerhetskopieringen som differensial.


Du kan legge til målkomponentene som filer og filegrupper, databaser osv. I vårt tilfelle må vi ta en differensialdatabase -sikkerhetskopi.

Til slutt, angi målfilen og klikk OK for å behandle sikkerhetskopien.

Når du er fullført, bør du se en suksessmelding som:

SQL Server Differensial Backup - T -SQL -kommando

For å ta en differensiell sikkerhetskopi av en gitt database ved å bruke Transact-SQL-setninger:

Backup Database Database_name
Til disk = path_to_file
Med differensial;


Eksempelbruk:

Sikkerhetskopieringsdatabaseoppløsning
Til disk = 'C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLServer \ MSSQL \ Backup \ Resolver.diff '
Med differensial;


Dette skal returnere sikkerhetskopi -prosessloggene som:

Behandlet 104 sider for database 'Resolver', fil 'Resolver' på fil 1.
Behandlet 2 sider for database 'Resolver', fil 'Resolver_log' på fil 1.
Backup -database med differensial behandlet 106 sider i 0.016 sekunder (51.513 MB/sek).


Og der har du det.

Konklusjon

Dette innlegget hadde som mål å introdusere deg for differensielle sikkerhetskopier i SQL Server. Du lærte også hvordan du fanger fulle og differensielle sikkerhetskopier ved hjelp av SSMS og T-SQL.

Vi håper vi oppfylte forventningene dine.