top
Loading...
5.9.2.示例用備份與恢復策略
5.9.2. 示例用備份與恢復策略
5.9.2.1. 備份策略
5.9.2.2. 為恢復進行備份
5.9.2.3. 備份策略摘要
本節討論進行備份的程序,在出現崩潰后,可以恢復數據:

·         操作系統崩潰

·         電源故障

·         文件系統崩潰

·         硬件問題(硬盤、母板等等)

該命令不包括mysqldumpmysql程序的--userpassword等選項。應包括必要的選項讓MySQL服務器允許你連接它。

我們假定數據保存在MySQLInnoDB存儲引擎中,支持事務和自動崩潰恢復。我們假定崩潰時MySQL服務器帶負載。如果不帶負載,則不需要恢復。

出現操作系統崩潰或電源故障時,我們可以假定重啟后硬盤上的MySQLś數據仍可用。由于崩潰,InnoDB數據文件中的數據可能不再保持一致性,但InnoDB讀取它的日志并會查到掛起的提交的和未提交的事務清單,它們沒有清空到數據文件中。InnoDB自動卷回未提交的事務,并清空到它的數據文件中。通過MySQL錯誤日志將該恢復過程相關信息傳達給用戶。下面的例子為日志摘錄:

InnoDB: Database was not shut down normally.
InnoDB: Starting recovery from log files...
InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 13674004
InnoDB: Doing recovery: scanned up to log sequence number 0 13739520
InnoDB: Doing recovery: scanned up to log sequence number 0 13805056
InnoDB: Doing recovery: scanned up to log sequence number 0 13870592
InnoDB: Doing recovery: scanned up to log sequence number 0 13936128
...
InnoDB: Doing recovery: scanned up to log sequence number 0 20555264
InnoDB: Doing recovery: scanned up to log sequence number 0 20620800
InnoDB: Doing recovery: scanned up to log sequence number 0 20664692
InnoDB: 1 uncommitted transaction(s) which must be rolled back
InnoDB: Starting rollback of uncommitted transactions
InnoDB: Rolling back trx no 16745
InnoDB: Rolling back of trx no 16745 completed
InnoDB: Rollback of uncommitted transactions completed
InnoDB: Starting an apply batch of log records to the database...
InnoDB: Apply batch completed
InnoDB: Started
mysqld: ready for connections

如果文件系統崩潰或出現硬件問題,我們可以假定重啟后硬盤上的MySQLś數據不可用。這說明MySQL未能成功啟動,因為一些硬盤數據塊不再可讀。在這種情況下,需要重新格式化硬盤,安裝一個新的,或糾正問題。然后需要從備份中恢復MySQL數據,這說明我們必須先做好備份。要想確保,應及時返回并設計備份策略。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html
北斗有巢氏 有巢氏北斗