首页 > 编程知识 正文

mycat oracle读写分离,mycat读写分离原理

时间:2023-05-03 07:39:17 阅读:242770 作者:2827

目录

 

一:Mycat说明

二:Mycat的安装

1.安装(版本需要匹配Jdk)

2.配置管理(版本1.6.7)

 

三:Mycat实现读写分离

1.建立一个读库一个写库,其中fk库字段一致,并2个表中fk_user数据不一致

2. 修改二 2 (第二步)中的配置文件

3.Mycat链接测试 

四:热切换

1、建立一个备份数据库

2、配置

3.测试 

4.问题以及解决方案


一:Mycat说明

 

  说实话,一开始还是比较拒绝Mycat的,因为刚开始看到Mycat配置直接蒙蔽了。然后转而学习了Mysql-proxy,学完了Mysql-proxy的读写分离之后,想学习Mysql-proxy分库分表的管理,结果翻阅大量的资料,没有一个说可以直接支持的,所以没办法只能将其剔除在数据库篇,但是如果项目之中只要求做读写分布,又不能耦合代码,那么强烈建议学习Mysql-proxy,请移步我的另一篇博客吧从零开始java数据库篇(番外):主从复制,复制一致性(msyql-proxy);

  好了,废话不多说了,基于对比过Mysql-proxy,我们首先看一下Mycat能做哪些事情吧?

 最简单就是读写分离和分库分表。

 

二:Mycat的安装 1.安装(版本需要匹配Jdk)

       wins:下载压缩包,解压,安装,提前配置好jdk环境,在conf/wrapper.onf声明到jdk的迷你的钻石目录:

                      

        ubuntu:下载tar,解压,提前安装好jdk环境

2.配置管理(版本1.6.7)

 Mycat的映射Mysql流程

(1)Mycat创建一个用户,一个虚拟库

(2)Mysql创建一个用户,一个库

(3)Mycat将Mysql库中的表一一映射到虚拟表中

第一步:在/conf/server.xml中添加一个虚拟用户和一个虚拟库

                    

第二步,在Mysql库中创建一个proxy用户并授予权限,同时创建一个实体表

                 

第三步,在/conf/schema.xml进行映射到具体的Mysql

第四步,在/conf/schema.xml映射实体库到虚拟库中(我一下子映射了3歌库)

第五步,在/conf/schema.xml映射实体表到虚拟库中

第六步,测试

用可视化工具连接,Mycat的ip:8066以及配置的虚拟用户连接(9066是管理端口)

这里有一个奇怪的问题,但是select 查询可以如下:解决方案:

解决方案,第五步的配置文件(一定是true)

 

 

 

 

三:Mycat实现读写分离 1.建立一个读库一个写库,其中fk库字段一致,并2个表中fk_user数据不一致

 

2. 修改二 2 (第二步)中的配置文件

3.Mycat链接测试 

(1)以Mycat链接

(2)先查询一下

由上面的可知,读库的确只有2条数据。

(3)插入一下

 

这是去写库里看一下

再去写库看一下

致辞Mycat的读写分离就完成了 

四:热切换

当主数据挂了,能够及时的切换到备份数据库。

1、建立一个备份数据库

  为了区别,建立一个一样的备份数据库,结构一样,但是所有的用户数据为空。

2、配置

  重复二,2,第三步

3.测试 

 依次挂掉不同的数据源,都是可以切换的。

4.问题以及解决方案

 (1) 在进行热切时,2个数据源一定要互为主从,互可复制,一方数据不一致

 (2)热切时,即使主库及时恢复,这时Mycat并不会主动切换到主库,后来问了相关的运维人员,解释是这样的:安装了mycat,那么数据库对于你应用层就是透明的,你相当于单库单表的形式访问,完全没必要关心谁是切库。

HTML div三边怎么加边框win7中qq截图快捷键是什么

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。