mysql恢复数据的步骤_MySQL备份恢复数据的一般步骤
下面是備份一個數(shù)據(jù)庫的例子:
1、備份前讀鎖定涉及的表
mysql>LOCK TABLES tbl1 READ,tbl1 READ,…
如果,你在mysqldump實用程序中使用--lock-tables選項則不必使用如上SQL語句。
2、導(dǎo)出數(shù)據(jù)庫中表的結(jié)構(gòu)和數(shù)據(jù)
shell>mysqldump --opt db_name>db_name.sql
3、啟用新的更新日志
shell>mysqladmin flush-logs
這樣可以記錄你備份后的數(shù)據(jù)改變?yōu)榛謴?fù)數(shù)據(jù)準(zhǔn)備。
4、解除表的讀鎖
mysql>UNLOCK TABLES;
為了加速上述過程,你可以這樣做:
shell> mysqldump --lock-tables --opt db_name>db_name.sql; mysqladmin flush-logs
但是這樣可能會有點小問題。上命令在啟用新的更新日志前就恢復(fù)表的讀鎖,
在更新繁忙的站點,可能有備份后的更新數(shù)據(jù)沒有記錄在新的日志中。
現(xiàn)在恢復(fù)上面?zhèn)浞莸臄?shù)據(jù)庫
1、對涉及的表使用寫鎖
mysql>LOCK TABLES tbl1 WRITE,tbl1 WRITE,…
2、恢復(fù)備份的數(shù)據(jù)
shell>mysql db_name < db_name.sql
3、恢復(fù)更新日志的內(nèi)容
shell>mysql --one-database db_name < hostname.nnn
假設(shè)需要使用的日志名字為hostname.nnn
4、啟用新的更新日志
shell>mysqladmin flush-logs
5、解除表的寫鎖
mysql>UNLOCK TABLES;
希望上面的例子能給你啟發(fā),因為備份數(shù)據(jù)的手法多種多樣,你所使用的和上面所述可能大不一樣,但是對于備份和恢復(fù)中,表的鎖定、啟用新的更新日志的時機(jī)應(yīng)該是類似的,仔細(xì)考慮這個問題。
思考題
請在完成這些思考題之前,啟用常規(guī)日志和更新日志,因為下面的思考題將涉及到這個問題。
1、使用帶有帶有--all-databases選項的mysqldump實用程序,備份你現(xiàn)有的所有數(shù)據(jù)到一個文件all.sql中(如果你的數(shù)據(jù)不太多的話),查看輸出的SQL語句。
2、使用帶有--ab選項的mysqldump,把你的test數(shù)據(jù)庫中的表結(jié)構(gòu)和數(shù)據(jù)分別備份到一個目錄中。檢查一下生成的SQL語句與上題中備份文件中的有什么不同。
3、建立一個新的數(shù)據(jù)庫test1,把上題的備份文件恢復(fù)到該數(shù)據(jù)庫中。請簡述一下過程。
4、查看你的更新日志和常規(guī)日志,看看上述操作是否都留下了記錄以及留下了什么記錄。
5、先在test數(shù)據(jù)庫中的任意一個表中INSERT一個記錄,然后在刪除這個記錄。(目的是在更新日志中留下記錄。)刪除數(shù)據(jù)庫test1,試試如何從更新日志恢復(fù)test1數(shù)據(jù)庫。
總結(jié)
以上是生活随笔為你收集整理的mysql恢复数据的步骤_MySQL备份恢复数据的一般步骤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 男生的名字好听又帅气带姓
- 下一篇: 晴天,雷暴和沙暴天气之间,我应该先打哪个