recovery ******
迴圈日誌,空間自動**,不可備份日誌,恢復時僅能恢復到資料庫備份時間點;
用於落地資料或測試環境或olap,不推薦用於生產oltp
有時候distribution過大也可置為******
recovery bulk_logged
常規操作日誌正常記錄,特定操作時僅記錄少量日誌;
恢復時特定操作將做回滾處理,其他操作正常恢復到當前
特定操作:
1、select * into test2 from test1 where 1=1
2、dts資料匯入
3、bulk into
注意:特定操作不等於大資料操作,例如:
insert into test2 select * from test1
delete from test2 where id<100000
將會記錄全部日誌
優化表複製
--1、改為bulk_logged恢復模式
--操作前日誌使用率
dbcc sqlperf(logspace)
alter database testdb set recovery bulk_logged
--2、推薦將sql1替換sql2
sql1:select * into test2 from test1 where 1=1
sql2:insert into test2 select * from test1
- -操作後日誌使用率,發現變化不大
dbcc sqlperf(logspace)
--3、重建索引
create index on test2
--4、重新改為full恢復模式
alter database testdb set recovery full
即優化了日誌空間和插入速度,又優化了索引(大量資料插入,會引起大量索引碎片)
full recovery <--> bulk_logged recovery
切換時不會造成日誌鏈斷裂,所以也不用擔心日誌不能備份
**:
recovery full
通過事務日誌將資料庫還原到任意的時刻點,
full模式下的空間優化:
一、事務內進行大批量的資料刪除、更新操作,引起的日誌爆滿
1.多次少量原則,每次寫入一定量的日誌
2.手工觸發checkpoint,每次發生checkpoint時會自動截斷事務日誌
二、複製時引起的日誌爆滿
複製可以在******恢復模式下進行
三、完整恢復模式下引起的日誌爆滿
1.配合備份策略,進行日誌歸檔
2.定期刪除歷史日誌歸檔檔案
四、執行備份的時候,可以截斷部分事務日誌
五、大批量資料匯入的時引起的日誌爆滿
將恢復模式暫時改為bulk_logged(僅記錄回滾所需日誌,不記錄插入日誌),完成後及時改為full
六、使用警報,可以實現日誌使用率超過一定量自動歸檔
七、檢視日誌空間使用率dbcc sqlperf(logspace)
各模式間切換時注意點
1、******->full
完成切換後,需要立刻進行差異備份,恢復日誌鏈
2、full->******
先進行日誌備份,因為切換會中斷日誌鏈
3、bulk_logged<->full 自由切換
4、******<->bulk_logged 不常見
SQL Server恢復模式
sql server 提供三種可供選擇的恢復模式 簡單恢復模式 完整恢復模式和大容量日誌恢復模式。恢復模式是乙個資料庫屬性,它用於控制資料庫備份和還原操作基本行為。為每個資料庫選擇最佳恢復模式是計畫備份和還原策略的必要部分。檢視恢復模式 1.展開 資料庫 然後根據資料庫的不同,選擇使用者資料庫,或展...
SqlServer2005備份模式與恢復模式
sql server 2005及以上版本也可以使用下面這條語句來檢視 select name,recovery model desc from master.sys.databases order by name 如果想改變資料庫的恢復模式,可以使用下面sql語句 簡單恢復模式 alter data...
sql server 資料恢復
1 備份當前資料庫的事務日誌 backup log 資料庫名 to disk n 備份檔案名 with norecovery 2 恢復乙個誤刪除之前的完全備份 restore database 資料庫名 from disk n 資料庫上一次完全備份的檔名 with norecovery,replac...