MySQL備份恢復數據的通常步驟
備份一個數據庫的例子:
一、備份前讀鎖定涉及的表
mysql>LOCK TABLES tbl1 READ,tbl1 READ,…
若是,你在mysqldump實用程序中使用--lock-tables選項則沒必要使用如上SQL語句。
二、導出數據庫中表的結構和數據
shell>mysqldump --opt db_name>db_name.sql
三、啓用新的更新日誌
shell>mysqladmin flush-logs
這樣能夠記錄你備份後的數據改變爲恢復數據準備。
四、解除表的讀鎖
mysql>UNLOCK TABLES;
爲了加速上述過程,你能夠這樣作:
shell> mysqldump --lock-tables --opt db_name>db_name.sql; mysqladmin flush-logs
可是這樣可能會有點小問題。上命令在啓用新的更新日誌前就恢復表的讀鎖,
在更新繁忙的站點,可能有備份後的更新數據沒有記錄在新的日誌中。
如今恢復上面備份的數據庫
一、對涉及的表使用寫鎖
mysql>LOCK TABLES tbl1 WRITE,tbl1 WRITE,…
二、恢復備份的數據
shell>mysql db_name < db_name.sql
三、恢復更新日誌的內容
shell>mysql --one-database db_name < hostname.nnn
假設須要使用的日誌名字爲hostname.nnn
四、啓用新的更新日誌
shell>mysqladmin flush-logs
五、解除表的寫鎖
mysql>UNLOCK TABLES;
但願上面的例子能給你啓發,由於備份數據的手法多種多樣,你所使用的和上面所述可能大不同,可是對於備份和恢復中,表的鎖定、啓用新的更新日誌的時機應該是相似的,仔細考慮這個問題。mysql