欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解如何利用Xtrabackup進(jìn)行mysql增量備份

 更新時(shí)間:2022年10月28日 16:51:56   作者:不想賴床  
這篇文章主要為大家介紹了如何利用Xtrabackup進(jìn)行mysql增量備份詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

利用Xtrabackup進(jìn)行mysql增量備份

現(xiàn)在xtrabackup版本升級(jí)到了8.0,但是只對(duì)mysql8.0才有支持, 我們這還是使用2.4, 但是2.4相比之前的2.1有了比較大的變化:innobackupex 功能全部集成到 xtrabackup 里面,只有一個(gè) binary,另外為了使用上的兼容考慮,innobackupex 作為 xtrabackup 的一個(gè)軟鏈,即 xtrabackup 現(xiàn)在支持非Innodb表備份,并且 Innobackupex 在下一版本中移除(8.0已經(jīng)移除了),建議通過(guò)xtrabackup替換innobackupex。還有其他的一些新特性,更多的說(shuō)明可以看xtrabackup新版詳細(xì)說(shuō)明。

下載地址: https://www.percona.com/downloads/Percona-XtraBackup-LATEST/

文檔地址: https://docs.percona.com/percona-xtrabackup/2.4/index.html

安裝

如果安裝需要依賴就把依賴安裝一下

wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
sudo apt-get install percona-xtrabackup-24

設(shè)置數(shù)據(jù)庫(kù)用于備份賬戶

mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY '123456';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;

全量備份

xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/mysql
# 會(huì)看到輸出
200603 09:55:37 Executing UNLOCK TABLES
200603 09:55:37 All tables unlocked
200603 09:55:37 [00] Copying ib_buffer_pool to /data/backups/mysql/ib_buffer_pool
200603 09:55:37 [00]        ...done
200603 09:55:37 Backup created in directory '/data/backups/mysql/'
200603 09:55:37 [00] Writing /data/backups/mysql/backup-my.cnf
200603 09:55:37 [00]        ...done
200603 09:55:37 [00] Writing /data/backups/mysql/xtrabackup_info
200603 09:55:37 [00]        ...done
xtrabackup: Transaction log of lsn (837940114) to (837940123) was copied.
200603 09:55:37 completed OK!
  • 準(zhǔn)備備份
xtrabackup --prepare --target-dir=/data/backups/mysql
  • 復(fù)制備份

我這里為了演示全量備份就直接將我博客 mysql 存儲(chǔ)的數(shù)據(jù)目錄給移動(dòng)一下

mv /var/lib/mysql /var/lib/mysql_bak
mkdir /var/lib/mysql
xtrabackup --copy-back --target-dir=/data/backups/mysql  # 這樣會(huì)保留原始備份 他會(huì)將當(dāng)時(shí)讀到my.cnf的datadir設(shè)置為恢復(fù)路徑
200603 10:47:42 [01]        ...done
200603 10:47:42 [01] Copying ./performance_schema/mutex_instances.frm to /var/lib/mysql/performance_schema/mutex_instances.frm
200603 10:47:42 [01]        ...done
200603 10:47:42 [01] Copying ./performance_schema/events_transactions_history_long.frm to /var/lib/mysql/performance_schema/events_transactions_history_long.frm
200603 10:47:42 [01]        ...done
200603 10:47:42 [01] Copying ./xtrabackup_info to /var/lib/mysql/xtrabackup_info
200603 10:47:42 [01]        ...done
200603 10:47:42 [01] Copying ./ibtmp1 to /var/lib/mysql/ibtmp1
200603 10:47:42 [01]        ...done
200603 10:47:42 completed OK!
  • 備份成功 重新啟動(dòng) 博客還能正常訪問(wèn) 哈哈哈哈
# 將恢復(fù)目錄的屬主更改一下
chown -R mysql:mysql mysql
/etc/init.d/mysql start

如果恢復(fù)玩不想要備份數(shù)據(jù)可以使用 xtrabackup --move-back 命令

增量備份

增量是基于已有數(shù)據(jù)進(jìn)行備份的,也就行需要先創(chuàng)建一次全量備份,然后記錄當(dāng)時(shí)的記錄點(diǎn)

  • 創(chuàng)建備份
xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/base
# 基于全量備份進(jìn)行增量
xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/inc1 --incremental-basedir=/data/backups/base
  • 查看備份類型 確認(rèn)是增量備份了
root@longing:/data/backups/inc1# cat xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 837943393
to_lsn = 837943393
last_lsn = 837943402
compact = 0
recover_binlog_info = 0
flushed_lsn = 837943402

from_lsn 是備份的起始 LSN,對(duì)于增量備份,它必須to_lsn與先前 base 備份的相同。

在這種情況下,您可以看到to_lsn (最后一個(gè)檢查點(diǎn)LSN)和last_lsn(最后一個(gè)復(fù)制的LSN)之間存在差異,這意味著在備份過(guò)程中服務(wù)器上有一些流量。

  • 我們可以測(cè)試一下 對(duì)第一個(gè)增加繼續(xù)創(chuàng)建增量 創(chuàng)建增量之前先創(chuàng)建幾條數(shù)據(jù)
xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/inc2 --incremental-basedir=/data/backups/inc1
  • 準(zhǔn)備恢復(fù)

已經(jīng)有3個(gè)備份了,我們要先對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行準(zhǔn)備,然后對(duì)兩個(gè)增量進(jìn)行準(zhǔn)備

xtrabackup --user=bkpuser --password=123456 --prepare --apply-log-only --target-dir=/data/backups/base
xtrabackup --user=bkpuser --password=123456 --prepare --apply-log-only --target-dir=/data/backups/base --incremental-dir=/data/backups/inc1
xtrabackup --user=bkpuser --password=123456 --prepare --target-dir=/data/backups/base --incremental-dir=/data/backups/inc2

xtrabackup --apply-log-only 合并除最后一個(gè)以外的所有增量時(shí)應(yīng)使用, 一旦準(zhǔn)備好,增量備份就與完整備份相同,可以用相同的方式還原它們。

  • 恢復(fù)
xtrabackup --copy-back --target-dir=/data/backups/base

中間插入的數(shù)據(jù)就能看見了,真棒!

提問(wèn)總結(jié)

  • 增量備份步驟
  • 創(chuàng)建基礎(chǔ)備份
  • 一定條件進(jìn)行增量備份創(chuàng)建
  • 對(duì)所有備份進(jìn)行準(zhǔn)備 所有增量基于基礎(chǔ)備份 相當(dāng)于合并操作
  • 最后和全量備份一樣 直接恢復(fù)即可

原理

InnoDB內(nèi)部會(huì)維護(hù)一個(gè)redo日志文件,我們也可以叫做事務(wù)日志文件.事務(wù)日志會(huì)存儲(chǔ)每一個(gè)InnoDB表數(shù)據(jù)的記錄修改。當(dāng)InnoDB啟動(dòng)時(shí),InnoDB會(huì)檢查數(shù)據(jù)文件和事務(wù)日志,并執(zhí)行兩個(gè)步驟:它應(yīng)用(前滾)已經(jīng)提交的 事務(wù)日志到數(shù)據(jù)文件,并將修改過(guò)但沒有提交的數(shù)據(jù)進(jìn)行回滾操作。

Xtrabackup 在啟動(dòng)時(shí)會(huì)記住log sequence number(LSN), 并且復(fù)制所有的數(shù)據(jù)文件。復(fù)制過(guò)程需要一些時(shí)間,所以這期間如果數(shù)據(jù)文件有改動(dòng),那么將會(huì)使數(shù)據(jù)庫(kù)處于一個(gè)不同的時(shí)間點(diǎn)。這時(shí),xtrabackup 會(huì)運(yùn)行一個(gè)后臺(tái)進(jìn)程,用于監(jiān)視事務(wù)日志,并從事務(wù)日志復(fù)制最新的修改。Xtrabackup 必須持續(xù)的做這個(gè)操作,是因?yàn)槭聞?wù)日志是會(huì)輪轉(zhuǎn)重復(fù)的寫入,并且事務(wù)日志可以被重用。所以 xtrabackup 自啟動(dòng)開始,就不停的將事務(wù)日志中每個(gè)數(shù)據(jù)文件的修改都記錄下來(lái)。上面就是 xtrabackup 的備份過(guò)程。

為什么最后一次增量備份不用 "--apply-log-only"

最后一次"準(zhǔn)備"操作可以不用跳過(guò)回滾操作,這樣用來(lái)恢復(fù)的數(shù)據(jù)文件本地就處理好了,當(dāng)服務(wù)啟動(dòng)后就不會(huì)再進(jìn)入到回滾階段,如果最后一次使用了這個(gè)參數(shù),服務(wù)器啟動(dòng)后將進(jìn)入回滾階段。所以這個(gè)--apply-log-only 只是用來(lái)合并增量用的避免下一個(gè)增量不可用。 可以參見 參見 man xtrabackup

為什么備份完后要準(zhǔn)備備份 "prepare"

一般情況下,在備份完成后,數(shù)據(jù)尚且不能用于恢復(fù)操作,因?yàn)閭浞莸臄?shù)據(jù)中可能會(huì)包含尚未提交的事務(wù)或已經(jīng)提交但尚未同步至數(shù)據(jù)文件中的事務(wù)。因此,此時(shí)數(shù)據(jù)文件仍處理不一致狀態(tài)。他作用是通過(guò)回滾未提交的事務(wù)及同步已經(jīng)提交的事務(wù)至數(shù)據(jù)文件使數(shù)據(jù)文件處于一致性狀態(tài)。

為什么選擇這個(gè)做備份?

  • mysqldump 備份缺點(diǎn)

效率較低,備份和還原速度慢,份過(guò)程中,數(shù)據(jù)插入和更新操作會(huì)被掛起

  • MySQL 備份工具

跨平臺(tái)性差,備份時(shí)間長(zhǎng),冗余備份,浪費(fèi)存儲(chǔ)空間

  • XtraBackup

備份過(guò)程中不鎖庫(kù)表,適合生產(chǎn)環(huán)境,由專業(yè)組織Percona提供( 改進(jìn)MySQL分支 )

  • XtraBackup能對(duì)表 庫(kù)進(jìn)行備份嗎?

當(dāng)然了,只不過(guò)博主太懶了,寫起來(lái)太麻煩了,不過(guò)原理都是差不多,操作也差不多,大家自己搞搞!

xtrabackup --user=bkpuser --password=123456 --backup --databases="u_test" --no-timestamp --target-dir=/data/backups/u
xtrabackup --prepare --target-dir=/data/backups/u

還原

  • prepare,利用--apply-log的作用是通過(guò)回滾未提交的事務(wù)及同步已經(jīng)提交的事務(wù)至數(shù)據(jù)文件使數(shù)據(jù)文件處于一致性狀態(tài)
  • copy,因?yàn)槭遣糠謧浞?,不能直接?code>--copy-back,只能手動(dòng)來(lái)復(fù)制需要的庫(kù),也要復(fù)制ibdata(數(shù)據(jù)字典)
  • cp /data/backups/u/ibdata1 /var/lib/mysql/
  • cp -r u/u_test /var/lib/mysql/

以上就是詳解如何利用Xtrabackup進(jìn)行mysql增量備份的詳細(xì)內(nèi)容,更多關(guān)于mysql 增量備份 Xtrabackup的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • mysql 5.7.11 winx64.zip安裝配置方法圖文教程

    mysql 5.7.11 winx64.zip安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql5.7.11安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的朋友可以參考一下
    2017-02-02
  • MySQL性能監(jiān)控軟件Nagios的安裝及配置教程

    MySQL性能監(jiān)控軟件Nagios的安裝及配置教程

    這篇文章主要介紹了MySQL性能監(jiān)控軟件Nagios的安裝及配置教程,這里以CentOS操作系統(tǒng)為環(huán)境進(jìn)行演示,需要的朋友可以參考下
    2015-12-12
  • MySQL密碼忘了怎么辦?MySQL重置root密碼方法

    MySQL密碼忘了怎么辦?MySQL重置root密碼方法

    本文主要介紹Windows和Linux系統(tǒng)下忘記密碼重置root密碼的方法,需要的朋友可以參考下。
    2016-05-05
  • MySQL優(yōu)化之緩存優(yōu)化

    MySQL優(yōu)化之緩存優(yōu)化

    在平時(shí)被問(wèn)及最多的問(wèn)題就是關(guān)于 MySQL 數(shù)據(jù)庫(kù)性能優(yōu)化方面的問(wèn)題,所以最近打算寫一個(gè)MySQL數(shù)據(jù)庫(kù)性能優(yōu)化方面的系列文章,希望對(duì)初中級(jí) MySQL DBA 以及其他對(duì) MySQL 性能優(yōu)化感興趣的朋友們有所幫助。
    2017-03-03
  • 詳解MySQL8.0原子DDL語(yǔ)法

    詳解MySQL8.0原子DDL語(yǔ)法

    這篇文章主要介紹了詳解MySQL8.0原子DDL語(yǔ)法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • mysql實(shí)現(xiàn)自增序列的示例代碼

    mysql實(shí)現(xiàn)自增序列的示例代碼

    這篇文章主要介紹了mysql實(shí)現(xiàn)自增序列的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Mysql 模糊查詢和正則表達(dá)式實(shí)例詳解

    Mysql 模糊查詢和正則表達(dá)式實(shí)例詳解

    在MySQL中,可以使用LIKE運(yùn)算符進(jìn)行模糊查詢,LIKE運(yùn)算符用于匹配字符串模式,其中可以使用通配符來(lái)表示任意字符或字符序列,這篇文章主要介紹了Mysql 模糊查詢和正則表達(dá)式實(shí)例詳解,需要的朋友可以參考下
    2023-11-11
  • MySQL數(shù)據(jù)庫(kù)常用命令小結(jié)

    MySQL數(shù)據(jù)庫(kù)常用命令小結(jié)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)命令,主要包括對(duì)數(shù)據(jù)庫(kù)常用命令及數(shù)據(jù)庫(kù)中對(duì)表的命令,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • mysql 無(wú)法連接問(wèn)題的定位和修復(fù)過(guò)程分享

    mysql 無(wú)法連接問(wèn)題的定位和修復(fù)過(guò)程分享

    開發(fā)的一款網(wǎng)站防護(hù)產(chǎn)品中出現(xiàn)了一個(gè)客戶端上安裝后Mysql每隔一段時(shí)間就出現(xiàn)問(wèn)題,這個(gè)問(wèn)題是客戶反饋的,所以需要去復(fù)現(xiàn)和定位
    2013-03-03
  • MySQL中觸發(fā)器的基礎(chǔ)學(xué)習(xí)教程

    MySQL中觸發(fā)器的基礎(chǔ)學(xué)習(xí)教程

    這篇文章主要介紹了MySQL中觸發(fā)器的基礎(chǔ)學(xué)習(xí)教程,包括對(duì)觸發(fā)器的創(chuàng)建和管理等基本知識(shí),著力推薦!需要的朋友可以參考下
    2015-12-12

最新評(píng)論