Xtrabackup 恢复Mariadb单个表

1、安装 mysql 备份工具 Percona XtraBackup

安装 mysql 备份工具 Percona XtraBackup

2、恢复单个表说明

1). 针对InnoDB表恢复
2). 开启了参数innodb_file_per_table 此参数修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间

3、为备份建立一个只有备份权限的用户

MariaDB [(none)]> create user 'dbbackup'@'%' identified by '123456';
MariaDB [(none)]> grant reload,lock tables,replication client,create tablespace,process,super on *.* to dbbackup@'%' ;
MariaDB [(none)]> grant create,insert,select on percona_schema.* to dbbackup@'%' ;
MariaDB [(none)]> flush privileges;

4、创建一个测试,往里面插入数据后进行备份:

MariaDB [cndba]> create table test(id int);
Query OK, 0 rows affected (0.02 sec)

MariaDB [cndba]> insert into test values(10),(20),(30);
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

MariaDB [cndba]> select * from tb1;
ERROR 1146 (42S02): Table 'cndba.tb1' doesn't exist
MariaDB [cndba]> select * from test;
+------+
| id   |
+------+
|   10 |
|   20 |
|   30 |
MariaDB [cndba]> show create table test/G
*************************** 1. row ***************************
       Table: test
Create Table: CREATE TABLE `test` (
  `id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.03 sec)
如果忘记表结构可以安装工具:mysql-utilities,其中mysqlfrm可以读取表结构。
进行mysql-utilities安装:
yum install mysql-utilities -y
查看表结构
[root@www.cndba.cn yum.repos.d]# mysqlfrm --diagnostic /backup/2018-01-12_00-10-40/cndba/test.frm

5、xtrabackup备份数据库

[root@www.cndba.cn yum.repos.d]# innobackupex --host=localhost --user=dbbackup --password=123456 /backup/

6、准备apply-log

[root@www.cndba.cn backup]# innobackupex --apply-log --export /backup/2018-01-12_00-10-40/

7 、删除表

MariaDB [cndba]> drop table test;
Query OK, 0 rows affected (0.04 sec)

MariaDB [cndba]> show create table test/G
ERROR 1146 (42S02): Table 'cndba.test' doesn't exist

8、创建表

MariaDB [cndba]> CREATE TABLE `test` ( `id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

9、丢弃表空间

MariaDB [cndba]> ALTER TABLE test DISCARD TABLESPACE;

10、拷贝备份目录中的ibd,cfg,exp 到mysql的datadir目录

[root@www.cndba.cn cndba]# cp /backup/2018-01-12_00-10-40/cndba/test.{ibd,exp,cfg} /data//mysql/cndba/
赋值权限
[root@www.cndba.cn cndba]# chown -R mysql.mysql /data/mysql/cndba/

11、导入表空间

MariaDB [cndba]> alter table test import tablespace;

12、表被还原

MariaDB [cndba]> select * from test;
+------+
| id   |
+------+
|   10 |
|   20 |
|   30 |
+------+
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Xtrabackup是一个用于备份和恢复MySQL数据库的工具,它是Percona开发的一个开源项目。它可以在不停止MySQL服务器的情况下进行热备份,并且可以快速恢复备份数据。 要使用Xtrabackup恢复数据,可以按照以下步骤进行操作: 1. 安装Xtrabackup:首先需要在你的系统上安装Xtrabackup工具。你可以从Percona官方网站下载适合你系统的安装包,并按照官方文档进行安装。 2. 准备备份文件:在进行数据恢复之前,你需要准备好之前使用Xtrabackup备份的数据文件。这些文件通常包括一个完整的数据库备份文件和一个增量备份文件(如果有的话)。 3. 解压备份文件:如果备份文件是压缩的,你需要先解压缩它们。可以使用相关的解压工具,如tar或gzip等。 4. 恢复数据:使用Xtrabackup工具来恢复数据。具体的命令行参数和步骤会根据你的备份方式和需求而有所不同。一般来说,你需要指定备份文件的路径和目标数据库的路径。例如,可以使用以下命令来恢复一个完整的备份: ``` xtrabackup --copy-back --target-dir=/path/to/backup ``` 这个命令会将备份文件复制到指定的目标数据库路径,并还原数据库。 5. 设置权限和文件所有权:在恢复完成后,你可能需要为恢复的数据库设置正确的权限和文件所有权。这可以通过修改文件和目录的权限来完成。 以上是使用Xtrabackup恢复数据的一般步骤。具体的操作细节和命令参数可以参考Xtrabackup的官方文档或者相关的教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值