• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    使用xtrabackup在線增量備份及恢復數據庫_MySQL

    來源:懂視網 責編:小采 時間:2020-11-09 20:08:22
    文檔

    使用xtrabackup在線增量備份及恢復數據庫_MySQL

    使用xtrabackup在線增量備份及恢復數據庫_MySQL:一、Percona Xtrabackup 簡介 1、Xtrabackup bin目錄文件 介紹 1)innobackupex innobackupex 是xtrabackup的一個符號鏈接 . innobackupex still supports all features and syntax as 2.2 version
    推薦度:
    導讀使用xtrabackup在線增量備份及恢復數據庫_MySQL:一、Percona Xtrabackup 簡介 1、Xtrabackup bin目錄文件 介紹 1)innobackupex innobackupex 是xtrabackup的一個符號鏈接 . innobackupex still supports all features and syntax as 2.2 version

    一、Percona Xtrabackup 簡介

    1、Xtrabackup bin目錄文件 介紹

    1)innobackupex

    innobackupex 是xtrabackup的一個符號鏈接 . innobackupex still supports all features and syntax as 2.2 version did, but is now deprecated and will be removed in next major release.

    2)xtrabackup

    一個由C編譯而來的二進制文件,可以整備MySQL database instance with MyISAM, InnoDB, and XtraDB tables

    3)xbcrypt

    用來加密或解密備份的數據

    4)xbstream

    用來解壓或壓縮xbstream格式的壓縮文件

    5)xbcloud

    utility used for downloading and uploading full or part of xbstream archive from/to cloud.

    2、Percona XtraBackup info

    是開源免費的MySQL數據庫熱備份軟件,它能對InnoDB和XtraDB存儲引擎的數據庫非阻塞地備份(對于MyISAM的備份同樣需要加表鎖)

    you can achieve the following benefits: (https://www.percona.com/doc/percona-xtrabackup/2.3/intro.html)

    Backups that complete quickly and reliably

    Uninterrupted transaction processing during backups

    Savings on disk space and network bandwidth

    Automatic backup verification

    Higher uptime due to faster restore time

    features

    Create hot InnoDB backups without pausing your database

    Make incremental backups of MySQL

    Stream compressed MySQL backups to another server

    Move tables between MySQL servers on-line

    Create new MySQL replication slaves easily

    Backup MySQL without adding load to the server

    無需停止數據庫進行InnoDB熱備

    增量備份MySQL

    流壓縮到傳輸到其它服務器

    在線移動表

    能比較容易地創建主從同步

    備份MySQL時不會增大服務器負載

    3、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)備份等,通過復制數據文件,復制日志文件和提交日志到數據文件(前滾)實現了各種復合備份方式。

    二、安裝xtrabackup

    1、安裝

    yum -y install perl perl-devel libaio libaio-devel

    yum -y install perl-DBI perl-DBD-MySQL perl-TermReadKey perl-devel perl-Time-HiRes

    cd /usr/local/src

    wget -c https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/ \

    binary/tarball/percona-xtrabackup-2.3.2-Linux-x86_64.tar.gz

    tar -zxf percona-xtrabackup-2.3.2-Linux-x86_64.tar.gz

    cd percona-xtrabackup-2.3.2-Linux-x86_64/

    mkdir /usr/local/xtrabackup

    mv bin /usr/local/xtrabackup/

    ln -s /usr/local/xtrabackup/bin/* /usr/bin/

    2、修改my.cnf

    [mysqld]

    datadir=/var/lib/mysql

    innodb_data_home_dir = /data/mysql/ibdata

    innodb_log_group_home_dir = /data/mysql/iblogs

    innodb_data_file_path=ibdata1:10M;ibdata2:10M:autoextend

    innodb_log_files_in_group = 2

    innodb_log_file_size = 1G

    三、全部數據庫備份與還原

    1、備份

    //全部數據庫備份

    innobackupex --user=root --password=123456 /data/backup/

    //單數據庫備份

    innobackupex --user=root --password=123456 --database=backup_test /data/backup/

    //多庫

    innobackupex--user=root --password=123456 --include='dba.*|dbb.*' /data/backup/

    //多表

    innobackupex --user=root --password=123456 --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=root --stream=tar /data/backup 2>/data/backup/$log | gzip 1> /data/backup/$db

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

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

    2、還原

    service mysqld stop

    mv /data/mysql /data/mysql_bak && mkdir -p /data/mysql

    //--apply-log選項的命令是準備在一個備份上啟動mysql服務

    innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log /data/backup/2015-09-18_16-35-12

    //--copy-back 選項的命令從備份目錄拷貝數據,索引,日志到my.cnf文件里規定的初始位置

    innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /data/backup/2015-09-18_16-35-12

    chown -R mysql.mysql /data/mysq

    service mysqld start

    四、增量備份與還原

    1、創建測試數據庫和表

    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 ;

    2、增量備份

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

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

    //第一次備份

    mysql> INSERT INTO backup (name) VALUES ('xx'),('xxxx'); //插入數據

    innobackupex --user=root --incremental-basedir=/data/backup/2015-09-18_16-35-12 --incremental /data/backup/

    //再次備份

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

    innobackupex --user=root --incremental-basedir=/data/backup/2015-09-18_18-05-20 --incremental /data/backup/

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

    [root@localhost 2015-09-18_16-35-12]# cat xtrabackup_checkpoints //全備目錄下的文件

    backup_type = full-prepared

    from_lsn = 0 //全備起始為0

    to_lsn = 23853959

    last_lsn = 23853959

    compact = 0

    [root@localhost 2015-09-18_18-05-20]# cat xtrabackup_checkpoints //第一次增量備份目錄下的文件

    backup_type = incremental

    from_lsn = 23853959

    to_lsn = 23854112

    last_lsn = 23854112

    compact = 0

    [root@localhost 2015-09-18_18-11-43]# cat xtrabackup_checkpoints //第二次增量備份目錄下的文件

    backup_type = incremental

    from_lsn = 23854112

    to_lsn = 23854712

    last_lsn = 23854712

    compact = 0

    增量備份做完后,把backup_test這個數據庫刪除掉,drop database backup_test;這樣可以對比還原后

    4、增量還原

    分為兩個步驟

    a.prepare

    innobackupex --apply-log /path/to/BACKUP-DIR

    此時數據可以被程序訪問使用;可使用—use-memory選項指定所用內存以加快進度,默認100M;

    b.recover

    innobackupex --copy-back /path/to/BACKUP-DIR

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

    先復制MyISAM表,然后是innodb表,最后為logfile;--data-dir目錄必須為空

    開始合并

    innobackupex --apply-log --redo-only /data/backup/2015-09-18_16-35-12

    innobackupex --apply-log --redo-only --incremental /data/backup/2015-09-18_16-35-12 --incremental-dir=/data/backup/2015-09-18_18-05-20

    innobackupex --apply-log --redo-only --incremental /data/backup/2015-09-18_16-35-12 --incremental-dir=/data/backup/2015-09-18_18-11-43

    #/data/backup/2015-09-18_16-35-12 全備份目錄

    #/data/backup/2015-09-18_18-05-20 第一次增量備份產生的目錄

    #/data/backup/2015-09-18_18-11-43 第二次增量備份產生的目錄

    恢復數據

    service mysqld stop

    innobackupex --copy-back /data/backup/2015-09-18_16-35-12

    service mysqld start

    五、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.

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    使用xtrabackup在線增量備份及恢復數據庫_MySQL

    使用xtrabackup在線增量備份及恢復數據庫_MySQL:一、Percona Xtrabackup 簡介 1、Xtrabackup bin目錄文件 介紹 1)innobackupex innobackupex 是xtrabackup的一個符號鏈接 . innobackupex still supports all features and syntax as 2.2 version
    推薦度:
    標簽: 恢復 備份 在線
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 精品人妻少妇嫩草AV无码专区| 亚洲性日韩精品一区二区三区| 久久青青草原精品国产软件| 91精品欧美综合在线观看| 欧美亚洲另类精品第一页 | 久久久久久国产精品免费无码| 精品a在线观看| 欧美黑人巨大精品| 国产精品午睡沙发系列| 亚洲午夜国产精品无码| 日本精品久久久久久久久免费| 国产精品成| 国产成人精品cao在线| 久久精品免费一区二区三区| 国产精品久久久久久吹潮| 亚洲精品无码专区久久久 | 久久97精品久久久久久久不卡| 国产午夜无码精品免费看| 亚洲国产精品无码中文字| 亚洲国产精品自产在线播放| 久久久久久国产精品免费免费 | 国内精品国产成人国产三级| 青草青草久热精品视频在线网站 | 日韩欧美国产精品第一页不卡| 国产欧美日韩综合精品二区| 国产A∨国片精品一区二区| 一区二区三区日韩精品| 欧美精品免费在线| 欧美精品亚洲精品日韩专区va| 国产精品天天影视久久综合网| A级精品国产片在线观看| 国产精品无码久久综合| 国产亚洲精品岁国产微拍精品| 久久精品人成免费| 精品国产一区二区三区色欲| 国产剧情国产精品一区| 国产精品日本一区二区在线播放| 国内精品久久久久影院一蜜桃| 潮喷大喷水系列无码久久精品| 国产精品美女久久久久网| 久久99国产精品二区不卡|