


MySQL備份恢復(fù)數(shù)據(jù)的一般步驟
下面是備份一個(gè)數(shù)據(jù)庫的例子:
1、備份前讀鎖定涉及的表
mysql>LOCK TABLES tbl1 READ,tbl1 READ,…
如果,你在mysqldump實(shí)用程序中使用--lock-tables選項(xiàng)則不必使用如上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
但是這樣可能會(huì)有點(diǎn)小問題。上命令在啟用新的更新日志前就恢復(fù)表的讀鎖,
在更新繁忙的站點(diǎn),可能有備份后的更新數(shù)據(jù)沒有記錄在新的日志中。
現(xiàn)在恢復(fù)上面?zhèn)浞莸臄?shù)據(jù)庫
1、對(duì)涉及的表使用寫鎖
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ā),因?yàn)閭浞輸?shù)據(jù)的手法多種多樣,你所使用的和上面所述可能大不一樣,但是對(duì)于備份和恢復(fù)中,表的鎖定、啟用新的更新日志的時(shí)機(jī)應(yīng)該是類似的,仔細(xì)考慮這個(gè)問題。
思考題
請(qǐng)?jiān)谕瓿蛇@些思考題之前,啟用常規(guī)日志和更新日志,因?yàn)橄旅娴乃伎碱}將涉及到這個(gè)問題。
1、使用帶有帶有--all-databases選項(xiàng)的mysqldump實(shí)用程序,備份你現(xiàn)有的所有數(shù)據(jù)到一個(gè)文件all.sql中(如果你的數(shù)據(jù)不太多的話),查看輸出的SQL語句。
2、使用帶有--ab選項(xiàng)的mysqldump,把你的test數(shù)據(jù)庫中的表結(jié)構(gòu)和數(shù)據(jù)分別備份到一個(gè)目錄中。檢查一下生成的SQL語句與上題中備份文件中的有什么不同。
3、建立一個(gè)新的數(shù)據(jù)庫test1,把上題的備份文件恢復(fù)到該數(shù)據(jù)庫中。請(qǐng)簡(jiǎn)述一下過程。
4、查看你的更新日志和常規(guī)日志,看看上述操作是否都留下了記錄以及留下了什么記錄。
5、先在test數(shù)據(jù)庫中的任意一個(gè)表中INSERT一個(gè)記錄,然后在刪除這個(gè)記錄。(目的是在更新日志中留下記錄。)刪除數(shù)據(jù)庫test1,試試如何從更新日志恢復(fù)test1數(shù)據(jù)庫。
關(guān)鍵字:MySQL、數(shù)據(jù)庫、實(shí)用程序
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解