SQL Server 2008 事務日誌備份注意事項
1.事務處理及其日誌
SQL Server使用事務來跟蹤所有資料庫變化。事務是SQL Server的工作單元。一個事務包含一條或多條作為整體成功或失敗的T_SQL語句。每個資料庫都有自己的事務日誌,即系統表syslogs,事務日誌自動記錄每個使用者發出的每個事務,它飲食了每個事務足夠多的資訊,以確保資料能夠被恢復。
2.檢查點(CheckPoint)
伺服器在何時更新資料?
——在檢查點。在伺服器發出一個檢查點時:(1)更新資料;(2)在日誌中記錄下執行檢查點的標記。
檢查點可把所有“髒頁”寫到資料庫裝置上,“髒頁”是指從上一次檢查點以來,在記憶體中修改、但沒有在磁碟上修改的頁。SQL Server的自動檢查點機制保證了被完成的事務修改的資料頁有規律地從記憶體中的緩衝區寫到資料庫裝置上。
二、資料庫備份
若硬體介質出現故障(如磁碟損壞),當且僅當事先已對資料庫及其事務日誌作了備份,才能恢復資料庫。
注意:絕對不要使用作業系統的複製資料庫裝置,把這樣一個複製裝入SQL Server將導致大量資料庫受損。
備份的型別:
完全備份()
增量備份——備份事務處理日誌
說明:
(1)只有把事務日誌放在單獨的裝置上,才能進行增量備份;
(2)備份事務日誌會截斷日誌,因此備份的內容是自上次備份以來的事務處理。
(3)備份之前要啟動備份伺服器,並最好建立轉儲裝置。
命令語法:
dump database 資料庫名
to 轉儲裝置名/物理檔名
dump transaction 資料庫名
{with {truncate_only|no_log}
to 轉儲裝置名/物理檔名
[with No_truncate]
Truncate_only與no_log選項用於刪除事務處理而不作複製。Truncate_only截斷日誌;在事務處理日誌完全滿時用no_log,它不為資料庫建立檢查點。兩個選項都會丟掉日誌。當使用了這兩個引數後,應及時備份整個資料庫。
No_truncate複製日誌但不截斷日誌,在出現介質錯誤時使用該選項。
圖形介面的選項與命令引數的對應關係:
(1)dump transaction (2)dump transaction…… with no_truncate
(3)dump transaction…… with truncate_only
(4)dump transaction…… with no_log
三、資料庫的恢復
使用load database載入備份到現有資料庫,資料庫可以是用於建立轉儲的資料庫,也可以不是。語法為:
load database 資料庫名 from 轉儲裝置名/物理檔名
load transaction資料庫名 from 轉儲裝置名/物理檔名
●利用備份恢復資料庫舉例:
某資料庫資料和日誌分別儲存在兩個獨立的磁碟上,正常運轉時的執行的備份計劃如下,每天的17:00執行整個資料庫的備份,每天的10:00、12:00、14:00、16:00點執行增量備份:
週一17:00磁帶1(100M)週二10:00磁帶2(30M)週二12:00磁帶3(30M)週二14:00磁帶4(30M)週二16:00磁帶5(30M)週二17:00磁帶6(30M)
SQL Server使用事務來跟蹤所有資料庫變化。事務是SQL Server的工作單元。一個事務包含一條或多條作為整體成功或失敗的T_SQL語句。每個資料庫都有自己的事務日誌,即系統表syslogs,事務日誌自動記錄每個使用者發出的每個事務,它飲食了每個事務足夠多的資訊,以確保資料能夠被恢復。
2.檢查點(CheckPoint)
伺服器在何時更新資料?
——在檢查點。在伺服器發出一個檢查點時:(1)更新資料;(2)在日誌中記錄下執行檢查點的標記。
檢查點可把所有“髒頁”寫到資料庫裝置上,“髒頁”是指從上一次檢查點以來,在記憶體中修改、但沒有在磁碟上修改的頁。SQL Server的自動檢查點機制保證了被完成的事務修改的資料頁有規律地從記憶體中的緩衝區寫到資料庫裝置上。
二、資料庫備份
若硬體介質出現故障(如磁碟損壞),當且僅當事先已對資料庫及其事務日誌作了備份,才能恢復資料庫。
注意:絕對不要使用作業系統的複製資料庫裝置,把這樣一個複製裝入SQL Server將導致大量資料庫受損。
備份的型別:
完全備份()
增量備份——備份事務處理日誌
說明:
(1)只有把事務日誌放在單獨的裝置上,才能進行增量備份;
(2)備份事務日誌會截斷日誌,因此備份的內容是自上次備份以來的事務處理。
(3)備份之前要啟動備份伺服器,並最好建立轉儲裝置。
命令語法:
dump database 資料庫名
to 轉儲裝置名/物理檔名
dump transaction 資料庫名
{with {truncate_only|no_log}
to 轉儲裝置名/物理檔名
[with No_truncate]
Truncate_only與no_log選項用於刪除事務處理而不作複製。Truncate_only截斷日誌;在事務處理日誌完全滿時用no_log,它不為資料庫建立檢查點。兩個選項都會丟掉日誌。當使用了這兩個引數後,應及時備份整個資料庫。
No_truncate複製日誌但不截斷日誌,在出現介質錯誤時使用該選項。
圖形介面的選項與命令引數的對應關係:
(1)dump transaction (2)dump transaction…… with no_truncate
(3)dump transaction…… with truncate_only
(4)dump transaction…… with no_log
三、資料庫的恢復
使用load database載入備份到現有資料庫,資料庫可以是用於建立轉儲的資料庫,也可以不是。語法為:
load database 資料庫名 from 轉儲裝置名/物理檔名
load transaction資料庫名 from 轉儲裝置名/物理檔名
●利用備份恢復資料庫舉例:
某資料庫資料和日誌分別儲存在兩個獨立的磁碟上,正常運轉時的執行的備份計劃如下,每天的17:00執行整個資料庫的備份,每天的10:00、12:00、14:00、16:00點執行增量備份:
週一17:00磁帶1(100M)週二10:00磁帶2(30M)週二12:00磁帶3(30M)週二14:00磁帶4(30M)週二16:00磁帶5(30M)週二17:00磁帶6(30M)
DumpdatabaseDumptransactionDumptransactionDumptransactionDumptransactionDumpdatabase
若資料磁碟在週二的下午六點損壞,可以採用如下步驟恢復資料庫:
(1)使用dump transaction with no_truncate獲得當前的事務日誌轉儲,磁帶7;
(2)使用load database轉載最新的資料庫轉儲,磁帶6;(offline)
(3)使用load transaction提交最新的事務日誌轉儲,磁帶7;
(4)使用online database把資料庫狀態設定為online。
若資料磁碟在週二的下午4:50損壞,恢復過程如下:
(1)使用dump transaction with no_truncate獲得當前的事務日誌轉儲,磁帶7;
(2)使用load database轉載最新的資料庫轉儲,磁帶6;(offline)
(3)使用load transaction依次裝載磁帶2、3、4、5上的事務日誌;
(4)使用load transaction提交最新的事務日誌轉儲,磁帶7;
(5)使用online database把資料庫狀態設定為online。
四、制定備份與恢復的策略
由於事務日誌在恢復資料庫中的特殊作用,應定期備份資料庫及其事務日誌,而且事務日誌的備份要更頻繁一些。如:資料庫每週備份一次,事務日誌每天備份一次。
若資料磁碟在週二的下午六點損壞,可以採用如下步驟恢復資料庫:
(1)使用dump transaction with no_truncate獲得當前的事務日誌轉儲,磁帶7;
(2)使用load database轉載最新的資料庫轉儲,磁帶6;(offline)
(3)使用load transaction提交最新的事務日誌轉儲,磁帶7;
(4)使用online database把資料庫狀態設定為online。
若資料磁碟在週二的下午4:50損壞,恢復過程如下:
(1)使用dump transaction with no_truncate獲得當前的事務日誌轉儲,磁帶7;
(2)使用load database轉載最新的資料庫轉儲,磁帶6;(offline)
(3)使用load transaction依次裝載磁帶2、3、4、5上的事務日誌;
(4)使用load transaction提交最新的事務日誌轉儲,磁帶7;
(5)使用online database把資料庫狀態設定為online。
四、制定備份與恢復的策略
由於事務日誌在恢復資料庫中的特殊作用,應定期備份資料庫及其事務日誌,而且事務日誌的備份要更頻繁一些。如:資料庫每週備份一次,事務日誌每天備份一次。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-1664494/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 2008 事務日誌備份SQLServer
- SQL Server 2008 建立事務日誌備份SQLServer
- SQL Server 2008還原事務日誌備份SQLServer
- SQL Server 2008進行備份事務日誌SQLServer
- SQL Server 2008結尾事務日誌備份SQLServer
- SQL Server大型事務日誌的備份SQLServer
- SQL Server備份事務日誌結尾(Tail)SQLServerAI
- sqlserver2008還原事務日誌(注意事項)SQLServer
- SQL Server 2008在資料庫損壞時備份事務日誌SQLServer資料庫
- SQL Server 2008應用事務日誌備份SQLServer
- SQL Server 事務日誌傳輸SQLServer
- SQL Server事務日誌介紹SQLServer
- MS SQL Server 事務日誌介紹SQLServer
- 關於mysqldump備份非事務表的注意事項MySql
- 日誌傳送事務日誌備份設定
- SQL Server 收縮事務日誌的方法SQLServer
- 清除 SQL SERVER 2005 事務日誌SQLServer
- SQL Server事務日誌的處理方法SQLServer
- SQL Server Profiler 設定注意事項SQLServer
- SQL Server事務日誌過大的處理SQLServer
- 淺談SQL Server中的事務日誌(一)----事務日誌的物理和邏輯構架SQLServer
- SQL Server 表分割槽注意事項HXSQLServer
- 淺談SQL Server中的事務日誌(轉載)SQLServer
- SQL Server資料庫事務日誌儲存序列SQLServer資料庫
- SQL Server 2008還原順序的高階注意事項SQLServer
- SQL Server Alwayson建立代理作業注意事項SQLServer
- SQL Server中流水號生成的注意事項SQLServer
- [zt] SQL Server 事務日誌的收縮和截斷SQLServer
- 關於SQL Server事務日誌的問題彙總SQLServer
- SQL Server資料庫事務日誌序列號(LSN)介紹SQLServer資料庫
- SQL Server如何截斷(Truncate)和收縮(Shrink)事務日誌SQLServer
- [轉載] SQL Server事務日誌的收縮和截斷SQLServer
- 備份 master 資料庫時的注意事項AST資料庫
- SQL 事務日誌填滿的原因SQL
- SQL TUNNING 注意事項SQL
- SQL Server 事務及回滾事務SQLServer
- SQL Server 查出未提交事務(長事務)SQLSQLServer
- @Transactional spring 配置事務 注意事項Spring