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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL备份恢复工具xtrabackup

發布時間:2025/7/14 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL备份恢复工具xtrabackup 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、簡介

????XtraBackup是Percona提供的一個開源的、免費的MySQL數據庫備份工具,它能夠對InnoDB和XtraDB數據庫進行熱備份,據官方介紹,XtraBackup具有以下特點:

????1. 備份過程快速、可靠;

????2. 備份過程不會打斷正在執行的事務;

????3. 能夠基于壓縮等功能節約磁盤空間和流量;

????4. 自動實現備份檢驗;

????5. 恢復速度快。


2、安裝XtraBackup

最新版本可以從https://www.percona.com/software/percona-xtrabackup獲得。

# yum install?https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.10/binary/redhat/6/x86_64/percona-xtrabackup-2.2.10-1.el6.x86_64.rpm


3、創建所需用戶

#?創建具有所需完整備份最低權限的數據庫用戶示例:

mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';

mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';

mysql> FLUSH PRIVILEGES;


4、完全備份

# innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/

#?檢查輸出最后一行的確認消息

innobackupex: Backup created in directory ’/path/to/BACKUP-DIR/2013-03-25_00-00-09’

innobackupex: MySQL binlog position: filename ’mysql-bin.000003’, position 1946

111225 00:00:53 innobackupex: completed OK!


5、準備(Prepar)一個完全備份

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

111225 1:01:57 InnoDB: Shutdown completed; log sequence number 1609228

111225 01:01:57 innobackupex: completed OK!

# 注意:在實現"準備"的過程中,innobackupex通常還可以使用--use-memory選項來指定其可以使用的內存的大小,默認為100M。如果有足夠的內存可用,可以多劃分一些內存給prepare的過程,以提高完成速度。


6、從一個完全備份中恢復

#?innobackupex命令的--copy-back選項用于執行恢復操作,通過復制所有數據相關的文件到mysql服務器的DATADIR目錄中來執行恢復過程。


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

# 如果執行正確,會出現類似幾行

innobackupex: Finished copying back files.

111225 01:08:13 innobackupex: completed OK!


# 注意:刪除數據目錄之前,先停止mysqld服務,然后直接用命令恢復啟動即可,不需要重新初始化數據庫。當數據恢復到DATADIR目錄后,還需要確保所有數據文件的屬主和屬組均為正確的用戶,否則,在啟動mysqld之前還需要事先修改數據文件的屬主和屬組。

# chown -R mysql:mysql /data/mysql


7、增量備份

# 每個InnoDB的頁面都會包含一個LSN信息,每當相關的數據發生改變,相關的頁面的LSN就會自動增長。這也是InnoDB表可以進行增量備份的基礎,即innobackupex通過備份上次完全備份之后發生改變的頁面來實現。


創建一個增量備份(需要做一個完全備份為基礎):

# innobackupex --user=DBUSER --password=DBUSERPASS?--incremental /data/backups --incremental-basedir=BASEDIR

#?其中,BASEDIR指的是完全備份所在的目錄,此命令執行結束后,innobackupex命令會在/backup目錄中創建一個新的以時間命名的目錄以存放所有的增量備份數據。另外,在執行過增量備份之后再一次進行增量備份時,其--incremental-basedir應該指向上一次的增量備份所在的目錄。


#?注意:增量備份僅能應用于InnoDB或XtraDB表,對于MyISAM表,執行增量備份其實進行的是完全備份。


8、準備增量備份

# "準備"增量備份與完全備份有點不同,需要注意的是:

????1.?需要在每個備份(包括完全和各個增量備份)上,將已經提交的事務進行"重放"。"重放"之后,所有的備份數據合并到完全備份上;

????2.?基于所有的備份將未提交的事務進行"回滾"。


操作步驟:

#?innobackupex --apply-log --redo-only BASE-DIR

120103 22:00:12 InnoDB: Shutdown completed; log sequence number 1291135

120103 22:00:12 innobackupex: completed OK!


#?innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1

120103 22:08:43 InnoDB: Shutdown completed; log sequence number 1358967

120103 22:08:43 innobackupex: completed OK!


#?innobackupex --apply-log --redo-only?BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

completed OK!


#?其中BASE-DIR指的是完全備份所在的目錄,而INCREMENTAL-DIR-1指的是第一次增量備份的目錄,INCREMENTAL-DIR-2指的是第二次增量備份的目錄,其它依次類推,如果有多次增量備份,每一次都要執行如上操作。


轉載于:https://blog.51cto.com/yuyucat/1655474

總結

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

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