新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用mysqldump&xtrabackup對數(shù)據(jù)庫進行備份
數(shù)據(jù)備份是數(shù)據(jù)庫的數(shù)據(jù)保護措施之一,數(shù)據(jù)備份可以使用工具輕松實現(xiàn),結(jié)合定時任務也能一定程度上保證我們數(shù)據(jù)的安全。下面教你用mysqldump & xtrabackup 備份數(shù)據(jù)庫的簡陋方法

網(wǎng)站前端頁面設計會用DIV+CSS架構(gòu),布局出來的網(wǎng)站外觀簡潔大氣。HTML靜態(tài),HTML5建站+CSS3網(wǎng)站,自適應電腦、手機、平板,符合用戶體驗的習慣,更容易與用戶產(chǎn)生互動。專業(yè)網(wǎng)絡公司的服務理念是“高性價比建站,讓企業(yè)網(wǎng)站具備營銷價值,促進長期合作共贏模式”。
mysqldump的簡單用法
#備份(導出)所有數(shù)據(jù)庫的數(shù)據(jù)和結(jié)構(gòu)(注意:這種方式備份,還原時,無需先創(chuàng)建數(shù)據(jù)庫,可直接導入)
mysqldump -u root -p 'password' --all-databases > all.sql
#備份指定數(shù)據(jù)庫(db1和db2)
mysqldump -u root -p 'password' ---databases db1 db2 > db1-db2.sql
#恢復(導入)所有庫
mysql -u root -p 'password' #導入某個庫(只導入db1這個數(shù)據(jù)庫,db2不導入)
mysql -u root -p 'password' db1
xtrabackup工具(不支持mysql5.7)
介紹,能對InnoDB引擎進行增量備份(備份是不加鎖),對MyISAM引擎全量備份(備份時會鎖寫)
第一:安裝xtrabackup
wget https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
rpm -ivh percona-release-0.1-4.noarch.rpm
yum clean all
yum makecache
yum install percona-xtrabackup.x86_64 -y
第二:備份數(shù)據(jù)庫
#指定mysql的配置文件,指定mysql的用戶,指定密碼,指定用于存放備份的路徑(注意:前提是my.cnf文件內(nèi)指定了data的存放目錄)
#注意:innobackupex 不支持mysql 5.1的innodb備份
[root@iptables ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
innobackupex --defaults-file=/etc/my.cnf --user=root --password /mnt/mysqlback
第二:prepare數(shù)據(jù)庫(預備份–apply-log)
#創(chuàng)建完的備份之后的數(shù)據(jù)還不能馬上用于還原,需要回滾未提交事務,前滾提交事務,讓數(shù)據(jù)庫文件保持一致性
innobackupex --defaults-file=/etc/my.cnf --user=root --password --apply-log /mnt/mysqlback/2018-05-15
#成功后會輸出,成功后備份可以被用來還原數(shù)據(jù)庫了
#prepare的過程,其實是讀取備份文件夾中的配置文件,然后innobackupex重做已提交事務,回滾未提交事務,之后數(shù)據(jù)就被寫到了備份的數(shù)據(jù)文件(innodb)中,并重建日志文件
#--user-memory 指定prepare階段可使用的內(nèi)存大小,默認為10MB,內(nèi)存多則快
第三:恢復數(shù)據(jù)庫
注意,還原是先關(guān)閉服務,如果服務是啟動的,那么就不能還原到datadir,并且datadir 必須是為空的,因為 innobackupex –copy-back 不會覆蓋已存在的文件
#innobackupex 使用 --copy-back 來還原備份(recovery)
innobackupex --defaults-file=/etc/my.cnf --user=root --password --copy-back /mnt/mysqlback/2018-05-15
#innobackupex 會根據(jù)my.cnf的配置,將所有備份數(shù)據(jù)復制到my.cnf里面指定的 datadir 路徑下
#如果恢復成功,則有如下提示
第四:修改datadir目的的權(quán)限,啟動數(shù)據(jù)庫
#默認情況下是通過root用戶恢復數(shù)據(jù),所以mysql數(shù)據(jù)文件夾目錄是root權(quán)限,需要修改為數(shù)據(jù)庫程序的所有者權(quán)限
chown -R mysql:mysql datadir
附:備份壓縮和流
#使用流特性,需要指定--stream 選項,使用tar備份(推薦方法)
innobackupex --defaults-file=/etc/my.cnf --user=root --password --stream=tar /mnt/mysqlback | gzip - > /mnt/mysqlback.tar.gz
#可用參數(shù),--parallel=4 加速備份,這個選項指定xtrabackup備份文件的線程數(shù)
#解壓提取tar流文件,必須加 -i 參數(shù),不然不可使用
tar -xizf /mnt/mysqlback.tar.gz
示例,備份mysql的boke數(shù)據(jù)庫,并恢復
1:對mysql的boke庫進行備份
innobackupex --defaults-file=/etc/my.cnf --user=root --password=111222 --database=boke --stream=tar /mnt/ 2>/mnt/back_data/boke.log | gizp 1>/mnt/back_data/boke.tar.gz
#說明
2>/mnt/back_data/boke.log #innobackupex的輸出信息,寫入日志文件,便于查閱核對,備份是否成功
1>/mnt/back_data/boke.tar.gz #打包壓縮存儲到該文件中
2:此處可以寫一個腳本備份(back.sh)
#!/bin/sh
echo "開始備份----"`date`
LOG=boke_`date +%F-%H%M`.log
STR=boke_`date +%F-%H%M`.tar.gz
innobackupex --defaults-file=/etc/my.cnf --user=root --password=111222 --database=boke --stream=tar /mnt/back_data/ 2>/mnt/back_data/$LOG | gzip 1>/mnt/back_data/$STR
echo "備份完成---"`date`
3:數(shù)據(jù)恢復
1:先停止數(shù)據(jù)庫
2:解壓
tar -izxvf /mnt/back_data/boke.tar.gz -C /mnt/back_data/db/ #沒有db,需要mkdir /mnt/back_data/db/ 創(chuàng)建哦
3:恢復(確保datadir為空)
innobackupex --defaults-file=/etc/my.cnf --user=root --password=111222 --apply-log /mnt/back_data/db/
innobackupex --defaults-file=/etc/my.cnf --user=root --password=111222 --copy-back /mnt/back_data/db/
4:賦權(quán)
chown -R mysql:mysql /var/lib/mysql #這個目錄是my.cnf 里面指定的datadir路徑
5:啟動數(shù)據(jù)庫
文章題目:使用mysqldump&xtrabackup對數(shù)據(jù)庫進行備份
文章位置:http://fisionsoft.com.cn/article/cogcecg.html


咨詢
建站咨詢
