mysql增量_mysql实时增量备份
采用binlog日志的好處
掌控所有更改操作,必要時可用于恢復(fù)數(shù)據(jù)
數(shù)據(jù)庫主從復(fù)制的必要條件
[linyouyi@localhost~]# vim /etc/my.cnf
[mysqld]
.. ..
log-bin=mysql-bin //啟用二進(jìn)制日志,并指定前綴
.. ..
[linyouyi@dbsvr1 ~]# service mysqld restart
確認(rèn)binlog日志文件
新啟用binlog后,每次啟動MySQl服務(wù)都會新生成一份日志文件:
[linyouyi@localhost~]# ls /var/lib/mysql/mysql-bin.*
/var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.index
清除binlog日志
刪除早前指定版本的binlog日志
RURGE MASTER LOGS TO "binlog日志"
刪除所有binlog日志,重新新建日志
RESET MASTETR
分析binlog日志
使用mysqlbinlog工具
格式:mysqlbinlog [選項] 日志文件
常用選項
--start-datatime="YYYY-mm-dd HH:MM:SS"
--stop-datatime="YYYY-mm-dd HH:MM:SS"
--start-position=起止位置
--stop-positon=結(jié)束位置
[linyouyi@localhost ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002[linyouyi@localhost~]# mysqlbinlog --start-datetime="2018-10-20 23:30" /var/lib/mysql/mysql-bin.000002
利用binlog恢復(fù)數(shù)據(jù)
基本方法
使用mysqlbinlog提取歷史SQL操作
通過管道交給mysql命令重做
案例
重做第一份binlog所記錄的更改操作
執(zhí)行指定Pos節(jié)點范圍內(nèi)的sql命令恢復(fù)數(shù)據(jù)
根據(jù)上述日志分析,只要恢復(fù)從2018-10-12 20:40:50到2018-10-20 23:15:50之間的操作即可。可通過mysqlbinlog指定時間范圍輸出,結(jié)合管道交給msyql命令執(zhí)行導(dǎo)入重做:
[linyouyi@loclahost ~]# mysqlbinlog \--start-datetime="2018-10-12 20:40:50"\--stop-datetime="2018-10-20 23:15:50"\/var/lib/mysql/mysql-bin.000002 | mysql -u linyouyi -p
Enter password:
若是全部重做
[linyouyi@loclahost~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002 | mysql -u linyouyi -p
Enter password:
mysql備份工具
mysqlhotcopy不足
僅適用于MyISAM引擎的數(shù)據(jù)庫
備份過程中,數(shù)據(jù)插入和更新操作都會被掛起
mysqldump不足
效率較低,備份和還原速度慢
備份過程中,數(shù)據(jù)插入和更新操作會被掛起
XtraBackup工具
在線熱備份工具
備份過程中不鎖表,適合生產(chǎn)環(huán)境適用
支持整體備份和增量備份
組件一xtrabackup:C程序,支持InnoDB和XtraDB,不能備份數(shù)據(jù)表結(jié)構(gòu)
組件二innobackupex:以Perl腳本封裝xtrabackup,還支持MyISAM,能備份數(shù)據(jù)表結(jié)構(gòu)
xtrabackup基本選項
基本選項
解釋
--backup
執(zhí)行備份操作
--target-dir
備份到目標(biāo)文件夾
--datadir
備份的原始文件夾(Mysql庫的位置)
--prepare
準(zhǔn)備恢復(fù)數(shù)據(jù)
--increamental-basedir
增量備份時,指定參照的完整備份路徑
--incremental-dir
準(zhǔn)備恢復(fù)目錄時,指定增量備份的路徑
1)使用XtraBackup執(zhí)行數(shù)據(jù)庫備份
[linyouyi@localhost~]# mkdir -p /backup/mysql
[linyouyi@localhost~]# xtrabackup_56 –backup --datadir=/var/lib/mysql/ --target-dir=/backup/mysql/
2)確認(rèn)備份好的文件數(shù)據(jù):
[linyouyi@loclahost~]# ls /backup/mysql/
3)做一個增量備份(基于前一步的完整備份)
[linyouyi@localhost ~]# xtrabackup_56 --backup \ #xtrabackup_55 是5.5版本,xtrabackup_56是5.6版本--datadir=/var/lib/mysql/\--target-dir=/backup/inc01/\--incremental-basedir=/backup/mysql/
確認(rèn)備份好的文件數(shù)據(jù):
[linyouyi@localhost~]# ls /backup/inc01/
對比完整備份、增量備份的大小:
[linyouyi@localhost~]# du -sh /backup/mysql/ /backup/inc01/11M/backup/mysql/ //完整備份的大小
264K /backup/inc01/
準(zhǔn)備用于恢復(fù)的數(shù)據(jù)庫目錄
以/backup/mysql/可用來重建MySQL服務(wù)器。這種情況下,官方建議連做兩次--prepare,以確保數(shù)據(jù)一致性:
[linyouyi@localhost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/[linyouyi@localhost~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/
準(zhǔn)備恢復(fù)“完整備份+增量備份”
以/backup/mysql/用來重建MySQL服務(wù)器,但這種情況下需提前合并相關(guān)增量備份的數(shù)據(jù):
先準(zhǔn)備完整備份目錄,添加--apply-log-only僅應(yīng)用日志:
[linyouyi@loclahost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql --apply-log-only
然后整合增量備份的數(shù)據(jù),通過--incremental-dir選項指定增量位置:
[linyouyi@localhost ~]# xtrabackup_56 --prepare \--target-dir=/backup/mysql --apply-log-only \--incremental-dir=/backup/inc01
至此,已經(jīng)把全量備份和增量備份合并了
接著停止數(shù)據(jù)庫,刪除/var/lib/mysql/下的內(nèi)容,拷貝數(shù)據(jù)
[linyouyi@localhost home]# systemctl stop mariadb//刪除/var/lib/mysql/下的內(nèi)容
[linyouyi@localhost home]# rm -rf /var/lib/mysql/*#[linyouyi@hadoop01 home]# innobackupex --defaults-file=/etc/my.cnf --copy-back /home/mysql --user=linyouyi --password=123456
[linyouyi@localhost home]# xtrabackup --copy-back --target-dir=/home/mysql
[linyouyi@localhost home]# chown -R mysql:mysql /var/lib/mysql/
[linyouyi@localhost home]# systemctl start mariadb
至此,數(shù)據(jù)已經(jīng)恢復(fù)成功
總結(jié)
以上是生活随笔為你收集整理的mysql增量_mysql实时增量备份的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: activiti mysql 版本_My
- 下一篇: mysql注入提取邮件_【sql注入教程