您好,登錄后才能下訂單哦!
本文主要給大家簡單講講mysql主要備份方式有哪些,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望mysql主要備份方式有哪些這篇文章可以給大家?guī)硪恍?shí)際幫助。
Mysql主要的備份方式
在線備份如何保障備份的數(shù)據(jù)的一致性,使用邏輯卷快照功能來實(shí)現(xiàn),先鎖幾秒
把blog日志重定向到一個(gè)文件里,再用source導(dǎo)入到數(shù)據(jù)庫里,因?yàn)槊坎僮饕徊蕉紩?huì)產(chǎn)生新的blog日志
物理備份:
直接復(fù)制數(shù)據(jù)庫文件,適用于大型數(shù)據(jù)庫環(huán)境,一般結(jié)構(gòu)lvm snapshot的方式實(shí)現(xiàn),缺點(diǎn)是不能恢復(fù)到異構(gòu)系統(tǒng)中如Windows中
邏輯備份
備份的是建表,建庫,插入等操作所執(zhí)行的sql語句,適用于中小型數(shù)據(jù)庫,效率比較低
Mysqldump實(shí)現(xiàn)邏輯備份
語法
#mysqldump -h 云服務(wù)器 -u用戶名 -p密碼 數(shù)據(jù)庫名 > 備份文件.sql
數(shù)據(jù)庫名的選項(xiàng)
--all -databases 所有庫
School 數(shù)據(jù)庫名
School stu_info t1 school數(shù)據(jù)庫的表stu_info t1
--databases bbs test mysql 多個(gè)數(shù)據(jù)庫
實(shí)例:
單庫備份:
#mysqldump -uroot -p123 bbs >bbs.sql
#mysqldump -uroot -p123 bbs table1 table 2 > bbs table1 table2.sql
多庫備份
#mysqldump -uroot -p123 -databases bbs test mysql > bbs_test_mysql,sql
備份所有庫
#mysqldump -uroot -p123 --all-databases > all.sql
#mysqldump -uroot -p123 --all-databses --lock-all-tables > /tmp/all2.sql
備份/恢復(fù)案例:
情況1數(shù)據(jù)庫損壞了,等于是機(jī)器都壞了
操作步驟:
備份
1#mysqldump -uroot -p123 --all-databases --lock-all-tables>/backup/`date+%F`_all.sql
2mysql -uroot -p123 -e ‘flush logs’ //截?cái)嗖a(chǎn)生新的binlog
3插入數(shù)據(jù) //模擬云服務(wù)器正常運(yùn)行
4mysql>set sql_log_bin=0;
Mysql>drop database bbs //模擬云服務(wù)器損壞
恢復(fù):(干凈的環(huán)境,新機(jī)器)
1mysql>set sql_log_bin=0;
Mysql>source /backup/2014-02-13 all.sql //恢復(fù)最近一次完全備份
2mysqlbinlog 最后一個(gè)binlog |mysql -uroot -p 123 //恢復(fù)最后一個(gè)binlog文件
情況2如果有誤刪除
備份
1#mysqldump -uroot -p123 --all-databases --lock-all-tables>/backup/`date+%F`_all.sql
2mysql -uroot -p123 -e ‘flush logs’ //截?cái)嗖a(chǎn)生新的binlog
3插入數(shù)據(jù) //模擬云服務(wù)器正常運(yùn)行
4Mysql>drop table db1.t1 //模擬誤刪除
恢復(fù):(干凈的環(huán)境,新機(jī)器)
1mysql>set sql_log_bin=0;
Mysql>source /backup/2014-02-13 all.sql //恢復(fù)最近一次完全備份
2mysqlbinlog 最后一個(gè)binlog --stop-position=260|mysql -uroot -p 123
mysqlbinlog 最后一個(gè)binlog --start-position=500|mysql -uroot -p 123 這種情況下就需要用到blog字符截取來恢復(fù)
備份/恢復(fù)注意事項(xiàng):
1)完全備份到一個(gè)干凈的環(huán)境(例如新的數(shù)據(jù)庫或刪除原有的數(shù)據(jù)庫)
2)恢復(fù)期間所有sql語句不應(yīng)該記錄到binlog中
3)單庫恢復(fù)前需要手動(dòng)創(chuàng)建數(shù)據(jù)庫
實(shí)現(xiàn)自動(dòng)化備份
1)寫腳本
Vim /mysql_back.sql
#!/bin/Bash
#The mysql_back
# Author: luliechu (E-mail: 983765387@qq.com)
Back_dir=/backup
Back_file=`date+%F`_all.sql
User=root
Pass=123
If[! -d /backup];
Then
Mkdir -p /backup
Fi
#備份并切斷日志
Mysqldump -u${user} -p${pass} -- events --all-databases --lock-all-tables>${back_dir}/${back_file}
Mysql -u${user} -p${pass} -e ‘flush’ logs
#只保留最近一周的備份
Cd $back_dir
Find -mtime +7 -exec rm -rf {}\;
2)測試
Chmod a+x /mysql_back.sql //給腳本執(zhí)行權(quán)限
Chattr +i /mysql_back.sql //為了安全給這腳本文件上鎖,禁止任何人做改動(dòng)
/mysql_back.sql //執(zhí)行腳本
3)配置定時(shí)任務(wù)到生產(chǎn)環(huán)境中
Crontab -l
0 2 * * * /mysql_back.sql //每天凌晨2點(diǎn)執(zhí)行腳本
導(dǎo)出表
將表導(dǎo)入到文本文件中
表的導(dǎo)出和導(dǎo)入
Select ....into outfile 導(dǎo)出文本文件
實(shí)例:
Mysql>select * from school.student1
Into outfile ‘student1.txt’
Fields terminated by `,` //定義字段分割符
Optinon
Ally enclosed by `’’` 定義字符串使用什么符號括起來
Lines terminated by ‘\n’ //定義換行符
數(shù)據(jù)庫遷移
注意要盡量是相同版本之間遷移
Mysqldump -h 遷移源ip -uroot -p123 --databases bbs |mysql -h 目標(biāo)ip -uroot
-p456
//遷移源為本機(jī),不用申請
總結(jié):mysql支持多種不同的備份方式,包括物理備份,邏輯備份等方式,通過在生產(chǎn)環(huán)境中一般都是采用物理備份和邏輯備份相結(jié)合的方式來實(shí)現(xiàn)
mysql主要備份方式有哪些就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。