一.多库系统研究情况 两种体系结构: 1基于数据库引擎的多库系统(各主流数据库都提供了集群版本,主要有ORACLE RAC,Mysql high availability cluster,Microsoft SQL Cluster Server, IBM DB2 UDB High Availability Cluster, PostgreR) 2.基于中间件的多库系统(ICX-UDS middleware,sequoia(c-jdbc) ) 以上繁多的多库系统中,只有基于中间件的多库系统才支持异构数据库,而开源的只有sequoia。 二.sequoia的基本情况 sequoia是c-jdbc项目的延续(改名是由于跟SUN的JDBC有商标上的冲突),该项目发端于INRIA(法国国家计算机和自动化研究院)的 sardes项目。 2003年提出了RAIDb的概念,并开发c-jdbc作为软件实现,RAIDb借鉴了 RAID的思想,采用灵活的数据库复制技术和集成中间件,以廉价、异构的数据库构建冗余数据库集群,从而提供高可扩展、灵活的高性能集群。 目前sequoia的最新稳定版本是2.10.8,由continent.org开源组织管理(C-JDBC是由OBJECT WEB管理),邮件列表讨论还是比较热烈。 三.安装 万事开头难,因此选择比较简单的方案,构建由两个mysql数据库组成的RAID1集群。 配置如下: 192.168.0.163-------mysql server node1 192.168.0.164-------mysql server node2 192.168.0.166-------sequoia 192.168.0.166------mysql server (sequoia recovery log) 以上服务器操作系统均为redhat 步骤: 1.在三台服务器上安装mysql 5.1,在控制节点上安装sequoia(都有二进制安装包,傻瓜式安装) 2.下载mysql的JDBC驱动,放到sequoia的driver目录下 3.改写controller和virtual database的xml配置文件 控制器的配置文件:
虚拟数据库的配置文件---RAID1-mysql.xml:
4按照sequoia安装文档中的步骤,启动控制器,然后启动console执行几条简单的SQL语句,检验一下集群建立成功与否。 四.碰到的问题 一直蛮顺利的,感谢sequoia详尽的文档。碰到的一个主要问题是虚拟数库配置文件需要配置RECOVERY LOG元素,而所给例子中的配置中RECOVERY LOG一个表的列名使用了关键字SQL,字符类型的列也没有指定长度,这在mysql数据库中都是不允许的,后来跑到邮件列表中问,大牛们告诉我可以配置 RECOVERY LOG表的列名,改了以后俺的mysql集群就顺顺当当地跑了起来。
sequoia(c-jdbc)初体验
最新推荐文章于 2020-02-07 21:37:04 发布