Xtrabackup备份mysql数据库
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Xtrabackup由percona提供percona Xtrabackup是一个自由、开源的完整的在线备份工具,支持mysql、perconna server、mariadb到官网https://w
千家信息网最后更新 2026年11月02日Xtrabackup备份mysql数据库
Xtrabackup由percona提供
percona Xtrabackup是一个自由、开源的完整的在线备份工具,支持mysql、perconna server、mariadb
到官网https://www.percona.com/下载安装包,并配置好epel源安装需要依赖libev这个包
[root@localhost ~]# wget [root@localhost ~]# vim /etc/yum.repos.d/ali-epel.repo [epel]name=ali-epelbaseurl=gpgcheck=0enabled=1[root@localhost ~]# yum install percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm -y
Xtrabackup的备份是通过日志序列号(log sequence number
备份需自行创建备份用户,赋予备份用户相应的一些权限(reload;lock tables;replication client;create tablespace;process;super;create;insert;select)
创建备份恢复用户:
MariaDB [(none)]> create user 'backup'@'localhost' identified by 'xtrabackup123';Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> grant reload,lock tables,replication client,insert,select,process,super,create,create tablespace on *.* to 'backup'@'localhost';Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> flush privileges;Query OK, 0 rows affected (0.00 sec)
Xtrabackup仅对InnoDB支持热备; 查看数据库信息:
MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || hellodb || mysql || performance_schema || test |+--------------------+5 rows in set (0.00 sec)MariaDB [(none)]> use hellodb;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedMariaDB [hellodb]> show table status\G*************************** 1. row *************************** Name: classes Engine: InnoDB Version: 10 Row_format: Compact Rows: 8 Avg_row_length: 2048 Data_length: 16384Max_data_length: 0 Index_length: 0 Data_free: 9437184 Auto_increment: 9 Create_time: 2016-07-05 08:16:44 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: *************************** 2. row *************************** Name: coc Engine: InnoDB Version: 10 Row_format: Compact Rows: 14 Avg_row_length: 1170 Data_length: 16384Max_data_length: 0 Index_length: 0 Data_free: 9437184 Auto_increment: 15 Create_time: 2016-07-05 08:16:44 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: *************************** 3. row *************************** Name: courses Engine: InnoDB Version: 10 Row_format: Compact Rows: 7 Avg_row_length: 2340 Data_length: 16384Max_data_length: 0 Index_length: 0 Data_free: 9437184 Auto_increment: 8 Create_time: 2016-07-05 08:16:44 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: *************************** 4. row *************************** Name: scores Engine: InnoDB Version: 10 Row_format: Compact Rows: 15 Avg_row_length: 1092 Data_length: 16384Max_data_length: 0 Index_length: 0 Data_free: 9437184 Auto_increment: 16 Create_time: 2016-07-05 08:16:44 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: *************************** 5. row *************************** Name: students Engine: InnoDB Version: 10 Row_format: Compact Rows: 25 Avg_row_length: 655 Data_length: 16384Max_data_length: 0 Index_length: 0 Data_free: 9437184 Auto_increment: 26 Create_time: 2016-07-05 08:16:44 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: *************************** 6. row *************************** Name: teachers Engine: InnoDB Version: 10 Row_format: Compact Rows: 4 Avg_row_length: 4096 Data_length: 16384Max_data_length: 0 Index_length: 0 Data_free: 9437184 Auto_increment: 5 Create_time: 2016-07-05 08:16:44 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: *************************** 7. row *************************** Name: toc Engine: InnoDB Version: 10 Row_format: Compact Rows: 0 Avg_row_length: 0 Data_length: 16384Max_data_length: 0 Index_length: 0 Data_free: 9437184 Auto_increment: 1 Create_time: 2016-07-05 08:16:44 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 7 rows in set (0.00 sec)#全部都是InnoDB的,可以做热备。
全备:
[root@localhost ~]# mkdir /backupdir[root@localhost ~]# innobackupex --user='backup' --password='xtrabackup123' /backupdir[root@localhost ~]# ls /backupdir/2016-07-05_08-42-50
全备恢复:
[root@localhost ~]# mysql -e 'drop database hellodb;' #模拟环境先将要恢复的数据库删除;MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || test |+--------------------+4 rows in set (0.00 sec)[root@localhost ~]# innobackupex --apply-log /backupdir/2016-07-05_08-42-50/[root@localhost ~]# systemctl stop mariadb[root@localhost ~]# innobackupex --copy-back /backupdir/2016-07-05_08-42-50/#验证数据库有没恢复[root@localhost ~]# ls /var/lib/mysql/hellodb ibdata1 ib_logfile0 ib_logfile1 ibtmp1 mysql performance_schema test xtrabackup_infoMariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || hellodb || mysql || performance_schema || test |+--------------------+5 rows in set (0.00 sec)
增备:
增备之前要先做全备,因为增备是依据全备的变化来做的
[root@localhost ~]# innobackupex --user='backup' --password='xtrabackup123' /backup/[root@localhost ~]# ls /backup/2016-07-05_08-28-54修改数据库MariaDB [hellodb]> select * from courses;+----------+----------------+| CourseID | Course |+----------+----------------+| 1 | Hamo Gong || 2 | Kuihua Baodian || 3 | Jinshe Jianfa || 4 | Taiji Quan || 5 | Daiyu Zanghua || 6 | Weituo Zhang || 7 | Dagou Bangfa |+----------+----------------+7 rows in set (0.00 sec)MariaDB [hellodb]> insert into courses(Course) values('zhangsan'),('lisi');Query OK, 2 rows affected (0.00 sec)Records: 2 Duplicates: 0 Warnings: 0MariaDB [hellodb]> select * from courses;+----------+----------------+| CourseID | Course |+----------+----------------+| 1 | Hamo Gong || 2 | Kuihua Baodian || 3 | Jinshe Jianfa || 4 | Taiji Quan || 5 | Daiyu Zanghua || 6 | Weituo Zhang || 7 | Dagou Bangfa || 8 | zhangsan || 9 | lisi |+----------+----------------+9 rows in set (0.00 sec)做增备[root@localhost ~]# innobackupex --user='backup' --password='xtrabackup123' --incremental /incbackup/ --incremental-basedir=/backup/2016-07-05_08-28-54/[root@localhost ~]# cat /incbackup/2016-07-05_08-42-06/xtrabackup_checkpoints backup_type = incrementalfrom_lsn = 1628321to_lsn = 1629233last_lsn = 1629233compact = 0recover_binlog_info = 0全备+增备恢复:
增备合并到全备,恢复数据的时候只需要恢复合并的全备就可以了[root@localhost ~]# innobackupex --apply-log --redo-only /backup/2016-07-05_08-28-54/[root@localhost ~]# innobackupex --apply-log --redo-only /backup/2016-07-05_08-28-54/ --incremental-dir=/incbackup/2016-07-05_08-42-06/[root@localhost ~]# mysql -e 'use hellodb;drop table courses; '[root@localhost ~]# mysql -e 'use hellodb;MariaDB [(none)]> show tables; '+-------------------+| Tables_in_hellodb |+-------------------+| classes || coc || scores || students || teachers || toc |+-------------------+[root@localhost ~]# innobackupex --copy-back /backup/2016-07-05_08-28-54/MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || hellodb || mysql || performance_schema || test |+--------------------+5 rows in set (0.00 sec)MariaDB [(none)]> use hellodbReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedMariaDB [hellodb]> show tables;+-------------------+| Tables_in_hellodb |+-------------------+| classes || coc || courses || scores || students || teachers || toc |+-------------------+7 rows in set (0.00 sec)MariaDB [hellodb]> select * from courses;+----------+----------------+| CourseID | Course |+----------+----------------+| 1 | Hamo Gong || 2 | Kuihua Baodian || 3 | Jinshe Jianfa || 4 | Taiji Quan || 5 | Daiyu Zanghua || 6 | Weituo Zhang || 7 | Dagou Bangfa || 8 | zhangsan || 9 | lisi |+----------+----------------+9 rows in set (0.00 sec)
innobackupex一些参数说明:
--include:可选定备份的库或表,支持正则表达式
--tables-file:指定一个文件中所列出的所有表名
--databasea:以上两种的合并
--stream=tar:以流的方式压缩备份
[root@localhost ~]# innobackupex --user='backup' --password='xtrabackup123' --include='hellodb' --stream=tar /backup/ | gzip > /backup/`data +%F_%H_%M%S`.tar.gz
备份
全备
数据
数据库
用户
支持
自由
信息
参数
备份工具
工具
序列
序列号
文件
方式
日志
时候
权限
正则
环境
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云之行互联网科技
互联网金融监管科技数据
互联网科技卖菜
美国互联网科技
奇酷互联网科技
中国互联网科技发展
狮子座互联网科技有限公司
南京欣网互联网科技
互联网科技缩写
天下捷融互联网科技
互联网科技有限公司 翻译
剑昆互联网络科技有限公司临桂
科技互联网大厂
怎样加入科技互联网
伍佰万互联网科技怎么赚钱
广东工业互联网大赛深圳学泰科技
皮皮虾互联网科技有限公司
互联网风格科技公司名称
济南小医互联网科技有限公司招聘
山东蛋芒互联网科技有限公司
互联网科技卖菜
朗涯互联网科技
互联网高科技企业
隆华科技工业互联网
中国科技互联网公司收入
互联网科技商业
互联网科技人工智能实验室
科技互联网的核心竞争力
35岁以上互联网科技行业
济南小医互联网科技有限公司招聘