SQL 日誌 LOG 阿里技術協會 資料庫 Sqlserver Server Transaction 儲存 日誌備份 備份還原災難恢復 完全備份 差異備份 LSN
# 摘要 本期月報是SQL Server資料庫備份技術系列文章的開篇,介紹三種常見的SQL Server備份方法的工作方式、使用T-SQL語句和使用SSMS IDE建立備份集三個層面,介紹SQL Server的三種常見備份的工作原理和使用方法。三種常見的備份包括: 資料庫完全備份(Full Backup) 資料庫日誌備份(Transaction Log Backup) 資料庫差異備份摘要
備份的重要性
Full Backup
Full Backup工作方式
T-SQL建立Full Backup
使用T-SQL語句來完成資料庫的完全備份,使用BACKUP DATABASE語句即可,如下,對AdventureWorks2008R2資料庫進行一個完全備份:
USE master
GO
BACKUP DATABASE [AdventureWorks2008R2]
TO DISK = 'C:\Temp\AdventureWorks2008R2_20171112_FULL.bak' WITH COMPRESSION, INIT, STATS = 5;
GO複製程式碼
SSMS IDE建立Full Backup
Transaction Log Backup
USE [master]
GO
ALTER DATABASE [AdventureWorks2008R2] SET RECOVERY FULL WITH NO_WAIT
GO複製程式碼
Transaction Log Backup工作方式
事務日誌備份與資料完全備份工作方式截然不同,它不是資料庫的一個完整拷貝,而是至上一次日誌備份到當前時間內所有提交的事務資料變更。用一張圖來解釋事務日誌備份的工作方式:
T-SQL建立事務日誌備份
USE Master
GO
BACKUP LOG [AdventureWorks2008R2]
TO DISK = N'C:\temp\AdventureWorks2008R2_log_201711122201.trn' with compression,stats=1;
GO
BACKUP LOG [AdventureWorks2008R2]
TO DISK = N'C:\temp\AdventureWorks2008R2_log_201711122202.trn' with compression,stats=1;
GO
BACKUP LOG [AdventureWorks2008R2]
TO DISK = N'C:\temp\AdventureWorks2008R2_log_201711122203.trn' with compression,stats=1;
GO複製程式碼
SSMS IDE建立事務日誌備份
事務日誌備份鏈
我們使用前面“T-SQL建立事務日誌備份”建立的事務日誌鏈,使用RESTORE HEADERONLY方法來檢視事務日誌鏈的關係:
USE Master
GO
RESTORE HEADERONLY FROM DISK = N'C:\temp\AdventureWorks2008R2_log_201711122201.trn';
RESTORE HEADERONLY FROM DISK = N'C:\temp\AdventureWorks2008R2_log_201711122202.trn';
RESTORE HEADERONLY FROM DISK = N'C:\temp\AdventureWorks2008R2_log_201711122203.trn';複製程式碼
Differential Backup
Differential Backup工作方式
T-SQL建立差異備份
USE master
GO
BACKUP DATABASE [AdventureWorks2008R2]
TO DISK = 'C:\Temp\AdventureWorks2008R2_20171112_diff.bak' WITH DIFFERENTIAL
GO複製程式碼
SSMS建立差異備份
最後總結
參考
Full Backup工作方式圖參考
Transaction Log Backup工作方式圖參考
Differential Backup工作方式圖參考