Backup 完整備份會打破現有的日誌備份鏈麼?

2021-09-06 13:28:33 字數 2198 閱讀 3137

--問題描述:

--對資料庫有乙個週期性資料庫備份和事務日誌備份的維護計畫,在維護計畫外有工作人員對資料庫進行完整備份,該備份會打亂現有的日誌備份鏈麼?

--建立資料庫

create database backuptestdb 

go use backuptestdb  

go --建立測試表

create table tb1 

id int identity( 1,1 ) primary key,  

actiondesc nvarchar (200),  

actiontime datetime default getdate() 

--第一次完整備份

backup database backuptestdb to disk='g:\dbbackup\f1.bak'

go --第一次完整備份後記錄

insert into tb1( actiondesc) select n' 第一次完整備份後 '

go --第一次日誌備份

backup log backuptestdb to disk ='g:\dbbackup\l1.bak'

--第一次日誌備份後記錄

insert into tb1( actiondesc) select n' 第一次日誌備份後 '

go --第二次完整備份

backup database backuptestdb to disk='g:\dbbackup\f2.bak'

go --第二次完整備份後記錄

insert into tb1( actiondesc) select n' 第二次完整備份後 '

go --第二次日誌備份

backup log backuptestdb to disk ='g:\dbbackup\l2.bak'

--第二次日誌備份後記錄

insert into tb1( actiondesc) select n' 第二次日誌備份後 '

go--還原方式

use master 

go--使用第一次完整備份恢復

restore database backuptestdb from disk='g:\dbbackup\f1.bak'

with norecovery ,replace

go--使用第一次日誌備份恢復

restore database backuptestdb from disk='g:\dbbackup\l1.bak'

with norecovery ,replace

go--使用第二次日誌備份恢復

restore database backuptestdb from disk='g:\dbbackup\l2.bak'

with recovery ,replace

gouse backuptestdb 

goselect * from tb1

還原方式

use master 

go--使用第二次完整備份恢復

restore database backuptestdb

from disk ='g:\dbbackup\f2.bak'

with norecovery ,replace

go--使用第二次日誌備份恢復

restore database backuptestdb

from disk ='g:\dbbackup\l2.bak'

with recovery ,replace

gouse backuptestdb 

goselect * from tb1

--案例:

--有資料庫db1 ,該資料庫由於長時間未做日誌備份,導致資料檔案為 gb,而日誌檔案有gb,為截斷日誌,工作人員對資料庫進行完整備份 +日誌備份,結果發現日誌備份耗費大量時間,且生成的日誌備份檔案較大。

--解釋:在資料庫完成第一次完整備份後,第一次日誌備份會以第一次完整備份為起始點開始備份日誌,而後續的日誌備份會以最近一次日誌備份結束點為起始點開始備份,而不考慮最近一次完整備份。

--如果確認當前資料無問題同是想快速收縮日誌檔案,可以修改資料庫恢復模式為簡單模式,然後收縮日誌檔案,再進行完整備份 +事務日誌備份

--建議:

--在dba 維護過程中,會在維護計畫外對資料庫進行備份,備份應考慮當前維護計畫,應該將備份檔案存放到維護計畫使用的目錄下,尤其是對日誌進行備份,如果不希望截斷日誌,可以使用 copy_only

完整備份 增量備份 差異備份

完整備份 增量備份 差異備份 完整備份 對資料檔案進行完整的備份 複製 乙份在本地或網路其他位置。比較消耗資源,但是可以保證資料完整性。a a 增量備份 在上一次完整備份 增量備份的基礎上只對每次發生變化 新增或修改 的資料檔案進行遞增備份。這種備份方式備份比較方便,可以減少資源消耗。但是有乙個問題...

mysql完整備份策略

備份頻率 備份方式 儲存期限 每小時一次 日誌備份 30天每天一次 增量30天 每週一次 全量4周 每月一次 全量6月 每年一次 全量2年 儲存方式 本地 異地 bin bash etc profile week date a today date y m d month date d y m01 ...

mysql完整備份案例

vim etc my.cnf 修改配置檔案使其支援漢字 修改內容 systemctl restart mariadb 重啟服務 create database client default charset utf8 若配置檔案沒有生效則刪除已建立的庫,重新在建立庫時進行修改 drop databas...