溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql主要備份方式有哪些

發(fā)布時(shí)間:2020-05-13 11:40:30 來源:億速云 閱讀:427 作者:三月 欄目:數(shù)據(jù)庫

本文主要給大家簡單講講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ù)庫

mysql主要備份方式有哪些

實(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è)知識分享給大家的。

向AI問一下細(xì)節(jié)

免責(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)容。

AI