percona-xtrabackup是percona公司為了實現增量備份而開發的一款主流備份工具,支援mysql、percona server和mariadb,它包含了xtrabakup和innobakupe2個工具。
備份速度快,物理備份可靠
備份過程不會打斷正在執行的事務(無需鎖表)
能夠基於壓縮等功能節約磁碟空間和流量
自動備份校驗
還原速度快
可以流傳將備份傳輸到另外一台機器上
在不增加伺服器負載的情況備份資料
[root@cst opt]# ls
percona-xtrabackup-2.4.21-r5988af5-el8-x86_64-bundle.tar
[root@cst opt]# tar xf percona-xtrabackup-2.4.21-r5988af5-el8-x86_64-bundle.tar
[root@cst opt]# ls
percona-xtrabackup-2.4.21-r5988af5-el8-x86_64-bundle.tar
percona-xtrabackup-24-2.4.21-1.el8.x86_64.rpm
percona-xtrabackup-24-debuginfo-2.4.21-1.el8.x86_64.rpm
percona-xtrabackup-24-debugsource-2.4.21-1.el8.x86_64.rpm
percona-xtrabackup-test-24-2.4.21-1.el8.x86_64.rpm
percona-xtrabackup-test-24-debuginfo-2.4.21-1.el8.x86_64.rpm
[root@cst opt]# yum -y install percona*
備份——語法:
innobackupex --user=dbuser --password=dbuserpass --defaults-file=/etc/my.cnf /path/to/backup-dir/
恢復——語法:
innobackupex --copy-back --defaults-file=/etc/my.cnf /backups/
[root@cst backups]# innobackupex --user=root --password=123456 --host=127.0.0.1 /backups/
[root@master ~]# mysql
mariadb> create database school;
query ok, 1 row affected (0.02 sec)
mariadb> use school;
database changed
mariadb> create table student(id int not null primary key auto_incerment,name varchar(100) not null,age tinyint);
query ok, 0 rows affected (0.07 sec)
mysql> insert into student(name,age) values('zhangsan',15),('lisi','16'),('wanger',15);
query ok, 3 rows affected (0.04 sec)
records: 3 duplicates: 0 warnings: 0
mariadb [school]> select * from student;
+----+----------+------+
| id | name | age |
+----+----------+------+
| 1 | zhangsan | 15 |
| 2 | lisi | 16 |
| 3 | wanger | 15 |
+----+----------+------+
3 rows in set (0.000 sec)
mariadb> quit;
bye//使用innobackupex進行增量備份
[root@cst backups]# innobackupex --user=root --host=127.0.0.1 --incremental /backups/ --incremental-basedir=/backups/2021-01-03_02-48-21/
[root@master backups]# ll
total 0
drwxr-xr-x. 2 root root 6 jan 3 03:11 2021-01-03_02-48-21
drwxr-xr-x. 2 root root 6 jan 3 03:11 2021-01-03_03-06-45
[root@cst 2021-01-03_02-48-21]# cat xtrabackup_checkpoints #檢視全量備份的xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 3127097
last_lsn = 3127097 compact = 0
recover_binlog_info = 0
[root@cst 2021-01-03_03-06-45]# cat xtrabackup_checkpoints #檢視增量備份的xtrabackup_checkpoints
backup_type = incremental
from_lsn = 3127097
to_lsn = 3158741
last_lsn = 3158741
compact = 0
recover_binlog_info = 0
//模擬mysql故障,停止mysql
[root@cst ~]# systemctl stop mariadb.service
//刪除資料目錄中的所有資料
[root@cst ~]# rm -rf /usr/local/mysql/data/*
//合併全備資料目錄,確保資料的一致性
//將增量備份資料合併到全備資料目錄當中
[root@master ~]# cat /backups/2021-01-03_02-48-21/xtrabackup_checkpoints
from_lsn = 0
to_lsn = 3158741
last_lsn = 3158741
compact = 0
recover_binlog_info = 0
//資料恢復
[root@cst ~]# innobackupex --copy-back /backups/2021-01-03_02-48-21/
[root@master ~]# ll /usr/local/mysql/data/
total 73245
-rw-r----- 1 root root 79691776 jan 03 03:35 ibdata1
drwxr-x--- 2 root root 20 jan 03 03:35 kim
drwxr-x--- 2 root root 4096 jan 03 03:35 mysql
drwxr-x--- 2 root root 4096 jan 03 03:35 performance_schema
drwxr-x--- 2 root root 20 jan 03 03:35 repppp
drwxr-x--- 2 root root 56 jan 03 03:35 student
drwxr-x--- 2 root root 4096 jan 03 03:35 wordpress
-rw-r----- 1 root root 9 jan 03 03:35 xtrabackup_binlog_pos_innodb
-rw-r----- 1 root root 554 jan 03 03:35 xtrabackup_info
//更改資料的屬主屬組
[root@cst ~]# chown -r mysql.mysql /usr/local/mysql/data
[root@cst ~]# systemctl start mariadb.service
//檢視資料是否恢復
[root@master ~]# mysql -e "show databases;"
+----+----------+------+
| id | name | age |
+----+----------+------+
| 1 | zhangsan | 15 |
| 2 | lisi | 16 |
| 3 | wanger | 15 |
+----+----------+------+
3 rows in set (0.000 sec)
xtrabackup備份與恢復
xtrabackup是由percona開源的免費資料庫熱備份軟體,它能對innodb資料庫和xtradb儲存引擎的資料庫進行備份,對於myisam的備份需要加表鎖,當資料庫資料大於10g時,xtrabackup備份比mysqldump優秀。xtrabackup的執行檔案說明 xtrabackup 專...
Mysql 備份恢復與xtrabackup備份
1,在傳統語音通訊公司都是在具體硬體上開發音訊軟體。有了硬體就要有相應的驅動,在linux android上就是alsa相關的驅動軟體開發。對於前處理 編譯碼 傳輸等模組,既可以在底層做也可以在偏上面的層次做,這取決於軟體架構。我曾經在linux平台上硬體一樣軟體需求一樣的情況下由於軟體架構不一樣開...
xtrabackup單錶備份與恢復
備份 單錶備份主要是使用include引數,格式如下 include name 指定表名,格式 databasename.tablename具體命令如下 innobackupex defaults file data01 3306 conf my.cnf socket data01 3306 tmp...