MySQL 指定数据库部分表备份—跨网络备份解决方案

 MySQL数据备份真的很强大,为之叹服!MySQL深入研究还是很有必要的,找了一堆数据同步的工具比如Canal+Otter还有Kettle,没想到如此之简单就搞定了!特别注意:所有从库节点需要设置为read_only=1使除了超级用户之外的用户不能修改从库数据以保证主从之间同步信息对等主从机制不会被破坏。

原标题是包含关键字主-从(主)-从。

目录

功能需求

MySQL主从指定数据库指定表备份

测试效果

验证同步

验证不需要同步的表数据

测试结论

MySQL主-从(主)-从测试

测试效果

验证同步

验证不需要同步的表数据

测试结论

保证主从关系对应用程序用户只读不写

数据库只读设置方式

从库只读不影响同步

常用账号赋予权限

文档下载


功能需求

这里需要满足两个需求:

a.实现数据库指定数据库和指定表同步

b.实现从数据库作为主节点再同步数据到另外一个从库(实现跨网络同步机制)

MySQL主从指定数据库指定表备份

测试效果

根据配置我们只同步service_db.sys_contacts表的数据。

Service_db有两张表:

验证同步

原表有3条记录新增一条。

Master:

Slave:

验证成功!

验证不需要同步的表数据

新增两条记录原表有79条记录。

Master:

Slave:

测试成功,sys_user并没有同步数据!

测试结论

MySQL自身可以通过配置Master-slave模式实现指定数据库和指定对应数据库表进行同步。

MySQL主-从(主)-从测试

测试效果

验证同步

Master:

Slave(slave-part( slave-part2的master节点)):

Slave(slave-part2):

测试成功!

验证不需要同步的表数据

Master:

Slave(slave-part( slave-part2的master节点)):

Slave(slave-part2):

测试成功,sys_user并没有同步数据!

测试结论

经测试MySQL主-从(主)-从的模式时可以实现的,只需要让第一个从库开启binlog日志记录功能之外再配置log_slave_updates=1让从节点写入binlog日志即可。

保证主从关系对应用程序用户只读不写

只读是为了保持从库与主库之间的信息对等,使同步机制不被破坏。

数据库只读设置方式

 设定全局变量“read_only=1”只读模式开启的解锁命令为设定“read_only=0”;

设定全局锁“flush tables with read lock;”,对应的解锁模式命令为:“unlock tables;”

从库只读不影响同步

my.cnf或my.ini

read_only=1

为了保证主从同步可以一直进行,在slave库上要保证具有super权限的root等用户只能在本地登录,不会发生数据变化,其他远程连接的应用用户只按需分配为select,insert,update,delete等权限,保证没有super权限,则只需要将salve设定“read_only=1”模式,即可保证主从同步,又可以实现从库只读。

从库完全只读设置

my.cnf或my.ini

read_only=1

数据库锁表:

flush tables with read lock

为了确保所有用户,包括具有super权限的用户也不能进行读写操作,就需要执行给所有的表加读锁的命令 “flush tables with read lock;”,这样使用具有super权限的用户登录数据库,想要发生数据变化的操作时,也会提示表被锁定不能修改的报错。这样通过 设置“read_only=1”和“flush tables with read lock;”两条命令,就可以确保数据库处于只读模式,不会发生任何数据改变,在MySQL进行数据库迁移时,限定master主库不能有任何数据变化,就可以通过这种方式来设定。

常用账号赋予权限

# 创建用户

CREATE USER 'boonya'@'%' IDENTIFIED BY 'boonya@2019';

#为用户授权

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON *.* TO 'boonya'@'%' IDENTIFIED BY 'boonya@2019';

新建用户不是超级用户root,所以无法插入数据了。

文档下载

给有需要的人,尊重知识需要积分,环境基于Docker搭建,下载地址https://download.csdn.net/download/boonya/11154017实现配置步骤都在里面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值