Ipamahagi ngayon:
Talaan ng nilalaman itago

Backup SQL Server database kasama ang aming kumpletong gabay sa 2025. Mga sunud-sunod na tagubilin at pinakamahuhusay na kagawian para sa lahat ng antas ng kasanayan.

1. Panimula sa SQL Server Backup

1.1 Ano ang SQL Server Backup?

SQL Server Ang backup ay ang proseso ng paglikha ng mga kopya ng iyong mga file sa database upang maprotektahan laban sa pagkawala ng data. Kinukuha ng backup ang estado ng iyong database sa isang partikular na punto ng oras, na nagbibigay-daan sa iyong ibalik ang data kung may mga pagkabigo sa hardware, mga pagkakamali ng tao, o mga sakuna.

SQL Server nag-iimbak ng mga backup sa mga .bak na file bilang default, na naglalaman ng lahat ng mga object ng database kabilang ang mga talahanayan, naka-imbak na pamamaraan, view, index, at mga log ng transaksyon.

1.2 Bakit SQL Server Ang pag-backup ay Kritikal

Ang mga backup ng database ay nagsisilbing iyong huling linya ng depensa laban sa pagkawala ng data. Kung walang wastong pag-backup, nanganganib ang iyong organisasyon:

  • Permanenteng pagkawala ng data mula sa mga pagkabigo ng hardware o katiwalian
  • Pinahabang downtime sa panahon ng mga pagtatangka sa pagbawi
  • Pagkagambala sa negosyo at pagkawala ng kita
  • Mga paglabag sa pagsunod kung hindi na mababawi ang data
  • Pagkasira ng reputasyon mula sa mga pagkaantala ng serbisyo

regular SQL Server tinitiyak ng mga backup ang pagpapatuloy ng negosyo at nakakatugon sa mga kinakailangan sa regulasyon para sa proteksyon ng data.

1.3 Mga Karaniwang Sitwasyon ng Pagkawala ng Data

Ang pag-unawa kung kailan nangyari ang pagkawala ng data ay nakakatulong sa iyo na bumuo ng isang epektibong diskarte sa pag-backup:

  • Mga pagkabigo sa hardware: Mga pag-crash ng disk, mga malfunction ng server, o mga pagkabigo ng storage system
  • Mga pagkakamali ng tao: Mga hindi sinasadyang pagtanggal, maling pag-update, o pagbagsak ng mga talahanayan
  • Mga isyu sa software: Mga bug ng application, sirang update, o pag-crash ng system
  • Mga paglabag sa seguridad: Mga pag-atake ng ransomware, malisyosong pagtanggal, o hindi awtorisadong pag-access
  • Mga likas na sakuna: Mga sunog, baha, o pagkawala ng kuryente na nakakaapekto sa mga data center

2. Pag-unawa SQL Server Mga Uri ng Backup

SQL Server sumusuporta sa maraming uri ng backup, bawat isa ay naghahatid ng iba't ibang mga pangangailangan sa pagbawi at mga kinakailangan sa storage.

2.1 Buong Backup

Ang isang buong backup ay lumilikha ng isang kumpletong kopya ng iyong buong database, kabilang ang lahat ng mga file ng data at bahagi ng log ng transaksyon na kailangan para sa pagbawi.

2.1.1 Kailan Gagamitin ang Buong Backup

Ang buong backup ay mainam para sa:

  • Pagtatatag ng baseline para sa iba pang mga uri ng backup
  • Maliit hanggang katamtamang mga database kung saan tinatanggap ang oras ng pag-backup
  • Lingguhan o buwanang backup na mga iskedyul
  • Mga database na may madalang na pagbabago

2.1.2 Mga Kalamangan at Limitasyon ng Buong Backup

Bentahe:

  • Pinakasimpleng proseso ng pag-restore – naglalaman ang isang file ng lahat
  • Self-contained at independiyente sa iba pang mga backup
  • Pinakamabilis na oras ng pagbawi para sa kumpletong pagpapanumbalik ng database

Limitasyon:

  • Nangangailangan ng malaking espasyo sa imbakan
  • Mas mahabang oras ng pag-backup para sa malalaking database
  • Mas mataas na pagkonsumo ng mapagkukunan sa panahon ng mga backup na operasyon

2.2 Differential Backup

Ang isang differential backup ay kumukuha lamang ng mga pagbabago sa data mula noong huling buong backup, na binabawasan ang oras ng pag-backup at mga kinakailangan sa storage.

2.2.1 Paano Gumagana ang Differential Backup

Sinusubaybayan ng mga differential backup ang mga pagbabago gamit ang mga nabagong lawak. Kapag ibinalik mo, SQL Server Ilalapat muna ang huling buong backup, pagkatapos ay ilalapat ang pinakabagong differential backup.

2.2.2 Full vs Differential Backup

Full vs Differential Backup

Ayos Buong Pag-backup Pagkakaiba ng Pag-backup
laki Kumpletuhin ang database Mga pagbabago lamang mula noong huling buong backup
Oras ng Pag-backup Pinakahaba Mas mabilis kaysa sa puno
Proseso ng Pagpapanumbalik Pagpapanumbalik ng solong file Nangangailangan ng buong + differential
Kinakailangan ang Imbakan Karamihan sa espasyo Mas kaunting espasyo sa simula, lumalaki sa paglipas ng panahon

2.3 Backup ng Log ng Transaksyon

Kinukuha ng mga backup ng log ng transaksyon ang lahat ng transaksyon mula noong huling backup ng log, na nagbibigay-daan sa pagbawi ng point-in-time.

2.3.1 Pag-unawa sa Mga Log ng Transaksyon

Itinatala ng log ng transaksyon ang bawat pagbabago sa iyong database. Pinutol ng mga backup ng log ang hindi aktibong bahagi ng log, pinipigilan itong lumaki nang walang hanggan at mapuno ang iyong disk.

2.3.2 Point-in-Time na Pagbawi

Binibigyang-daan ka ng mga backup ng log ng transaksyon na ibalik ang iyong database sa anumang partikular na sandali sa loob ng backup ng log. Ito ay mahalaga para sa pagbawi mula sa hindi sinasadyang pagbabago o pagtanggal ng data.

Upang maisagawa ang point-in-time na pagbawi, kailangan mo:

  • Ang huling buong backup
  • Ang pinakabagong differential backup (opsyonal)
  • Lahat ng backup ng talaan ng transaksyon mula sa buong/differential backup hanggang sa iyong target na oras

2.4 Tail-Log Backup

Ang mga backup ng tail-log ay kumukuha ng mga tala ng log na hindi pa naba-back up, na pumipigil sa pagkawala ng data at nagpapanatili ng isang buo na log chain. Bago gumaling a SQL Server database sa pinakahuling punto nito sa oras, dapat mong i-backup ang buntot ng log ng transaksyon nito. Ang tail-log backup ay ang huling backup ng interes sa recovery plan para sa database.

Ang diagram na nagpapaliwanag sa tail-log backups in SQL Server.

tandaan: Hindi lahat ng senaryo ng pag-restore ay nangangailangan ng tail-log backup. Hindi mo kailangan nito kung ang recovery point ay nakapaloob sa isang naunang log backup. Hindi rin kailangan ang tail-log backup kung ililipat o papalitan (oopenwrite) mo ang isang database at hindi mo kailangang ibalik ito sa isang punto ng oras pagkatapos ng pinakahuling backup nito.

2.4.1 Kapag ang Tail-Log Backup ay Kinakailangan

Ang mga sumusunod na sitwasyon ay naglalarawan kung kailan ka dapat kumuha ng tail-log backup:

Online na Pagpapanumbalik ng Database: Kung online ang database at plano mong magsagawa ng operasyon sa pagpapanumbalik sa database, magsimula sa pamamagitan ng pag-back up sa buntot ng log. Upang maiwasan ang isang error para sa isang online na database, dapat mong gamitin ang WITH NORECOVERY na opsyon ng BACKUP Transact-SQL statement kapag nag-backup ka SQL Server database.

Offline Database Recovery: Kung ang isang database ay offline at hindi makapagsimula at kailangan mong ibalik ang database, i-backup muna ang bahagi ng log. Dahil walang mga transaksyon na maaaring mangyari sa ngayon, opsyonal ang paggamit ng opsyong WITH NORECOVERY. Ang NORECOVERY ay epektibong kapareho ng isang copy-only transaction log backup sa sitwasyong ito.

Sirang Database Backup: Kung nasira ang isang database, subukang kumuha ng tail-log backup sa pamamagitan ng paggamit ng WITH CONTINUE_AFTER_ERROR na opsyon ng BACKUP statement. Sa isang nasirang database, ang pag-back up sa tail ng log ay magtagumpay lamang kung ang mga log file ay hindi nasira, ang database ay nasa isang estado na sumusuporta sa tail-log backups, at ang database ay hindi naglalaman ng anumang bulk-log na pagbabago. Kung hindi makagawa ng backup na tail-log, anumang mga transaksyon na ginawa pagkatapos ng pinakabagong MS SQL Server Nawala ang mga backup na database.

2.4.2 Mga Pangunahing Opsyon para sa Mga Backup ng Tail-Log

MAY NORECOVERY: Gamitin ang WITH NORECOVERY kung nagba-back up ka ng buntot ng isang log ng isang online na database na plano mong ibalik pagkatapos. Kinukuha ng NORECOVERY ang database nang offline. Maaari ka ring mag-backup SQL Server tail log ng isang offline na database. Kung gusto mong iwan ang database nang offline, gamitin ang WITH NORECOVERY. Tandaan na ang log ay puputulin maliban kung tinukoy mo ang alinman sa COPY_ONLY o NO_TRUNCATE na opsyon.

MAY CONTINUE_AFTER_ERROR: Gamitin lang ang CONTINUE_AFTER_ERROR kung bina-back up mo ang buntot ng isang nasirang database. Kapag na-backup mo ang buntot ng isang log sa isang nasirang database, maaaring hindi available ang ilan sa mga metadata na karaniwang nakukuha sa mga backup ng log.

2.5 Copy-Only Backup

Ang mga copy-only na backup ay gumagawa ng independiyenteng backup nang hindi naaapektuhan ang normal na backup sequence. Hindi nila ginagambala ang mga differential backup chain o pagpapatuloy ng log ng transaksyon.

Gumamit ng copy-only backup para sa:

  • Paglikha ng mga kopya ng database ng pagsubok o pag-unlad
  • Mga ad-hoc backup nang hindi nakakaapekto sa mga naka-iskedyul na backup
  • I-backup bago ang malalaking pagbabago o pagsubok

2.6 File at Filegroup Backup

Ang mga backup ng file at filegroup ay nagta-target ng mga partikular na file sa database o mga filegroup sa halip na ang buong database. Ang pamamaraang ito ay mahusay na gumagana para sa napakalaking database kung saan ang pag-backup ng lahat ay tumatagal nang masyadong matagal.

Kabilang sa mga benepisyo ang:

  • Mas mabilis na backup na mga operasyon para sa malalaking database
  • Parallel backup ng maramihang mga filegroup
  • Mga opsyon sa pagbawi ng butil
  • Mga naka-optimize na backup na iskedyul para sa mga read-only na filegroup

2.7 Bahagyang Backup

Kasama sa mga partial backup ang lahat ng data sa pangunahing filegroup at anumang read-write filegroup, hindi kasama ang read-only na filegroup. Binabawasan nito ang laki at oras ng pag-backup para sa mga database na may static na makasaysayang data na nakaimbak sa mga read-only na filegroup.

3. SQL Server Mga Modelo sa Pagbawi

SQL Server Tinutukoy ng mga modelo ng pagbawi kung aling mga backup na uri ang magagamit at kung paano pinamamahalaan ang mga log ng transaksyon.

3.1 Simpleng Modelo ng Pagbawi

3.1.1 Mga Katangian at Kaso ng Paggamit

Awtomatikong pinuputol ng simpleng pagbawi ang log ng transaksyon pagkatapos ng bawat checkpoint, na nagre-reclaim ng espasyo nang hindi nangangailangan ng mga backup ng log.

Pinakamahusay para sa:

  • Pagbuo at pagsubok ng mga database
  • Mga database kung saan ang pagkawala ng data sa pagitan ng mga backup ay katanggap-tanggap
  • Mga warehouse ng data na may mga prosesong ETL na maaaring i-rerun
  • Read-only o pag-uulat ng mga database

3.1.2 Magagamit ang Mga Pagpipilian sa Pag-backup

Sinusuportahan ng simpleng pagbawi:

  • Buong backup
  • Differential backup
  • Mga backup ng file at filegroup
  • Mga backup na kopya lamang

Ang mga backup ng log ng transaksyon ay Hindi available ang sa simpleng modelo ng pagbawi.

3.2 Buong Modelo ng Pagbawi

3.2.1 Mga Tampok at Mga Benepisyo

Ang buong pagbawi ay nag-log ng lahat ng mga transaksyon at nagpapanatili ng mga tala ng log hanggang sa i-back up mo ang mga ito. Nagbibigay-daan ito sa kumpletong pagbawi ng data sa anumang oras sa loob ng backup ng log ng transaksyon.

Mga pangunahing benepisyo:

  • Minimal na potensyal na pagkawala ng data
  • Point-in-time na kakayahan sa pagpapanumbalik
  • Sinusuportahan ang pagpapadala ng log at pag-mirror ng database
  • Pinakamataas na kakayahang umangkop sa pagbawi

3.2.2 Pamamahala ng Log ng Transaksyon

Sa ilalim ng ganap na pagbawi, dapat kang magsagawa ng regular na mga backup ng log ng transaksyon upang:

  • Pigilan ang log ng transaksyon mula sa pagpuno ng espasyo sa disk
  • Panatilihin ang tuluy-tuloy na backup chain
  • Paganahin ang point-in-time na pagbawi
  • Kontrolin ang paglago ng log file

Karaniwang iskedyul ng pag-backup: buong pag-backup linggu-linggo, pag-backup ng pagkakaiba-iba araw-araw, pag-backup ng log tuwing 15-30 minuto.

3.3 Bulk-Logged na Modelo sa Pagbawi

3.3.1 Kailan Gamitin ang Bulk-Logged

Ang bulk-log na pagbawi ay minimal na nag-log ng mga bulk na operasyon tulad ng BULK INSERT, SELECT INTO, at muling pagtatayo ng index habang pinapanatili ang buong pag-log para sa mga regular na transaksyon.

Gumamit ng maramihang naka-log na pagbawi kapag:

  • Nagsasagawa ng malalaking bulk import operations
  • Muling pagtatayo ng mga index sa malalaking talahanayan
  • Pagpapatupad ng mga operasyon na nakikinabang sa kaunting pag-log
  • Kailangang bawasan ang laki ng log ng transaksyon sa panahon ng mga partikular na operasyon

3.3.2 Mga Limitasyon at Pagsasaalang-alang

Mahahalagang limitasyon:

  • Hindi available ang point-in-time na pag-restore sa panahon ng maramihang pagpapatakbo
  • Mas malaki ang mga backup ng log kapag naganap ang maramihang pagpapatakbo
  • Dapat lumipat sa pagitan ng buo at maramihang naka-log kung kinakailangan

3.4 Pagpili ng Tamang Modelo sa Pagbawi

Piliin ang iyong modelo ng pagbawi batay sa mga kinakailangan sa negosyo:

Modelong Pag-recover Panganib sa Pagkawala ng Data Point-in-Time na Pagbawi Best Para sa
Simple Mga pagbabago mula noong huling backup Hindi Dev/test, katanggap-tanggap na pagkawala ng data
Ganap Minimal (karaniwang minuto) Oo Mga database ng produksyon, kritikal na data
Bulk-Logged Mga pagbabago mula noong huling backup ng log Limitado sa panahon ng maramihang pagpapatakbo Pansamantalang paggamit sa panahon ng maramihang operasyon

4. backup SQL Server Database Gamit ang SSMS

4.1 Mga Kinakailangan at Paghahanda

Bago i-back up ang iyong SQL Server database, tiyaking:

  • Mayroon kang naaangkop na mga pahintulot (db_owner o BACKUP DATABASE na pahintulot)
  • Sapat na espasyo sa disk para sa backup file
  • SQL Server Naka-install ang Management Studio (SSMS).
  • Maa-access ang mga path ng network kung nagba-back up sa mga lokasyon ng network

4.2 Step-by-Step: Buong Backup sa SSMS

Sundin ang mga hakbang na ito para gumawa ng buong backup ng iyong SQL Server database gamit ang SSMS.

4.2.1 Pagbubukas SQL Server Pamamahala ng Studio

  1. Ilunsad SQL Server Pamamahala ng Studio
  2. Ilagay ang pangalan ng iyong server sa Pangalan ng server parang
  3. Piliin ang iyong paraan ng pagpapatunay
  4. I-click ang Ikabit

4.2.2 Pagpili ng Database at Backup Options

  1. In Object Explorer, palawakin ang Databases buko
  2. I-right-click ang database na gusto mong i-backup
  3. piliin Gawain -> Back Up
    Magsimula ng isang backup na gawain para sa isang SQL Server database sa SQL Server Pamamahala ng Studio.
  4. Sa I-back Up ang Database window, i-verify ang pangalan ng database
  5. piliin Ganap bilang Uri ng backup
    Gumawa ng buong backup ng a SQL Server database sa SQL Server Pamamahala ng Studio.

4.2.3 Pag-configure ng Backup Destination

  1. Sa ilalim destinasyon, I-click ang Alisin upang i-clear ang default na landas (kung kinakailangan)
  2. I-click ang Idagdag upang tumukoy ng bagong backup na lokasyon
  3. Ipasok ang path ng file at pangalan na may Bak karugtong
  4. I-click ang OK upang kumpirmahin ang patutunguhan

Itakda ang backup na destinasyon sa SQL Server Pamamahala ng Studio.

4.2.4 Advanced Backup Setting

  1. I-click ang Mga Opsyon sa Media sa kaliwang panel
  2. Pumili ng mga backup na opsyon:
    • I-overwrite ang lahat ng umiiral na backup set – Pinapalitan ang mga kasalukuyang backup
    • Idagdag sa umiiral na hanay ng backup – Nagdaragdag sa umiiral nang backup na file

    Itakda ang mga opsyon sa backup na media sa SQL Server Pamamahala ng Studio.

  3. I-click ang Mga Opsyon sa Pag-backup sa kaliwang panel
  4. I-configure ang mga opsyonal na setting:
    • I-compress ang backup – Binabawasan ang laki ng backup na file
    • I-encrypt ang backup – Pinoprotektahan ang sensitibong data
    • I-verify ang backup kapag tapos na – Sinusuri ang integridad ng backup

    Itakda ang mga backup na opsyon sa SQL Server Pamamahala ng Studio.

4.2.5 Pagpapatupad ng Backup

  1. Suriin ang lahat ng mga setting sa I-back Up ang Database bintana
  2. I-click ang OK para simulan ang proseso ng pag-backup
  3. Hintaying makumpleto ang backup
  4. May lalabas na mensahe ng tagumpay kapag natapos na ang backup
  5. I-click ang OK upang isara ang dialog ng kumpirmasyon

4.3 Paglikha ng Differential Backup gamit ang SSMS

Upang gumawa ng differential backup, sundin ang parehong mga hakbang bilang isang buong backup, ngunit piliin Pagkakaiba-iba bilang uri ng backup sa hakbang 4.2.2. Tandaan na ang mga differential backup ay nangangailangan ng paunang buong backup bilang baseline.

Gumawa ng differential backup ng a SQL Server database sa SQL Server Pamamahala ng Studio.

4.4 Paglikha ng Transaction Log Backup gamit ang SSMS

Available lang ang mga backup ng log ng transaksyon para sa mga database na gumagamit ng Buo o Bulk-Logged na mga modelo sa pagbawi.

  1. I-right-click ang database sa Object Explorer
  2. piliin Gawain -> Back Up
  3. Piliin Log ng Transaksyon bilang uri ng backup
  4. I-configure ang destinasyon at mga opsyon kung kinakailangan
  5. I-click ang OK para gumawa ng log backup

Gumawa ng backup ng transaction log ng a SQL Server database sa SQL Server Pamamahala ng Studio.

4.5 Paglikha ng Copy-Only Backup gamit ang SSMS

Ang mga kopya-lamang na backup ay hindi nakakasagabal sa iyong regular na backup sequence.

  1. Sundin ang mga hakbang para sa paggawa ng buong backup
  2. Sa Mga Opsyon sa Pag-backup pahina
  3. Lagyan ng check ang Copy-only backup opsyon
  4. Kumpletuhin ang proseso ng pag-backup nang normal

Gumawa ng kopya-lamang na backup ng a SQL Server database sa SQL Server Pamamahala ng Studio.

5. backup SQL Server Database Gamit ang T-SQL

5.1 Pangunahing BACKUP DATABASE Syntax

Ang utos ng T-SQL BACKUP DATABASE ay nagbibigay ng kontrol sa programmatic SQL Server mga backup.

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

5.2 Buong Backup na T-SQL Command

5.2.1 Simple Full Backup Script

Gumawa ng pangunahing buong backup na may kaunting mga opsyon:

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

5.2.2 Buong Backup na may Mga Opsyon

Magdagdag ng mapaglarawang impormasyon at mga opsyon sa pag-format:

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

Ipinaliwanag ang mga opsyon:

  • FORMAT – Lumilikha ng bagong backup set
  • INIT – Ino-overwrite ang umiiral nang backup na file
  • NAME – Nagtatalaga ng backup na pangalan ng set
  • DESCRIPTION - Nagdaragdag ng naglalarawang teksto
  • STATS - Nagpapakita ng pag-unlad bawat 10%

5.3 Mga Differential Backup na T-SQL Command

Ginagamit ng mga differential backup ang DIFFERENTIAL na opsyon:

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

5.4 Transaction Log Backup T-SQL Commands

Gumamit ng BACKUP LOG para sa mga backup ng log ng transaksyon:

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

5.5 Advanced na T-SQL Backup Options

5.5.1 Backup sa Maramihang mga File

Ipamahagi ang backup sa maraming file para sa mas mabilis na pagganap:

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 Backup na may Compression

Bawasan ang laki ng backup na file at bandwidth ng network:

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

5.5.3 Backup na may Encryption

Protektahan ang sensitibong data gamit ang pag-encrypt:

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 Backup gamit ang Proteksyon ng Password

Magdagdag ng proteksyon ng password (hindi na ginagamit, gumamit na lang ng encryption):

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

5.5.5 Mga Naka-mirror na Backup

Gumawa ng sabay-sabay na mga kopya sa iba't ibang lokasyon:

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

5.6 Mga Halimbawa at Script ng T-SQL Backup

Kumpletuhin ang backup na script na may paghawak ng error:

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 Database Gamit ang PowerShell

6.1 PowerShell Backup Cmdlet

SQL Server Nagbibigay ang PowerShell module ng mga cmdlet para sa backup automation:

  • Backup-SqlDatabase - Lumilikha ng mga backup ng database
  • Ibalik-SqlDatabase - Ibinabalik ang mga backup ng database
  • Kumuha-SqlDatabase – Kinukuha ang impormasyon sa database

I-import ang SQL Server module:

Import-Module SqlServer

6.2 Paglikha ng Mga Backup Script gamit ang PowerShell

Basic PowerShell backup command:

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

Halimbawa ng differential backup:

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

Backup ng log ng transaksyon:

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

6.3 Pag-automate ng mga Backup gamit ang PowerShell

Lumikha ng isang awtomatikong backup na script para sa maramihang mga database:

# 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 Database Gamit ang Command Line

SQL Server nagbibigay ng mga command-line utility na nagbibigay-daan sa iyong mag-backup SQL Server database nang hindi gumagamit ng SSMS o mga graphical na interface. Ang mga tool na ito ay mahalaga para sa automation, scripting, at remote na mga sitwasyon ng pangangasiwa.

7.1 Gumamit ng SQLCMD Backup Database

Ang SQLCMD ay ang modernong command-line utility para sa SQL Server na pinalitan ang OSQL. Nagbibigay ito ng pinahusay na functionality at ang inirerekomendang tool para sa pagpapatupad ng mga T-SQL command mula sa command prompt.

7.1.1 Pangunahing SQLCMD Syntax

sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: Tinutukoy ang SQL Server pangalan ng halimbawa
  • -d: Tinutukoy ang pangalan ng database
  • -Q: Nagsasagawa ng query at lalabas
  • -AT: Gumagamit ng Windows Authentication
  • -U: Tumutukoy SQL Server login username
  • -P: Tinutukoy ang password para sa SQL Server login

7.1.2 Paglikha ng Backup gamit ang SQLCMD

Para i-backup SQL Server gamit ang SQLCMD, sundin ang mga hakbang na ito:

  1. Pagbubukas Command Prompt or PowerShell
  2. Mag-navigate sa SQL Server direktoryo ng mga tool (karaniwang idinagdag sa PATH sa panahon ng pag-install)
  3. Isagawa ang SQLCMD backup database command na may naaangkop na mga parameter
  4. I-verify na matagumpay na nalikha ang backup file

Halimbawa ng buong backup na command gamit ang Windows Authentication:

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

Halimbawa gamit SQL Server Pagpapatotoo:

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

Paglikha ng Differential Backup gamit ang SQLCMD

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

Paglikha ng Transaction Log Backup gamit ang SQLCMD

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

7.1.3 I-backup ang Database ng Publisher sa SQL Server Pagtitiklop

Kapag nagba-backup ng mga database ng publisher sa SQL Server Replikasyon, gamitin ang opsyong WITH REPLICATION upang mapanatili ang metadata ng replikasyon at matiyak ang pagkakapare-pareho ng transaksyon.

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

Para sa karagdagang mga detalye sa SQL Server replikasyon, tingnan ang aming kumpletong gabay.

7.2 Gumamit ng OSQL Backup Database

Ang OSQL ay isang legacy command-line utility para sa SQL Server. Bagama't inirerekomenda ng Microsoft ang paggamit ng SQLCMD sa halip, nananatiling available ang OSQL para sa backward compatibility sa mga mas lumang script at system.

7.2.1 Pangunahing OSQL Syntax

Ang OSQL syntax ay katulad ng SQLCMD:

osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: SQL Server pangalan ng halimbawa
  • -d: Pangalan ng database
  • -Q: Nagsasagawa ng query at paglabas
  • -AT: Gumagamit ng pinagkakatiwalaang koneksyon (Windows Authentication)
  • -U: Login username
  • -P: Pag-login password

7.2.2 Paglikha ng Backup gamit ang OSQL

Upang magsagawa ng OSQL backup database operations:

  1. Pagbubukas Command Prompt
  2. I-verify na available ang OSQL sa iyong SQL Server instalasyon
  3. Isagawa ang OSQL backup command

Halimbawa ng buong backup:

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

Halimbawang differential backup:

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

8. Third-Party SQL Server Mga Backup Tool

Habang SQL Server Kasama ang mga katutubong kakayahan sa pag-backup, ang mga tool ng third-party ay nag-aalok ng mga pinahusay na feature, automation, at pamamahala sa antas ng enterprise para sa mga organisasyong may mga kumplikadong kinakailangan. Nagbibigay ang mga solusyong ito ng advanced na compression, sentralisadong pamamahala, at mga streamline na daloy ng trabaho para sa pag-back up SQL Server mga database sa maraming kapaligiran.

8.1 Veeam Backup para sa SQL Server

Nag-aalok ang Veeam ng mga komprehensibong solusyon sa proteksyon ng data na partikular na idinisenyo upang i-backup SQL Server mga database na may kaunting epekto sa mga sistema ng produksyon.

Key Tampok:

  • Pagproseso na may kamalayan sa aplikasyon para sa SQL Server pagkakapare-pareho ng backup
  • Backup at pamamahala ng log ng transaksyon
  • Point-in-time na pagbawi na may butil-butil na mga opsyon sa pag-restore
  • Pagsasama sa Veeam Backup & Replication para sa pinag-isang proteksyon ng data
  • Automated backup na pag-verify at pagpapatunay
  • Suporta para sa Always On Availability Groups
  • VM-level at application-level SQL Server backup na mga opsyon

8.2 Barracuda Backup para sa SQL Server

Nagbibigay ang Barracuda ng cloud-integrated backup solutions na may pinasimpleng pamamahala para sa MS SQL Server backup na mga operasyon ng database.

Key Tampok:

  • Automated SQL Server backup na pag-iiskedyul
  • Built-in na cloud replication sa Barracuda Cloud Storage
  • Global deduplication at compression
  • Mga instant na lokal na kakayahan sa pagbawi
  • Web-based na management console
  • Suporta para sa mga backup na full, differential, at transaction log
  • Proteksyon ng ransomware na may mga hindi nababagong backup

8.3 Veritas NetBackup para sa SQL Server

Ang Veritas NetBackup ay isang enterprise-grade backup platform na nagbibigay ng komprehensibong proteksyon para sa SQL Server mga database sa mga kumplikadong kapaligiran ng IT.

Key Tampok:

  • Enterprise-scale backup management para sa libu-libong SQL Server mga pagkakataon
  • Advanced na deduplication at compression algorithm
  • Nababaluktot na mga patakaran sa pag-backup at pag-iskedyul
  • Suporta para sa lahat SQL Server mga modelo ng pagbawi
  • Pagsasama sa mga tape library at cloud storage
  • Butil-butil na pagbawi ng mga database, talahanayan, at mga bagay
  • Suporta sa multi-platform (Windows, Linux SQL Server)
  • Automated backup na pamamahala ng lifecycle

8.4 Kumpletong Pag-backup at Pagbawi ng Commvault para sa SQL Server

Ang Commvault ay naghahatid ng matalinong pamamahala ng data na may komprehensibong backup SQL Server mga kakayahan at advanced na tampok ng automation.

Key Tampok:

  • AI-driven backup optimization at anomalya detection
  • Pinag-isang platform para sa backup, pagbawi, at pag-archive
  • Advanced SQL Server backup compression (hanggang 90% na pagbawas)
  • Automated disaster recovery orchestration
  • Live Sync para sa malapit-zero na proteksyon ng RPO
  • Suporta para sa SQL Server on-premises, cloud, at hybrid deployment
  • IntelliSnap para sa mga backup na nakabatay sa snapshot
  • Komprehensibong pagsunod at mga kakayahan sa e-discovery

8.5 Cohesity DataProtect para sa SQL Server

Ang cohesity ay nagbibigay ng susunod na henerasyong pamamahala ng data na may hyperconverged na imprastraktura para sa moderno SQL Server mga backup na operasyon.

Key Tampok:

  • Web-scale architecture para sa pinasimpleng pamamahala
  • Instant mass restore kakayahan para sa SQL Server Mga Database
  • Mga snapshot na pare-pareho sa application
  • Global deduplication sa lahat ng backup
  • Native cloud integration (AWS, Azure, Google Cloud)
  • Built-in na analytics at monitoring dashboard
  • I-clone at subukan ang mga kakayahan sa database
  • Proteksyon ng ransomware na may mga hindi nababagong snapshot

8.6 Red Gate SQL Backup Pro

Ang Red Gate SQL Backup Pro ay isang espesyal na tool na eksklusibong nakatuon sa pag-optimize SQL Server pag-backup at pagpapanumbalik ng mga operasyon na may mahusay na compression at pagganap.

Key Tampok:

  • Mga ratio ng compression na nangunguna sa industriya (hanggang 95%)
  • Katatagan ng network para sa pag-back up SQL Server sa mga hindi mapagkakatiwalaang koneksyon
  • Backup encryption na may 256-bit AES
  • Pag-verify ng backup na kopya at pagsuri sa integridad
  • Detalyadong backup na kasaysayan at pag-uulat
  • Pagsasama sa SQL Server Pamamahala ng Studio
  • Suporta para sa backup sa mga lokasyon ng network at cloud storage
  • Parallel backup at restore para sa mas mabilis na operasyon

9. Paano I-restore SQL Server Database

9.1 Pag-unawa sa Proseso ng Pagbabalik

Pagpapanumbalik a SQL Server nililikha ng database ang database mula sa mga backup na file. Binabasa ng proseso ng pagpapanumbalik ang backup na file at muling itinatayo ang database sa naka-back up na estado nito.

Mahahalagang pagsasaalang-alang:

  • Ang pagpapanumbalik ay na-overwrite ang umiiral na database
  • Nadiskonekta ang mga user sa panahon ng pagpapanumbalik
  • Dapat sundin ng pag-restore ang backup na sequence (puno, pagkatapos ay differential, pagkatapos ay mga log)
  • Hindi available ang database sa panahon ng pagpapaandar ng pagpapanumbalik

9.2 Pagpapanumbalik ng Buong Backup Gamit ang SSMS

Sundin ang mga hakbang na ito upang maibalik ang isang buong backup ng database.

9.2.1 Hakbang-hakbang na Proseso ng Pagbabalik

  1. Pagbubukas SQL Server Pamamahala ng Studio at kumonekta sa iyong server
  2. In Object Explorer, pag-click sa kanan Databases
  3. piliin Ibalik ang Database
  4. Sa pinagmulan seksyon, piliin Device
  5. I-click ang ... button upang mag-browse para sa mga backup na file
  6. I-click ang Idagdag at mag-navigate sa iyong .bak file
  7. Piliin ang backup na file at i-click OK
  8. Sa destinasyon seksyon, ipasok ang pangalan ng database
  9. Suriin ang mga backup na set na ire-restore
  10. I-click ang OK para simulan ang pagpapanumbalik

9.2.2 Ibalik ang Mga Opsyon at Setting

I-click ang Options sa kaliwang panel para i-configure:

  • I-overwrite ang umiiral na database (MAY PALIT) - Pinapayagan ang pagpapanumbalik sa umiiral na database
  • Panatilihin ang mga estado ng replikasyon (GAMIT ANG KEEP_REPLICATION) - Panatilihin ang SQL Server pagtitiklop ay
  • Limitahan ang pag-access sa naibalik na database (WITH RESTRICTED_USER) – Nililimitahan ang access pagkatapos ng restore
  • Katayuan ng pagbawi – Pumili sa pagitan ng RESTORE WITH RECOVERY o NORECOVERY

9.3 Pagpapanumbalik ng Differential Backup

Nangangailangan ang differential restore ng buo at differential backup:

  1. Una, ibalik ang buong backup gamit ang NORECOVERY opsyon
  2. Pagkatapos ay ibalik ang differential backup gamit ang PAGBAWI opsyon

Halimbawa ng 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 Pagpapanumbalik gamit ang Mga Backup ng Log ng Transaksyon

Para sa point-in-time na pagbawi, i-restore sa pagkakasunud-sunod:

  1. Ibalik ang buong backup gamit ang NORECOVERY
  2. Ibalik ang differential backup gamit ang NORECOVERY (kung available)
  3. Ibalik ang mga backup ng log ng transaksyon sa pagkakasunud-sunod sa NORECOVERY
  4. Ibalik ang huling backup ng log gamit ang 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 Point-in-Time Restore

Ibalik ang database sa isang tiyak na punto ng oras gamit ang pagpipiliang 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 Pagpapanumbalik ng Talahanayan

SQL Server hindi sinusuportahan ang direktang pagpapanumbalik sa antas ng talahanayan mula sa mga backup na file. Gayunpaman, mayroon pa ring ilang mga solusyon.

9.6.1 Paraan 1: Mga Snapshot ng Database (Pinakamahusay para sa Pag-iwas)

Ang mga snapshot ng database ang pinakamabilis na paraan upang maibalik ang data ng talahanayan kung ginawa bago pa man mangyari ang problema. Ang snapshot ay isang read-only, static na view ng isang database sa isang partikular na punto ng oras.

Paglikha ng Snapshot ng Database:

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

Pagpapanumbalik ng Data ng Talahanayan mula sa Snapshot:

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

Mga Kinakailangan sa Bersyon: Ang mga snapshot ng database ay makukuha sa SQL Server Enterprise Edition (lahat ng bersyon), at Standard Edition na nagsisimula sa SQL Server 2016 SP1.

9.6.2 Paraan 2: Ibalik sa Pansamantalang Database (Pinakakaraniwan)

Gumagana ang pamamaraang ito kapag kailangan mong i-recover ang data ng talahanayan pagkatapos magkaroon ng problema at walang snapshot na umiiral:

  1. Ibalik ang backup sa isang pansamantalang database
  2. Kopyahin ang datos ng talahanayan mula sa pansamantalang database patungo sa kasalukuyang database

9.7 Pagpapanumbalik ng Pahina

Binabawi ng page restore ang mga indibidwal na nasirang pahina nang hindi ibinabalik ang buong database, na minamali ang downtime sa pamamagitan ng pag-target lamang sa mga sirang pahina. Ang feature na ito ay magagamit lamang sa ilalim ng mga modelo ng Full o Bulk-Logged recovery at nangangailangan ng isang walang patid na kadena ng mga backup ng transaction log mula sa page backup hanggang sa kasalukuyang log file.

Para maisagawa ang pagpapanumbalik ng pahina, tukuyin muna ang mga nasirang pahina, gumawa ng backup para sa tail-log, ibalik ang mga partikular na pahina, pagkatapos ay ilapat ang lahat ng mga tala ng transaksyon:

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

tandaan: Hindi magagamit ang page restore sa ilalim ng Simple recovery model. Hindi mo maaaring ibalik ang mga pahina mula sa mga system table o metadata ng pangunahing filegroup.

9.8 Pagbabalik nang Pabagu-bago

Ang pira-pirasong pagpapanumbalik (partial restore) ay nagpapanumbalik ng database nang paunti-unti sa antas ng filegroup, simula sa pangunahing filegroup. Agad nitong inilalagay ang mahahalagang datos sa online habang ang hindi gaanong mahahalagang datos ay nagpapanumbalik sa background. Sa ilalim ng Simple recovery model, lahat ng read-write filegroup ay dapat ibalik kasama ng pangunahing filegroup; tanging ang mga read-only filegroup lamang ang maaaring ibalik nang hiwalay. Sa ilalim ng Full o Bulk-Logged recovery models, ang bawat filegroup ay maaaring maibalik online nang hiwalay pagkatapos ilapat ang mga transaction log.

Modelong Pag-recover Pag-uugali sa Pagpapanumbalik nang Pabagu-bago
Simple Naibalik nang magkakasama ang mga pangunahin at lahat ng read-write filegroup. Naibalik nang hiwalay ang mga read-only filegroup.
Buo/Maramihang Naka-log Ang bawat filegroup ay naibalik nang hiwalay sa antas ng filegroup.

Halimbawa para sa modelo ng Ganap na pagbawi – ibalik muna ang pangunahing grupo ng file upang maibalik ang database online, pagkatapos ay ibalik ang mga pangalawang grupo ng file habang nananatiling gumagana ang database:

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

Halimbawa para sa Simpleng modelo ng pagbawi:

-- 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 Pagpapanumbalik Gamit ang T-SQL Commands

Kumpletuhin ang restore script na may file relocation:

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 Pag-verify ng Integridad ng Backup Bago Ibalik

Suriin ang bisa ng backup nang hindi nire-restore:

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

Ang utos na ito ay nagpapatunay na ang backup set ay kumpleto at nababasa nang hindi aktwal na nagpapanumbalik ng database.

10. SQL Server I-backup ang Pinakamahuhusay na Kasanayan

10.1 Pagbuo ng Backup na Diskarte

10.1.1 Pagtatasa ng Mga Kinakailangan sa Negosyo

Bago ipatupad ang mga backup, suriin ang:

  • Kritikal ng data: Gaano kahalaga ang data na ito sa mga operasyon?
  • Dalas ng pagbabago: Gaano kadalas nagbabago ang data?
  • Laki ng database: Gaano kalaki ang database?
  • Magagamit na mapagkukunan: Anong storage at bandwidth ang available?
  • Mga pangangailangan sa pagsunod: Anong mga regulasyon ang dapat mong sundin?

10.1.2 Pagtukoy sa RTO at RPO

Layunin ng Oras ng Pagbawi (RTO): Pinakamataas na katanggap-tanggap na downtime. Tinutukoy kung gaano kabilis kailangan mong ibalik ang mga operasyon.

Layunin ng Recovery Point (RPO): Pinakamataas na katanggap-tanggap na pagkawala ng data. Tinutukoy ang dalas ng pag-backup.

Kinakailangan ng RTO/RPO Inirerekomendang Diskarte sa Pag-backup
RPO: Oras, RTO: Oras Araw-araw na buong + log ng transaksyon bawat 1-2 oras
RPO: Minuto, RTO: Oras Araw-araw na buong + log backup bawat 15-30 minuto
RPO: Near-zero, RTO: Minuto Laging Nasa Availability Groups + madalas na pag-backup ng log
RPO: Mga Araw, RTO: Mga Araw Lingguhang puno + araw-araw na kaugalian

10.2 Paglikha ng Iskedyul ng Pag-backup

10.2.1 Mga Rekomendasyon sa Dalas

Karaniwang iskedyul ng backup para sa mga database ng produksyon:

  • Buong backup: Lingguhan (Linggo ng gabi kapag mahina ang aktibidad)
  • Differential backup: Araw-araw (bawat gabi)
  • Mga backup ng log ng transaksyon: Bawat 15-30 minuto sa oras ng negosyo
  • Mga kopya-lamang na backup: Kung kinakailangan para sa pagsubok o pag-unlad

10.2.2 Pagbalanse ng Pagganap at Proteksyon

Isaalang-alang ang mga salik na ito kapag nag-iiskedyul:

  • Off-peak na oras: Magpatakbo ng mga buong backup sa panahon ng mababang aktibidad
  • Epekto ng mapagkukunan: Binabawasan ng compression ang I/O ngunit pinapataas ang paggamit ng CPU
  • Bandwidth ng network: Mag-iskedyul ng mga backup ng network kapag mababa ang trapiko
  • Mga backup na window: Tiyaking kumpleto ang mga backup bago ang oras ng negosyo

10.3 Pinakamahuhusay na Kasanayan sa Pag-imbak ng Backup

10.3.1 On-Site vs Off-Site na Storage

Mga backup sa site:

  • Mas mabilis na pag-backup at pagpapanumbalik ng mga oras
  • Mas mababang gastos para sa high-frequency access
  • Mahina sa mga lokal na sakuna
  • Pinakamahusay para sa mga senaryo ng mabilisang pagbawi

Mga backup sa labas ng site:

  • Proteksyon mula sa mga sakuna na partikular sa site
  • Pagsunod sa mga kinakailangan sa geographic redundancy
  • Mas mabagal na oras ng pagpapanumbalik
  • Mahalaga para sa pagbawi ng kalamidad

10.3.2 Mga Pagpipilian sa Cloud Backup

Mga pakinabang ng cloud storage:

  • Imbakan ng Azure Blob: Natural SQL Server integrasyon, matipid para sa madalang na pag-access
  • Amazon S3: Lubos na matibay, nababaluktot na mga tier ng imbakan
  • Google Cloud Storage: Competitive na pagpepresyo, global availability

10.3.3 Mga Patakaran sa Pagpapanatili ng Backup

Halimbawang patakaran sa pagpapanatili:

  • Panatilihin ang pang-araw-araw na pag-backup sa loob ng 7 araw
  • Panatilihin ang lingguhang pag-backup sa loob ng 4 na linggo
  • Panatilihin ang buwanang pag-backup sa loob ng 12 buwan
  • Panatilihin ang taunang backup sa loob ng 7 taon (pagsunod)

10.4 Backup Compression at Encryption

Mga benepisyo ng compression:

  • Binabawasan ang laki ng backup na file ng 50-70%
  • Binabawasan ang oras ng pag-backup
  • Binabawasan ang mga gastos sa imbakan
  • Binabawasan ang bandwidth ng network para sa malayuang pag-backup

Pinakamahuhusay na kagawian sa pag-encrypt:

  • Palaging i-encrypt ang mga backup na naglalaman ng sensitibong data
  • Gumamit ng AES 256-bit encryption
  • Secure na certificate o key management
  • Idokumento ang mga susi sa pag-encrypt at iimbak ang mga ito nang hiwalay

10.5 Pagsubok at Pag-verify ng Mga Backup

10.5.1 Regular na Pagsusuri sa Pagpapanumbalik

Subukan ang mga pamamaraan sa pagpapanumbalik kada quarter o buwanan:

  1. Ibalik ang mga backup sa isang pagsubok na kapaligiran
  2. I-verify ang integridad at pagkakumpleto ng data
  3. Suriin ang pag-andar ng application
  4. Oras ng pag-restore ng dokumento (validate ang RTO)
  5. Kilalanin at lutasin ang anumang mga isyu

10.5.2 Paggamit ng RESTORE VERIFYONLY

I-automate ang pag-validate ng backup:

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

Patakbuhin kaagad ang pag-verify pagkatapos makumpleto ang backup o bilang bahagi ng naka-iskedyul na pagpapanatili.

10.6 Backup Automation at Pagsubaybay

10.6.1 SQL Server Mga Trabaho ng Ahente

Lumikha ng mga awtomatikong backup na trabaho:

  1. Lumawak SQL Server ahentePanlabas na Link sa SSMS
  2. I-right-click ang Trabaho at piliin ang Bagong trabaho
  3. Pangalanan ang trabaho (hal., “Araw-araw na Buong Backup”)
  4. Magdagdag ng Hakbang na may mga T-SQL backup command
  5. Gumawa ng Iskedyul para sa oras ng pagpapatupad
  6. I-configure ang Mga Notification para sa tagumpay/kabiguan

10.6.2 Mga Plano sa Pagpapanatili

SQL Server Ang Mga Plano sa Pagpapanatili ay nagbibigay ng visual na interface para sa backup na automation:

  1. Mag-navigate sa pamamahala -> Mga Plano sa Pagpapanatili
  2. Mag-right-click at piliin Maintenance Plan Wizard
  3. Pumili ng mga backup na gawain upang i-automate
  4. I-configure ang backup na iskedyul at mga opsyon
  5. I-set up ang pag-uulat at pag-log

10.6.3 Mga Alerto sa Pag-backup at Mga Notification

I-configure ang mga notification sa email:

  • I-set up ang Database Mail sa SQL Server
  • Lumikha ng mga alerto para sa mga pagkabigo sa pag-backup
  • Subaybayan ang backup na kasaysayan ng trabaho
  • Magpadala ng mga buod na ulat sa mga administrator

10.7 Dokumentasyon at Pagpaplano ng Pagbawi sa Sakuna

Panatilihin ang komprehensibong dokumentasyon:

  • Iskedyul ng backup: Kailan at kung ano ang nai-back up
  • Mga patakaran sa pagpapanatili: Gaano katagal pinapanatili ang mga backup
  • Mga lokasyon ng imbakan: Kung saan naka-imbak ang mga backup
  • Mga pamamaraan ng pagpapanumbalik: Hakbang-hakbang na mga tagubilin sa pagbawi
  • Makipag-ugnayan sa impormasyon: Mga pangunahing tauhan at vendor
  • Mga resulta ng pagsubok sa pagbawi: Mga dokumentadong resulta ng pagsusulit

11. Masulong SQL Server Mga Backup na Sitwasyon

11.1 Pag-back up ng Napakalaking Database (VLDB)

11.1.1 Mga Istratehiya sa File at Filegroup

Para sa mga database na lampas sa ilang daang gigabytes:

  • Paghiwalayin ang read-only at read-write na data sa iba't ibang filegroup
  • I-back up ang mga read-only na filegroup nang madalang
  • Ituon ang madalas na pag-backup sa mga aktibong filegroup
  • Gumamit ng mga backup sa antas ng file para sa butil na kontrol

Halimbawang pag-backup ng file:

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

11.1.2 Backup Performance Optimization

Pagbutihin ang pagganap ng backup ng VLDB:

  • Mga striped backup: Sumulat sa maramihang mga file nang sabay-sabay
  • compression: Bawasan ang mga kinakailangan sa I/O at storage
  • Maramihang backup na device: Parallelize ang mga backup na operasyon
  • Mabilis na imbakan: Gumamit ng mga SSD para sa backup na pagtatanghal
  • Bilang ng buffer: Dagdagan ang opsyong BUFFERCOUNT
  • Max na laki ng paglipat: I-optimize ang MAXTRANSFERSIZE setting
-- 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 Backup sa Always On Availability Groups

Ang Always On Availability Groups ay namamahagi ng backup load sa mga replika:

  • I-configure ang mga backup na kagustuhan (pangunahin, pangalawa, o anumang replika)
  • I-offload ang mga backup sa pangalawang replika para mabawasan ang pangunahing workload
  • Gumamit ng COPY_ONLY na backup sa mga pangalawang replika
  • Subaybayan ang mga setting ng priority ng backup
-- 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 Backup para sa Pag-mirror ng Database

Sa database mirroring scenario:

  • Regular na i-back up ang pangunahing database
  • Ang mga backup ng log ng transaksyon ay mahalaga para sa pag-mirror
  • Ang mirror database ay nasa RESTORING state (hindi direktang mai-back up)
  • Isaalang-alang ang pag-back up ng salamin pagkatapos ng failover

11.4 Backup sa Azure Blob Storage

SQL Server maaaring direktang mag-backup sa Azure Blob Storage:

  1. Lumikha ng Azure Storage Account
  2. Lumikha SQL Server kredensyal para sa pagpapatunay ng Azure
  3. Gumamit ng URL syntax para sa backup na destinasyon
-- 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 I-backup sa URL

Mga pakinabang ng pag-back up sa URL:

  • Walang limitasyong kapasidad ng cloud storage
  • Awtomatikong pinangangasiwaan ang geographic redundancy
  • Modelong pagpepresyo ng pay-as-you-go
  • Walang kinakailangang lokal na puwang sa disk
  • Sinusuportahan ang hanggang 64 na URL bawat backup (striping)

11.6 Mga Striped Backup para sa Pagganap

Ang mga striped backup ay naghahati ng data sa maraming file para sa mas mabilis na I/O:

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

Tandaan: Ang lahat ng mga stripe na file ay kinakailangan para sa pagpapanumbalik. Ang pagkawala ng anumang file ay ginagawang hindi magagamit ang backup.

12. Pag-aayos ng solusyon SQL Server Mga Isyu sa Pag-backup

12.1 Karaniwang Mga Error sa Pag-backup at Solusyon

Error: "Error sa operating system 5: Tinanggihan ang pag-access"

  • Maging sanhi ng: SQL Server walang pahintulot ang account ng serbisyo
  • solusyon: Magbigay ng mga pahintulot sa Sumulat sa SQL Server account ng serbisyo sa backup na folder

Error: "Hindi mabuksan ang backup na device... Error sa device o off-line ang device"

  • Maging sanhi ng: Di-wastong landas o hindi magagamit na bahagi ng network
  • solusyon: I-verify na umiiral ang landas, suriin ang pagkakakonekta ng network, tiyaking sapat ang espasyo sa disk

Error: "Walang sapat na espasyo sa disk"

  • Maging sanhi ng: Hindi sapat na espasyo sa disk para sa backup
  • solusyon: Magbakante ng espasyo sa disk, gumamit ng compression, mag-backup sa ibang lokasyon

Error: "Ginagamit ang database. Ang database ay ginagamit ng ibang mga user"

  • Maging sanhi ng: Mga aktibong koneksyon sa panahon ng pagpapanumbalik
  • solusyon: Gamitin ang WITH REPLACE option o idiskonekta muna ang mga user

12.2 Mga Isyu sa Pagganap ng Pag-backup

I-diagnose ang mabagal na pag-backup:

  • Suriin ang pagganap ng disk I/O gamit ang Subaybayan pagganap
  • Subaybayan ang pag-unlad ng backup gamit ang opsyong STATS
  • Pagsusuri SQL Server log ng error para sa mga bottleneck
  • Isaalang-alang ang compression upang bawasan ang I/O
  • Gumamit ng mga striped backup sa maraming disk

Query para subaybayan ang pag-unlad ng backup:

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 Mga Problema sa Space at Storage

Pigilan ang mga isyu sa storage:

  • Ipatupad ang mga patakaran sa pagpapanatili: Awtomatikong tanggalin ang mga lumang backup
  • Gumamit ng compression: Bawasan ang laki ng backup na file ng 50-70%
  • I-archive sa mas murang storage: Ilipat ang mga lumang backup sa imbakan ng archive
  • Subaybayan ang espasyo sa disk: Mag-set up ng mga alerto para sa mababang espasyo sa disk
  • Tantyahin ang laki ng backup: Kalkulahin ang inaasahang laki bago i-back up

Tantyahin ang laki ng backup:

-- Estimate full backup size
EXEC sp_spaceused;
GO

12.4 Mga Isyu sa Pahintulot at Pag-access

Mga kinakailangang pahintulot para sa pag-backup:

  • BACKUP DATABASE pahintulot
  • db_backupoperator pagiging kasapi ng tungkulin
  • sysadmin tungkulin ng server (para sa lahat ng backup na operasyon)

Magbigay ng mga pahintulot sa pag-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 Mga Sirang Backup File

I-detect at pangasiwaan ang mga sirang backup:

I-verify ang integridad ng backup:

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

Paganahin ang CHECKSUM para sa mga backup sa hinaharap:

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

Mga diskarte sa pag-iwas:

  • Palaging gamitin ang opsyong CHECKSUM sa panahon ng pag-backup
  • I-verify kaagad ang mga backup pagkatapos gawin
  • Regular na nagbabalik ang pagsubok
  • Mag-imbak ng mga backup sa maaasahang storage
  • Panatilihin ang maramihang mga backup na kopya

12.6 Mabawi ang Data mula sa Mga Sirang Backup File

Kung sira ang iyong mga backup na file at gusto mo pa ring mabawi ang data mula sa kanila, maaari mong gamitin ang mga tool ng third-party gaya ng DataNumen SQL Recovery, tulad ng nasa ibaba:

  1. simula DataNumen SQL Recovery.
  2. Piliin ang sira na backup file bilang source file sa pamamagitan ng pagpapalit ng filter sa “Lahat ng file (*.*)”:
    Piliin ang sira na backup file (*.bak) bilang source file na ire-recover.
  3. Itakda ang output .MDF file kung kinakailangan.
  4. I-click ang “Simulan ang Pagbawi” at sundin ang mga tagubilin upang mabawi ang database.
  5. Pagkatapos ng proseso ng pagbawi, may lalabas na bagong database ng pagbawi SQL Server na naglalaman ng lahat ng nakuhang data.

paggamit DataNumen SQL Recovery para mabawi ang data mula sa corrupt SQL Server backup file (*.bak).

13. SQL Server Backup Security

13.1 Pag-secure ng Mga Backup na File

Protektahan ang mga backup na file mula sa hindi awtorisadong pag-access:

  • Mga pahintulot ng file system: Limitahan ang pag-access sa mga awtorisadong administrator lamang
  • Seguridad ng network: Gumamit ng mga secure na protocol para sa pag-backup ng network
  • Pisikal na seguridad: Mag-imbak ng backup na media sa mga secure na lokasyon
  • I-access ang pag-log: I-audit ang pag-access sa backup na file

13.2 Mga Opsyon sa Pag-encrypt

SQL Server sumusuporta sa transparent na backup na pag-encrypt:

Lumikha ng sertipiko para sa pag-encrypt:

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

Naka-encrypt na backup:

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

Mahalaga: Magkahiwalay na i-back up ang certificate at pribadong key. Kung wala ang mga ito, hindi maibabalik ang mga naka-encrypt na backup.

-- 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 Access Control at Mga Pahintulot

Ipatupad ang prinsipyo ng least-privilege:

  • Magbigay lamang ng mga pahintulot sa pag-backup sa mga kinakailangang account
  • Gumamit ng hiwalay na mga account para sa pag-backup at pagpapanumbalik ng mga operasyon
  • Iwasang gumamit ng sa account para sa mga backup
  • Regular na i-audit ang mga pahintulot sa pag-backup
  • Alisin ang mga pahintulot kapag hindi na kailangan

13.4 Mga Pagsasaalang-alang sa Pagsunod

Tugunan ang mga kinakailangan sa regulasyon:

  • GDPR: I-encrypt ang mga backup na naglalaman ng personal na data, ipatupad ang mga patakaran sa pagpapanatili
  • HIPAA: I-encrypt ang PHI sa mga backup, kontrolin ang access, panatilihin ang mga audit trail
  • PCI DSS: I-encrypt ang mga backup ng data ng cardholder, secure na backup na storage
  • SOX: Panatilihin ang backup na integridad, mga patakaran sa pagpapanatili ng dokumento

14. Pagsubaybay at Pagpapanatili ng Backup Operations

14.1 Pagsubaybay sa Kasaysayan ng Backup

SQL Server nag-iimbak ng backup na kasaysayan sa msdb database:

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

Maghanap ng mga database na walang kamakailang backup:

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 Paggamit SQL Server Ulat

SQL Server Kasama sa Management Studio ang mga built-in na backup na ulat:

  1. Mag-right-click sa database sa Object Explorer
  2. piliin Ulat -> Mga Karaniwang Ulat
  3. Pumili sa mga available na ulat:
    • I-backup at I-restore ang Mga Kaganapan
    • Lahat ng Backup
    • Katayuan ng Pagpapadala ng Log ng Transaksyon

14.3 Mga Tool sa Pagsubaybay ng Third-Party

Mga solusyon sa pagsubaybay sa komersyal:

  • SQL Sentry: Komprehensibong pagsubaybay at pag-alerto
  • Redgate SQL Monitor: Real-time na pagsubaybay at diagnostic
  • SolarWinds Database Performance Analyzer: Pagganap at backup na pagsubaybay
  • Tagapamahala ng Diagnostic ng Idera SQL: Backup validation at alerto

14.4 Mga Backup na Pagsusuri sa Kalusugan

Gumawa ng pamamaraan ng pagsusuri sa kalusugan:

-- 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 Mga backup na FAQ

15.1 Gaano Kadalas Ako Dapat Mag-backup SQL Server?

Ang dalas ng pag-backup ay depende sa iyong Layunin ng Pagbawi sa Point (RPO):

  • Mga kritikal na database ng produksyon: Buong lingguhan, kaugalian araw-araw, mag-log tuwing 15-30 minuto
  • Mga karaniwang database ng produksyon: Buong lingguhan, kaugalian araw-araw, mag-log tuwing 1-2 oras
  • Mga database ng pag-unlad: Buong araw-araw o lingguhan
  • Mga read-only na database: Puno pagkatapos ng bawat pagbabago ng data

15.2 Ano ang Pagkakaiba sa pagitan ng Full at Differential Backup?

Kinokopya ng buong backup ang buong database, habang kinukuha lang ng differential backup ang mga pagbabago mula noong huling full backup. Ang mga differential backup ay mas maliit at mas mabilis ngunit nangangailangan ng base full backup para sa pagpapanumbalik.

15.3 Maaari ba akong Mag-backup SQL Server Habang Ito ay Tumatakbo?

Oo, SQL Server sumusuporta sa mga online backup. Maaaring magpatuloy sa pagtatrabaho ang mga user sa panahon ng mga backup na operasyon. SQL Server ginagamit nito ang log ng transaksyon upang mapanatili ang pare-pareho, tinitiyak na ang mga backup ay wasto kahit na may kasabay na mga pagbabago.

15.4 Gaano Katagal SQL Server Backup Take?

Ang tagal ng pag-backup ay nag-iiba batay sa:

  • Laki ng database: Ang mas malalaking database ay mas tumatagal
  • Uri ng backup: Pinakamatagal ang buong pag-backup
  • compression: Maaaring palakihin ang oras ng CPU ngunit bawasan ang kabuuang tagal
  • Bilis ng storage: Ang mga SSD ay makabuluhang mas mabilis kaysa sa mga HDD
  • Pag-load ng server: Ang mas mataas na aktibidad ay nagpapabagal sa pag-backup

Mga karaniwang hanay: 10GB database ay maaaring tumagal ng 5-15 minuto para sa buong backup na may compression sa modernong hardware.

15.5 Saan Ko Dapat Iimbak SQL Server Mga backup?

Pinakamahusay na kasanayan: Sundin ang 3-2-1 na panuntunan:

  • 3 mga kopya ng iyong data
  • 2 iba't ibang uri ng storage (hal., disk at tape/cloud)
  • 1 kopyahin sa labas ng site

Mga inirerekomendang lokasyon:

  • Lokal na disk para sa mabilis na pagbawi
  • Imbakan ng network para sa sentralisadong pamamahala
  • Cloud storage (Azure, AWS) para sa disaster recovery

15.6 Ano ang .bak File Extension?

Ang extension na .bak ay ang default na extension ng file para sa SQL Server backup na mga file. Ito ay isang kombensiyon, hindi isang kinakailangan - SQL Server gumagana ang mga backup sa anumang extension ng file. Gayunpaman, ang paggamit ng .bak ay ginagawang madaling matukoy ang mga backup na file at ito ay isang karaniwang kasanayan sa industriya.

15.7 Paano Mag-backup SQL Server sa Network Drive?

Upang mag-backup sa isang network drive:

  1. Matiyak SQL Server service account ay may mga pahintulot sa pagsulat sa bahagi ng network
  2. Gamitin ang UNC path sa backup na command: \\ServerName\ShareName\BackupFile.bak
  3. Subukan ang pagkakakonekta bago mag-iskedyul ng mga awtomatikong pag-backup
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO

15.8 Maaari Ko bang I-compress SQL Server Mga backup?

Oo, SQL Server sumusuporta sa native backup compression (Enterprise Edition, o Standard Edition simula SQL Server 2016 SP1). Karaniwang binabawasan ng compression ang laki ng backup ng 50-70% at kadalasang binabawasan ang oras ng pag-backup sa pamamagitan ng pagbabawas ng I/O, bagama't pinapataas nito ang paggamit ng CPU.

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

16. Konklusyon

16.1 Pangunahing Takeaway

Mabisa SQL Server pinoprotektahan ng mga backup na diskarte ang iyong data at tinitiyak ang pagpapatuloy ng negosyo. Tandaan ang mahahalagang puntong ito:

  • Unawain ang mga uri ng backup: Pumili ng naaangkop na mga uri ng backup (buo, pagkakaiba, log ng transaksyon) batay sa iyong mga kinakailangan sa pagbawi
  • Pumili ng tamang modelo ng pagbawi: Buong pagbawi para sa kritikal na data, simple para sa mga database ng pag-unlad
  • Ipatupad ang backup na iskedyul: Ang regular na buong backup na sinamahan ng differential at log backup ay nagpapaliit ng pagkawala ng data
  • Mga pamamaraan sa pagpapanumbalik ng pagsubok: Ang mga backup ay mahalaga lamang kung matagumpay na maibabalik ang mga ito
  • I-automate at subaybayan: paggamit SQL Server Ahente, mga plano sa pagpapanatili, at mga tool sa pagsubaybay
  • Mga secure na backup: I-encrypt ang sensitibong data at kontrolin ang access sa mga backup na file
  • Mag-imbak ng mga kopya sa labas ng site: Protektahan laban sa mga sakuna sa buong site gamit ang cloud o remote storage
  • Idokumento ang lahat: Panatilihin ang malinaw na dokumentasyon ng mga backup at recovery procedure

16.2 Mga Susunod na Hakbang at Mapagkukunan

Upang mapabuti ang iyong SQL Server pagpapatupad ng backup:

  • Suriin ang iyong kasalukuyang backup na diskarte laban sa pinakamahuhusay na kagawian
  • Kalkulahin ang iyong mga kinakailangan sa RTO at RPO
  • Subukan ang mga pamamaraan sa pagpapanumbalik sa mga non-production system
  • Regular na suriin at i-update ang mga backup na iskedyul
  • Ipatupad ang awtomatikong pagsubaybay at pag-alerto
  • Sanayin ang mga miyembro ng koponan sa mga pamamaraan ng pagpapanumbalik

Mga karagdagang mapagkukunan:

  • microsoft SQL Server Dokumentasyon: Opisyal na gabay sa pag-backup at pagpapanumbalik
  • SQL Server backup na mga forum ng komunidad: Magbahagi ng mga karanasan at solusyon
  • Mga propesyonal na sertipikasyon: Microsoft Certified: Azure Database Administrator Associate

16.3 Mga Inirerekomendang Tool at Solusyon

Batay sa iba't ibang mga senaryo:

Maliliit na negosyo:

  • Natural SQL Server backup na may naka-iskedyul SQL Server Mga trabahong ahente
  • SQLBackupAndFTP para sa cloud integration
  • Azure Backup para sa SQL Server

Mga katamtamang negosyo:

  • SQL Server Mga Plano sa Pagpapanatili
  • Mga tool ng third-party tulad ng Redgate SQL Backup Pro
  • Veeam Backup para sa SQL Server

Malaking negosyo:

  • Quest LiteSpeed ​​para sa maximum na compression
  • Commvault o Veritas NetBackup para sa pamamahala ng backup ng enterprise
  • Mga Grupo ng Always On Availability para sa mataas na kakayahang magamit

SQL Server Ang backup ay mahalaga sa pangangasiwa ng database. Sa pamamagitan ng wastong pagpaplano, pagpapatupad, at pagsubok, masisiguro mong mananatiling protektado at mababawi ang iyong data kapag kinakailangan. Simulan ang pagpapatupad ng mga pinakamahusay na kasanayang ito ngayon upang ma-secure ang iyong SQL Server mga database.


Tungkol sa Author

Yuan Sheng ay isang senior database administrator (DBA) na may higit sa 10 taong karanasan sa SQL Server kapaligiran at pamamahala ng database ng enterprise. Matagumpay niyang nalutas ang daan-daang mga sitwasyon sa pagbawi ng database sa mga serbisyong pinansyal, pangangalaga sa kalusugan, at mga organisasyon sa pagmamanupaktura.

Dalubhasa si Yuan sa SQL Server pagbawi ng database, mga solusyon sa mataas na kakayahang magamit, at pag-optimize ng pagganap. Kasama sa kanyang malawak na karanasan sa hands-on ang pamamahala ng mga multi-terabyte na database, pagpapatupad ng Always On Availability Groups, at pagbuo ng mga automated na backup at mga diskarte sa pagbawi para sa mission-critical na mga sistema ng negosyo.

Sa pamamagitan ng kanyang teknikal na kadalubhasaan at praktikal na diskarte, nakatuon si Yuan sa paglikha ng mga komprehensibong gabay na tumutulong sa mga administrator ng database at mga propesyonal sa IT na malutas ang kumplikado SQL Server mga hamon nang mahusay. Nananatili siyang napapanahon sa pinakabago SQL Server mga release at mga umuunlad na teknolohiya ng database ng Microsoft, na regular na sumusubok sa mga senaryo sa pagbawi upang matiyak na ang kanyang mga rekomendasyon ay sumasalamin sa mga pinakamahusay na kagawian sa totoong mundo.

May mga katanungan tungkol sa SQL Server pagbawi o kailangan ng karagdagang gabay sa pag-troubleshoot ng database? bati ni Yuan puna at mungkahi para sa pagpapabuti ng mga teknikal na mapagkukunang ito.

Ipamahagi ngayon: