<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
現在xtrabackup版本升級到了8.0,但是隻對mysql8.0
才有支援, 我們這還是使用2.4
, 但是2.4
相比之前的2.1
有了比較大的變化:innobackupex
功能全部整合到 xtrabackup
裡面,只有一個 binary
,另外為了使用上的相容考慮,innobackupex
作為 xtrabackup
的一個軟鏈,即 xtrabackup
現在支援非Innodb表備份,並且 Innobackupex
在下一版本中移除(8.0已經移除了),建議通過xtrabackup
替換innobackupex
。還有其他的一些新特性,更多的說明可以看xtrabackup
新版詳細說明。
下載地址: 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
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 # 會看到輸出 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!
xtrabackup --prepare --target-dir=/data/backups/mysql
我這裡為了演示全量備份就直接將我部落格 mysql
儲存的資料目錄給移動一下
mv /var/lib/mysql /var/lib/mysql_bak mkdir /var/lib/mysql xtrabackup --copy-back --target-dir=/data/backups/mysql # 這樣會保留原始備份 他會將當時讀到my.cnf的datadir設定為恢復路徑 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!
# 將恢復目錄的屬主更改一下 chown -R mysql:mysql mysql /etc/init.d/mysql start
如果恢復玩不想要備份資料可以使用 xtrabackup --move-back
命令
增量是基於已有資料進行備份的,也就行需要先建立一次全量備份,然後記錄當時的記錄點
xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/base # 基於全量備份進行增量 xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/inc1 --incremental-basedir=/data/backups/base
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
,對於增量備份,它必須to_lsn
與先前 base
備份的相同。
在這種情況下,您可以看到to_lsn
(最後一個檢查點LSN)和last_lsn
(最後一個複製的LSN
)之間存在差異,這意味著在備份過程中伺服器上有一些流量。
xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/inc2 --incremental-basedir=/data/backups/inc1
已經有3個備份了,我們要先對基礎資料進行準備,然後對兩個增量進行準備
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
合併除最後一個以外的所有增量時應使用, 一旦準備好,增量備份就與完整備份相同,可以用相同的方式還原它們。
xtrabackup --copy-back --target-dir=/data/backups/base
中間插入的資料就能看見了,真棒!
在InnoDB
內部會維護一個redo紀錄檔檔案,我們也可以叫做事務紀錄檔檔案.事務紀錄檔會儲存每一個InnoDB表資料的記錄修改。當InnoDB啟動時,InnoDB會檢查資料檔案和事務紀錄檔,並執行兩個步驟:它應用(前滾)已經提交的 事務紀錄檔到資料檔案,並將修改過但沒有提交的資料進行回滾操作。
Xtrabackup
在啟動時會記住log sequence number(LSN)
, 並且複製所有的資料檔案。複製過程需要一些時間,所以這期間如果資料檔案有改動,那麼將會使資料庫處於一個不同的時間點。這時,xtrabackup
會執行一個後臺程序,用於監視事務紀錄檔,並從事務紀錄檔複製最新的修改。Xtrabackup
必須持續的做這個操作,是因為事務紀錄檔是會輪轉重複的寫入,並且事務紀錄檔可以被重用。所以 xtrabackup
自啟動開始,就不停的將事務紀錄檔中每個資料檔案的修改都記錄下來。上面就是 xtrabackup
的備份過程。
最後一次"準備"操作可以不用跳過回滾操作,這樣用來恢復的資料檔案本地就處理好了,當服務啟動後就不會再進入到回滾階段,如果最後一次使用了這個引數,伺服器啟動後將進入回滾階段。所以這個--apply-log-only
只是用來合併增量用的避免下一個增量不可用。 可以參見 參見 man xtrabackup
一般情況下,在備份完成後,資料尚且不能用於恢復操作,因為備份的資料中可能會包含尚未提交的事務或已經提交但尚未同步至資料檔案中的事務。因此,此時資料檔案仍處理不一致狀態。他作用是通過回滾未提交的事務及同步已經提交的事務至資料檔案使資料檔案處於一致性狀態。
mysqldump
備份缺點效率較低,備份和還原速度慢,份過程中,資料插入和更新操作會被掛起
MySQL
備份工具跨平臺性差,備份時間長,冗餘備份,浪費儲存空間
XtraBackup
備份過程中不鎖庫表,適合生產環境,由專業組織Percona
提供( 改進MySQL
分支 )
XtraBackup
能對錶 庫進行備份嗎?當然了,只不過博主太懶了,寫起來太麻煩了,不過原理都是差不多,操作也差不多,大家自己搞搞!
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
的作用是通過回滾未提交的事務及同步已經提交的事務至資料檔案使資料檔案處於一致性狀態copy
,因為是部分備份,不能直接用--copy-back
,只能手動來複制需要的庫,也要複製ibdata(資料字典)
cp /data/backups/u/ibdata1 /var/lib/mysql/
cp -r u/u_test /var/lib/mysql/
以上就是詳解如何利用Xtrabackup進行mysql增量備份的詳細內容,更多關於mysql 增量備份 Xtrabackup的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45