日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Xtrabackup 增量备份

發布時間:2023/12/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Xtrabackup 增量备份 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Xtrabackup工具支持對InnoDB存儲引擎的增量備份,工作原理如下

1、在InnoDB內部會維護一個redo/undo日志文件,也可以叫做事務日志文件。事務日志會存儲每一個InnoDB表數據的記錄修改。當InnoDB啟動時,InnoDB會檢查數據文件和事務日志,并執行兩個步驟:它應用(前滾)已經提交的事務日志到數據文件,并將修改過但沒有提交的數據進行回滾操作。

2、Xtrabackup在啟動時會記住log sequence number(LSN),并且復制所有的數據文件。復制過程需要一些時間,所以這期間如果數據文件有改動,那么將會使數據庫處于一個不同的時間點。這時,xtrabackup會運行一個后臺進程,用于監視事務日志,并從事務日志復制最新的修改。Xtrabackup必須持續的做這個操作,是因為事務日志是會輪轉重復的寫入,并且事務日志可以被重用。所以xtrabackup自啟動開始,就不停的將事務日志中每個數據文件的修改都記錄下來。

3、上面就是xtrabackup的備份過程。接下來是準備(prepare)過程,在這個過程中,xtrabackup使用之前復制的事務日志,對各個數據文件執行災難恢復(就像mysql剛啟動時要做的一樣)。當這個過程結束后,數據庫就可以做恢復還原了,這個過程在xtrabackup的編譯二進制程序中實現。程序innobackupex可以允許我們備份MyISAM表和frm文件從而增加了便捷和功能。Innobackupex會啟動xtrabackup,直到xtrabackup復制數據文件后,然后執行FLUSH TABLES WITH READ LOCK來阻止新的寫入進來并把MyISAM表數據刷到硬盤上,之后復制MyISAM數據文件,最后釋放鎖。

4、備份MyISAM和InnoDB表最終會處于一致,在準備(prepare)過程結束后,InnoDB表數據已經前滾到整個備份結束的點,而不是回滾到xtrabackup剛開始時的點。這個時間點與執行FLUSH TABLES WITH READ LOCK的時間點相同,所以myisam表數據與InnoDB表數據是同步的。類似oracle的,InnoDB的prepare過程可以稱為recover(恢復),myisam的數據復制過程可以稱為restore(還原)。

5、Xtrabackup 和 innobackupex這兩個工具都提供了許多前文沒有提到的功能特點。手冊上有對各個功能都有詳細的介紹。簡單介紹下,這些工具提供了如流(streaming)備份,增量(incremental)備份等,通過復制數據文件,復制日志文件和提交日志到數據文件(前滾)實現了各種復合備份方式。

1、安裝

rpm -ivh? ?libev-4.04-2.el6.x86_64.rpm?

rpm -ivh? ?perl-DBD-MySQL-4.023-6.el7.x86_64.rpm

rpm -ivh? ?percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

2、查看my.cnf

#egrep -v "^#|^$" /etc/my.cnf

!includedir /etc/my.cnf.d/

!includedir /etc/percona-server.conf.d/

[client]

default-character-set = utf8

[mysql]

default-character-set = utf8

[mysqld]

character-set-server = utf8

datadir = /var/lib/mysql

socket = /var/lib/mysql/mysql.sock

?

做增量備份是在全量的基礎上,所以,需要先做一個全量備份,放在/data/mysqlbackup/下,且不壓縮,方便后面同步數據,生成當前日期的一個目錄,語句如下:

innobackupex --user=root? --password=Passw0rd! /data/mysqlbackup/

3、創建測試數據庫和表

Mysql> create database backup_test;?//創建庫

?

CREATE TABLE `backup` (???????????? //創建表

`id`?int(11) NOT NULL AUTO_INCREMENT ,

`name` varchar(20) NOT NULL DEFAULT?''?,

`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,

`del` tinyint(1) NOT NULL DEFAULT?'0',

PRIMARY KEY (`id`)

) ENGINE=myisam DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

4、增量備份

#--incremental:增量備份的文件夾

#--incremental-dir:針對哪個做增量備份

?

//第一次加入數據,然后備份

mysql> INSERT INTO backup (name) VALUES ('haha'),('six');?//插入數據

innobackupex? --user=root? --password=Passw0rd! ?--incremental-basedir=/data/mysqlbackup/2018-08-20_14-58-42 --incremental /data/mysqlbackup/?????????????? ?????????//增量備份語句

?

//再次加入數據,然后備份

mysql> INSERT INTO backup (name) VALUES ('test'),('testd');?//在插入數據

innobackupex --user=root? --password=Passw0rd! ?--incremental-basedir=/data/mysqlbackup/2018-08-20_15-05-11 --incremental /data/mysqlbackup/??????????????? ??????????????????????//增量備份語句

?

這個時候在 /data/mysqlbackup/ 下面應該有當前時間的三個目錄,時間有一點差別而已

?

?

#/data/mysqlbackup/2018-08-20_14-58-42 全備份目錄

#/data/mysqlbackup/2018-08-20_15-05-11 第一次增量備份產生的目錄

#/data/mysqlbackup/2018-08-20_15-10-27 第二次增量備份產生的目錄

?

5、查看增量備份記錄文件

[root@ma02]# cat 2018-08-20_14-58-42/xtrabackup_checkpoints?//全備目錄下的文件

backup_type = full-backuped

from_lsn = 0 //全備起始為0

to_lsn = 44966412

last_lsn = 44966421

compact = 0

recover_binlog_info = 0

?

[root@ma02]# cat 2018-08-20_15-05-11/xtrabackup_checkpoints?//第一次增量備份目錄下的文件

backup_type = incremental

from_lsn = 44966412

to_lsn = 44969224

last_lsn = 44969233

compact = 0

recover_binlog_info = 0

?

[root@ma02]# cat 2018-08-20_15-10-27/xtrabackup_checkpoints?//第二次增量備份目錄下的文件

backup_type = incremental

from_lsn = 44969224

to_lsn = 44971200

last_lsn = 44971209

compact = 0

recover_binlog_info = 0

5.1 模擬數據丟失

增量備份做完后,把backup_test這個數據庫刪除掉,

Mysql> drop database backup_test;

這樣可以對比還原后

6、增量還原,同步開始合并

回滾未提交的事務及同步已經提交的事務至數據文件使得數據文件處于一致性狀態

?

innobackupex? --apply-log? --redo-only 2018-08-20_14-58-42/

innobackupex? --apply-log? --redo-only? --incremental 2018-08-20_14-58-42/? ? --incremental-dir 2018-08-20_15-05-11/

innobackupex? --apply-log? --redo-only? --incremental 2018-08-20_14-58-42/? ? --incremental-dir 2018-08-20_15-10-27/

?

提示:

#/data/mysqlbackup/2018-08-20_14-58-42 全備份目錄

#/data/mysqlbackup/2018-08-20_15-05-11 第一次增量備份產生的目錄

#/data/mysqlbackup/2018-08-20_15-10-27 第二次增量備份產生的目錄

從my.cnf讀取datadir/innodb_data_home_dir/innodb_data_file_path等變量

先復制MyISAM表,然后是innodb表,最后為logfile

7、恢復數據

拷貝先前備份所有文件到它們的原始路徑

?

1

2

3

4

Systemctl? stop? mysqld.service

innobackupex --copy-back /data/backup/2018-08-20_14-58-42

chown –R mysql.mysql? /var/lib/mysql/*

Systemctl? start? mysqld.service

?

注意:

①??? --data-dir目錄必須為空(可在恢復前移動到其他目錄下)

② 恢復完數據之后記得更改所有者和所屬組,防止mysql 啟動失敗

?

8、 登錄驗證數據是否存在

?

發現數據都在,未丟失,實驗結束。

9、其他

//全部數據庫備份

innobackupex --user=ftpuser? --password=Passw0rd!? ?/data/backup/

?

//單數據庫備份

innobackupex --user=ftpuser? --password=Passw0rd!? ? --database=backup_test /data/backup/

?

//多庫

innobackupex--user=ftpuser? --password=Passw0rd!? ?--include='dba.*|dbb.*'?/data/backup/

?

//多表

innobackupex --user=ftpuser? --password=Passw0rd! --include='dba.tablea|dbb.tableb'?/data/backup/

?

//數據庫備份并壓縮

log=zztx01_`date +%F_%H-%M-%S`.log

db=zztx01_`date +%F_%H-%M-%S`.tar.gz

innobackupex --user=ftpuser? --password=Passw0rd! ?--stream=tar /data/backup? 2>/data/backup/$log | gzip 1> /data/backup/$db

//不過注意解壓需要手動進行,并加入 -i 的參數,否則無法解壓出所有文件,疑惑了好長時間

?

//如果有錯誤可以加上? --defaults-file=/etc/my.cnf

?

innobackup?常用參數說明

--defaults-file
同xtrabackup的--defaults-file參數

--apply-log
對xtrabackup的--prepare參數的封裝

--copy-back
做數據恢復時將備份數據文件拷貝到MySQL服務器的datadir ;

--remote-host=HOSTNAME
通過ssh將備份數據存儲到進程服務器上;

--stream=[tar]
備 份文件輸出格式, tar時使用tar4ibd , 該文件可在XtarBackup binary文件中獲得.如果備份時有指定--stream=tar, 則tar4ibd文件所處目錄一定要在$PATH中(因為使用的是tar4ibd去壓縮, 在XtraBackup的binary包中可獲得該文件)。
在 使用參數stream=tar備份的時候,你的xtrabackup_logfile可能會臨時放在/tmp目錄下,如果你備份的時候并發寫入較大的話 xtrabackup_logfile可能會很大(5G+),很可能會撐滿你的/tmp目錄,可以通過參數--tmpdir指定目錄來解決這個問題。

--tmpdir=DIRECTORY
當有指定--remote-host or --stream時, 事務日志臨時存儲的目錄, 默認采用MySQL配置文件中所指定的臨時目錄tmpdir

--redo-only --apply-log組,
強制備份日志時只redo ,跳過rollback。這在做增量備份時非常必要。

--use-memory=#
該參數在prepare的時候使用,控制prepare時innodb實例使用的內存量

--throttle=IOS
同xtrabackup的--throttle參數

--sleep=是給ibbackup使用的,指定每備份1M數據,過程停止拷貝多少毫秒,也是為了在備份時盡量減小對正常業務的影響,具體可以查看ibbackup的手冊 ;

--compress[=LEVEL]
對備份數據迚行壓縮,僅支持ibbackup,xtrabackup還沒有實現;

--include=REGEXP
對 xtrabackup參數--tables的封裝,也支持ibbackup。備份包含的庫表,例如:--include="test.*",意思是要備份 test庫中所有的表。如果需要全備份,則省略這個參數;如果需要備份test庫下的2個表:test1和test2,則寫 成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*"。

--databases=LIST
列出需要備份的databases,如果沒有指定該參數,所有包含MyISAM和InnoDB表的database都會被備份;

--uncompress
解壓備份的數據文件,支持ibbackup,xtrabackup還沒有實現該功能;

--slave-info,
備 份從庫, 加上--slave-info備份目錄下會多生成一個xtrabackup_slave_info 文件, 這里會保存主日志文件以及偏移, 文件內容類似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0

--socket=SOCKET
指定mysql.sock所在位置,以便備份進程登錄mysql.

總結

以上是生活随笔為你收集整理的Xtrabackup 增量备份的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91伦理视频 | 九九热视频在线免费观看 | 免费毛片一区二区三区久久久 | 熊出没之冬日乐翻天免费高清观看 | 国产素人在线观看 | 欧美国产精品一区二区三区 | 日韩久久影视 | 丰满岳乱妇国产精品一区 | 欧美日韩一区二区三区不卡视频 | 国产成人精品一区二区三区 | 桃谷绘里香在线播放 | 亚洲一区亚洲二区 | 国产美女喷水 | 一本一道人人妻人人妻αv 九一在线视频 | 悠悠色在线 | 一区二区三区在线视频免费观看 | 免费成人在线观看 | 天天做天天摸天天爽天天爱 | 亚洲社区在线观看 | 精品在线视频播放 | 成年网站在线播放 | 三级免费毛片 | 91sao| 日本国产在线观看 | 夜夜操夜夜爱 | 深爱五月网 | 成人久久 | 九九五月天| 久久盗摄 | 色av色| 久久国产精 | 非洲黑妞xxxxhd精品 | 五月激情丁香网 | 亚洲二级片| 蜜桃一二三区 | 久久99精品波多结衣一区 | 女性高潮视频 | 国产欧美一区在线观看 | 97香蕉久久超级碰碰高清版 | 女同性αv亚洲女同志 | 免费人成在线 | 欧美肉大捧一进一出免费视频 | 国产情侣在线播放 | 欧洲一区二区三区在线 | 成人黄色小说视频 | 五月深爱网 | 豆花视频在线 | 就要操就要射 | 欧美深夜福利 | 女人18毛片水真多18精品 | 爱爱15p| 午夜小电影 | 国产成人无遮挡在线视频 | 岛国av在线免费观看 | 三级艳丽杨钰莹三级 | 草久久久 | 丰满人妻一区二区三区免费 | 大胸美女被爆操 | 国产五区| 免费看av软件 | 极品久久久久 | 一区二区三区中文字幕在线观看 | 国产又黄又粗又长 | 亚洲一区二区三区高清视频 | 五月天最新网址 | 人妻少妇偷人精品久久性色 | 四季av日韩精品一区 | 亚洲AV无码乱码国产精品牛牛 | 久久精品66| 久久成年 | 99网站 | 99re99热| 蜜臀久久99精品久久久 | 国产精品日韩av | 国产高清sp | 狠狠干综合 | 在线观看成年人视频 | 一本到免费视频 | 狠狠操在线播放 | 人人草在线视频 | 中文字幕国产日韩 | 日本亚洲欧洲色 | 天天射天天干天天操 | 69视频免费观看 | 真人一毛片 | 天天碰免费视频 | 欧美日韩高清不卡 | 日本中文字幕第一页 | 亚洲乱码精品久久久久.. | 老司机性视频 | 天堂中文网在线 | 青春草视频在线免费观看 | 水蜜桃影库 | 久久久久久九九九九 | 四虎影视永久地址 | 性xxxxbbbb | 哺乳期给上司喂奶hd | 一区二区三区四区在线观看视频 | 三级性生活视频 |