mysql使用xtrabackup方式复制过滤某一个数据库

需求:

搭建一个新的从库,只复制过滤源端数据库里的其中一个数据库workflow到新实例上。

一 操作步骤

1.1 在目标端新建一个数据库实例

1.2 在源端做备份

/home/urman-agent/bin/xtrabackup --defaults-file=/data/mysql/etc/13314/my.cnf --target-dir=workflow_bak_0514  --user=root --password=密码 --socket=/data/mysql/data/13314/mysqld.sock --databases=workflow --backup

1.3 将备份文件拷贝到目标端

scp  -r workflow_bak_0514 目标端ip:/data/mysql/data/13320_temp/

1.4 恢复

1.4.1 prepare

#在目标端进行prepare应用redo log

/home/urman-agent/bin/xtrabackup --prepare --export --target-dir=/data/mysql/data/13320_temp/workflow_bak_0514

1.4.2 生成cfg文件

/home/urman-agent/bin/xtrabackup --export --target-dir=/data/mysql/data/13320_temp/workflow_bak_0514

这样就在workflow目录下看到有cfg文件。

1.4.3 远程备份源端库表结构(空表)

mysqldump -h 源端数据库ip -P 源端ip -u root -p --single-transaction --databases workflow --set-gtid-purged=off -d > /opt/233_13314_kb.bak

1.4.4 在目标端导入空表

mysql -u root -p < /opt/233_13314_kb.bak

1.4.5 丢弃表空间

#生成sql

select concat('alter table ',table_name,' discard tablespace;') from information_schema.`TABLES` where table_schema='workflow'

#执行生成的sql

1.4.6 将备份文件里的ibd文件,cfg文件拷贝到目标端数据库目录下

[root@mysql-235 workflow]# pwd

/data/mysql/data/13320_temp/workflow_bak_0514/workflow

cp *.cfg /data/mysql/data/13316/workflow/

cp *.ibd /data/mysql/data/13316/workflow/

1.4.7 改文件属主

cd /data/mysql/data/13316/workflow

ls -ltr 看下现有文件的属主,将刚拷贝过来的cfg,ibd等文件也改成一样的属主,比如,这里是:

chown -R actiontech-mysql:mysql *

1.4.8 导入表空间

#生成sql

select concat('alter table ',table_name,' import tablespace;') from information_schema.`TABLES` where table_schema='workflow'

#执行生成的sql

1.5 配置主从复制

1.5.1 加过滤参数

#修改从库的配置文件

vi my.cnf

添加:

replicate_wild_do_table=workflow.%

#重启从库,使参数生效,示例:

systemctl stop mysqld_13316

systemctl start mysqld_13316

1.5.2 配置主从复制

1.5.2.1 set gtid_purged

获取备份文件里的xtrabackup_binlog_info

reset master;

set global gtid_purged='上面获取的位置';

1.5.2.2 change master

change master to master_host='主库ip',master_port=主库端口,master_user='universe_op',master_password='密码',master_auto_position=1;

start slave;

show slave status ;

1.5.3 手动同步函数,存储过程,触发器,事件等

手动同步下,最好是割接那天再手动同步

猜你喜欢

转载自blog.csdn.net/YABIGNSHI/article/details/130694800