新炬网络定期推出“名师大讲堂”专业IT技术知识分享,内容涉及Oracle数据库、性能测试、软件自动化测试等,与工作在技术前线的小伙伴们一起探讨实践中出现的技术难题,提供有效解决方案,大家通过交流共同成长
Master配置
1、修改my.ini文件,添加
log-bin=master-bin
log-bin-index=master-bin.index
server-id=1
log-bin :设置了二进制日志产生的所有文件的基本名称,不设置的话默认为hostname-bin,但是为了防止管理员调整主机名,还是设一个和主机名无关的名称比较好
log-bin-index :设置了二进制日志文件的索引文件名,设置的原因和log-bin一样
server-id:每个服务器都会有一个Serverid,假如Master和Slavery的id一样的话,连接的时候会出错
2、新建用户,赋予其Replication Slave权限
create user repl_user;
grant replication slave on *.* to repl_user identified by ’123′
Slave配置
修改my.ini文件,添加
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin .index
server-id=2
Master与Slave相连
1、 change master to
master_host=’192.168.1.101′,
master_port=3307,
master_user=’repl_user’,
master_password=’123′;
2、slave start
3、show slave status;
思考
主从复制这玩意倒的确是挺有意思的,既然数据库都提供了主从复制的功能了,那开发语言层面上提供数据库同步框架有没意义呢?话说我好像没看到Java上有这样的框架,倒是微软这边提供了。虽然在数据库层面上已经有这样的功能了,个人认为在开发语言层面上提供这种框架还是有必要的,毕竟不同数据库之间的主从库配置是不是都是这么好配我就不知道了。但是有时候需要做离线数据存储,例如微软之前所提出的智能客户端。智能客户端里面会提供一种离线使用场景,就是离线的时候,数据放在本地,同步的时候数据放回主数据库,这种情况往往不能使用简单的数据库复制解决。所以在开发语言层面上提供框架还是有一定的必要性的。
在这次实验的过程中,发现一个问题,就是当在Master上删除了一个Slave没有的数据库的时候,Slave的SQL_Running就死活起不来了,后来跑到Slave的日志文件下查看发现原来是每次Slave启动的时候都企图去删掉那个数据库,然后。。。就挂掉了(话说在删除报错的时候就直接把Slave的同步给阻塞住不大好吧。。。。)。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29960155/viewspace-1350158/
,如需转载,请注明出处,否则将追究法律责任。
分享到: