MySQL 指定数据库部分表备份—跨网络备份解决方案
MySQL数据备份真的很强大,为之叹服!MySQL深入研究还是很有必要的,找了一堆数据同步的工具比如Canal+Otter还有Kettle,没想到如此之简单就搞定了!特别注意:所有从库节点需要设置为read_only=1使除了超级用户之外的用户不能修改从库数据以保证主从之间同步信息对等主从机制不会被破坏。
原标题是包含关键字主-从(主)-从。
目录
功能需求
这里需要满足两个需求:
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实现配置步骤都在里面。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2023-10-08 Android字母导航示例
2022-10-08 服务安全:如何保证服务器不断电数据不丢失?
2013-10-08 OpenLayers实现覆盖物选择信息提示