新聞中心
MySQL數(shù)據(jù)庫中有哪些備份方案,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
10年積累的網(wǎng)站設計、成都網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有眉山免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
1、冷備份:
一般主要用于非核心業(yè)務,這類業(yè)務一般都是允許業(yè)務中斷的,冷備份的特點就是數(shù)度快,恢復時也最為簡單。通常直接復物理文件來實現(xiàn)冷備份。
1.1備份過程:
***關閉mysql服務
第二步就是把datas數(shù)據(jù)目錄(包含ibdata1)和日志目錄(包含ib_logfile0,ib_logfile1,ib_logfile2)復制到磁盤,或者本地的另一塊磁盤里
1.2恢復過程:
***使用復制的數(shù)據(jù)目錄和日志目錄替換原有的目錄
第二就是啟動mysql
2、邏輯備份MySQLdump
生產(chǎn)場景備份的命令:
生產(chǎn)場景不同引擎mysqldump備份命令
myisam引擎企業(yè)生產(chǎn)備份命令(適合所有引擎或混合引擎):
mysqldump -uroot -p123456 -A -B -F -R --master-data=2 -x --events|gzip >/opt/all.sql.gz
提示:-F也可以不用,與--master-data有些重復。
innodb引擎企業(yè)生產(chǎn)備份命令:推薦使用的
mysqldump -uroot -p123456 -A -B -F -R --master-data=2 --default-character-set=utf8 --events --single-transaction |gzip >/opt/all.sql.gz
提示:-F也可以不用。與--master-data有些重復。
--default-character-set=utf8 指定備份出的sql數(shù)據(jù)的字符集為utf8,當然,這個要提前知道線上的mysql庫全部采用的字符集都是utf8,否則在恢復到線上的庫會出現(xiàn)字符集不一致的問題出現(xiàn)亂碼
提示:邏輯備份一般是數(shù)據(jù)遷移或者數(shù)據(jù)量很小時采用,邏輯備份采用的是數(shù)據(jù)導出的方式
2.1mysqldump庫表等備份說明:
全備:
Mysqldump –uroot –p -q –single-transaction –A >>all.sql
導出多個數(shù)據(jù)庫:
Mysqldump –uroot –p -q –single-transaction –B test01 wjw01 test02 >test01_wjw01_test02.sql
導出一個test庫的某張wjw01表:
Mysqldump –uroot –p -q –single-transaction –b test wjw01>>test_wjw01.sql
只導出表結構:
Mysqldump –uroot –q –d --skip-triggers
只需要導出儲存過程時:
Mysqldump –uroot –q -Rtdn --skip-triggers
只需要導出觸發(fā)器:
Mysqldump –uroot –p –q –tdn –triggers
只需要導出事件:
Mysqldump –uroot –p –q –Etdn –skip-triggers
只需要導出數(shù)據(jù):
Mysqldump –uroot –p –q --skip-transaction --skip-triggers –t
要想在線上建立一臺新的slave,則在master上執(zhí)行如下命令:
Mysqldump –uroot –p –q –single-transaction –master-data=2 -A >>all.sql
提示:在mysql5.5里增加了一個新的參數(shù):--dump-slave,使用該參數(shù)可在slave端dump數(shù)據(jù),建立新的slave,其目的是為了防止對主庫造成過大的壓力。
在slave上執(zhí)行以下命令:
Mysqldump -uroot –p -A –dump-slave=2 –q –single-transaction >/tmp/all.sql
查看alls.sql 里面會記錄slave上的那個點。
注意:--dump-slave用于在slave上dump數(shù)據(jù),建立新的slave
2.2Mysqldump優(yōu)缺點以及使用場景
優(yōu)點:
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術社區(qū)
恢復簡單,可以使用管道將他們輸入到mysql
與存儲引擎無關,因為是從MySQL
說明:這個全量備份腳本,會在導出的時候鎖住全局表,并且此時刷新產(chǎn)生一個新的bin-log,期間會產(chǎn)生寫操作的等待,直到導出結束后才會寫入新產(chǎn)生的bin-log文件,然后舊的bin-log 文件會被刪除刪除掉,一般在晚上2:00業(yè)務低峰期執(zhí)行操作
進行本地bin-log增量備份
在執(zhí)行完全量備份腳本后,就可以執(zhí)行增量備份腳本了。
增量備份腳本思路很簡單:
先mysqladmin -uroot -p123456 flush-logs 刷新新的binlog文件,此時mysql寫入到新的binlog文件中。
然后把當前mysql數(shù)據(jù)庫存放binlog的目錄中拋去剛才***生成的binlog文件,其余舊的binlog文件全部cp到本地服務器/backup/binlog binlog的備份目錄下。
***在登錄MySQL清除當前的binlog文件數(shù)減一
mysql -uroot -p123456 -e "purge binary logs to 'mysql-bin.(n-1)'"
3.熱備份與恢復
熱備份的方式也是直接復制數(shù)據(jù)物理文件,和冷備份一樣,但是熱備份可以不停機直接復制,一般用于7*24小時不間斷的重要核心業(yè)務。Mysql的社區(qū)版本熱備份工具InnoDB Hot Backup是付費的,只能試用30天,商業(yè)版才可以***的使用,
Percona公司發(fā)布一個xtrabackup熱備工具,和付費的工具一樣,支持在線熱備(備份時不影響數(shù)據(jù)的讀寫)是商業(yè)工具InnoDB Hot Backup的一個很好的替代。
xtrabackup熱備工具是一個開源的工具,他可以非常快速的備份和恢復mysql數(shù)據(jù)庫。由于Xtrabackup支持備份innodb表,實際生產(chǎn)環(huán)境中我們使用的工具是innobackupex,它是對xtrabackup的一層封裝。innobackupex腳本用來備份非 InnoDB 表,同時會調用 xtrabackup命令來備份 InnoDB 表,innobackupex的基本流程如下:
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術社區(qū)
開啟redo日志拷貝線程,從***的檢查點開始順序拷貝redo日志;
開啟idb文件拷貝線程,拷貝innodb表的數(shù)據(jù)
idb文件拷貝結束,通知調用FTWRL,獲取一致性位點
備份非innodb表(系統(tǒng)表)和frm文件
由于此時沒有新事務提交,等待redo日志拷貝完成
***的redo日志拷貝完成后,相當于此時的innodb表和非innodb表數(shù)據(jù)都是***的
獲取binlog位點,此時數(shù)據(jù)庫的狀態(tài)是一致的。
釋放鎖,備份結束。
看完上述內容,你們掌握MySQL數(shù)據(jù)庫中有哪些備份方案的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
本文名稱:MySQL數(shù)據(jù)庫中有哪些備份方案
標題鏈接:http://www.ef60e0e.cn/article/gjoscd.html