--問題描述:
--對資料庫有乙個週期性資料庫備份和事務日誌備份的維護計畫,在維護計畫外有工作人員對資料庫進行完整備份,該備份會打亂現有的日誌備份鏈麼?
--建立資料庫
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...