發(fā)表日期:2010/3/29 文章編輯:蘭州網站建設 瀏覽次數: 點擊:1426
數據庫在運行中,會因為人為因素或一些不可抗力因素造成數據損壞。所以為了保護數據的安全和最小停機時間,我們需制定詳細的備份/恢復計劃,并定期對計劃的有效性進行測試。
本章結合MySQL服務器的運行機制和所提供的工具,介紹如何進行數據庫的備份、維護和修復。
以下是幾點防范的措施:
制定一份數據庫備份/恢復計劃,并對計劃進行仔細測試。
啟動數據庫服務器的二進制變更日志,該功能的系統(tǒng)開銷很小(約為1%),我們沒有理由不這樣做。
定期檢查數據表,防范于未燃。
定期對備份文件進行備份,以防備份文件失效。
把MySQL的數據目錄和備份文件分別放到兩個不同的驅動器中,以平衡磁盤I/O和增加數據的安全。
檢查/修復數據表
對數據表進行維護最好通過發(fā)出CHECK TABLE(檢查數據表)或REPAIRE TABLE(修復數據表)命令來做,這樣MySQL服務器自動進行表鎖定以協(xié)調數據表中數據的讀寫一致性問題。
也可用myisamchk工具來做數據表的維護,但它直接訪問有關的數據表文件,不通過服務器,所以需人為地協(xié)調數據表數據的讀寫一致性問題。使用myisamchk檢查數據表的具體操作步驟如下:
以mysql客戶端程序連接服務器,并發(fā)出LOCK TABLE命令,以只讀方式鎖住數據表。
% mysql
mysql> use db
mysql> LOCK TABLE table_name READ; #以只讀方式鎖定表
mysql> FLUSH TABLE table_name; #關閉數據表文件,并把內存中的信息寫入磁盤
保持上面的狀態(tài)不退出,另開一個shell窗口,用以下命令維護(檢查)數據表。
% myisamchk table_name
如果不保持上面狀態(tài),退出mysql會話,則表鎖定會自動取消。
維護完成,切換回mysql狀態(tài)的shell窗口,發(fā)出以下命令解除表鎖定。
mysql> UNLOCK TABLES;
使用myisamchk修復數據表的具體操作步驟如下:
進行修復操作需以讀/寫方式鎖定數據表,命令如下:
% mysql
mysql> use db
mysql> LOCK TABLE table_name WRITE; #以讀/寫方式鎖定數據表
mysql> FLUSH TABLE table_name;
保持mysql客戶端連接狀態(tài),切換到第二個shell窗口,運行修復命令:
% myisamchk --recover table_name
運行修復命令前最好先備份一下數據文件。
修復完成后,切換回mysql客戶端連接窗口,運行以下命令解除數據表鎖定:
mysql> FLUSH TABLE table_name; #使服務器覺察新產生的索引文件
mysql> UNLOCK TABLE;
還可用以下命令鎖定所有表,鎖定后,所有用戶就只能讀不能寫數據,這樣就可使我們能安全地拷貝數據文件。
mysql> FLUSH TABLES WITH READ LOCK;
下面是解除鎖語句:
mysql> UNLOCK TABLES;
聲明:網站部分信息來源網絡若有侵權或違禁請告知我們刪除;網站建設制作,網站優(yōu)化:版權所有:蘭州霈源網絡科技有限公司 業(yè)務咨詢:13519319495 在線Q Q:
360網站安全檢測平臺 隴ICP備15000675號-2 甘公網安備 62010302001228號
相關搜索:蘭州網站建設、甘肅建設網站、網站建設明細報價表、企業(yè)網站建設,網站設計公司網站建設哪家公司好、網站建設學習網、蘭州網站制作、蘭州網站建設公司、蘭州網站設計公司、蘭州建設網、蘭州網站制作培訓、蘭州專業(yè)網站制作、網站制作高端、網站制作、網站制作公司,網站制作收費標準,網站制作的基本步驟,網站制作公司,網站價格,網站制作多少錢,建個網站需要多少錢,如何制作自己的網站、網站建設流程、網站建設公司電話13519319495