Sequoia(基于JDBC的数据库集群中间件)用户手册
袁和通
2023-12-01
http://haha8.runsky.com/forum/showthread.php?t=22668
Sequoia(基于JDBC的数据库集群中间件)用户手册
1, 入门
1.1, 什么是Sequoia?
Sequoia是一个数据库集群中间件, 它可以使任何基于java技术的应用程序(单机应用, servlet
或者EJB容器等等), 通过JDBC技术透明地访问数据库集群. 你不需要修改客户端程序, 应用服务
器或者数据库服务器软件. 你只需要保证任何对数据库的访问都是通过Sequoia进行的.
Sequoia是一个免费的, 开源的项目. 它是ObjectWeb联盟的C-JDBC项目的延续. Sequoia使用apache v2授权协议, 而C-JDBC则是LGPL授权的.
Sequoia也为非java程序提供了驱动程序. 这方面的开发由Carob项目负责. 同时Oak项目为Sequoia提供了一个Eclipse插件.
1.2. 使用Sequoia有哪些要求?
为了使用Sequoia, 你需要:
一个通过JDBC驱动访问数据库的客户端应用程序
与jdk1.4或更高版本兼容的java虚拟机
带有1,2,3或4类型JDBC驱动或者可通过JDBC-ODBC桥连接的ODBC驱动的数据库
支持TCP/IP协议的网络, 用于连接集群内的各个节点
注意, 如果你的客户端应用程序不是使用JDBC驱动, 你可以使用由Carob项目提供的C++ API
或者ODBC驱动.
1.3. 为什么需要使用Sequoia?
假如你的java应用程序或者基于java技术的应用服务器软件需要访问一个或多个数据库, 则数据库
服务器要么成为你的系统的瓶颈, 要么容易引起单点故障, 要么二者兼是. Sequoia可以通过以下
功能帮助你解决以上问题:
通过添加数据库节点和负载均衡技术提升系统性能
保证数据库层的高可靠性. 比如在某个数据库崩溃时, 通过数据库复制技术透明地从故障中恢复.
通过精心设计的查询缓存和透明的连接池技术大大提升性能
提供SQL统计日志以方便分析和管理
支持在不同的数据库引擎上建立集群
1.4. 工作原理
Sequoia灵活的架构使得你的数据库层具有高扩展性, 高可靠性和故障恢复能力. Sequoia实现了
如RAIDb概念描述的系统: 廉价数据库冗余阵列(参考第9章, "RAIDb的基本概念"). 数据库在若干
个节点中分布部署, Sequoia在这些节点上实现负载均衡.
Sequoia为客户端提供了一个通用的JDBC驱动程序(参考第5章, "Sequoia驱动程序"). 该驱动程序
将SQL请求封送至Sequoia控制器(参考第7章, "Sequoia控制器"), Sequoia控制器负责将这些请求
均衡到数据库集群上(读操作是均衡方式的, 写操作是广播方式的). Sequoia可以集成任何提供了JDBC
驱动的关系型数据管理系统, 也即当今大多数的开源或者商业数据库产品. 图1, "Sequoia原理"
展示了Sequoia的概貌.
[img]/upload/attachment/64159/61390ded-bcb6-3c33-86d2-f0c9fd4c3db0.gif[/img]
图1, Sequoia原理
Sequoia允许创建任意的集群配置, 包括混用不同厂商提供的数据库引擎. Sequoia的主要
特点是性能上的可扩展性, 容错能力和苟安可靠性. 同时, Sequoia在管理, 日志, SQL请求
缓存方面也提供了良好支持.
Sequoia的架构非常开放, 允许你自由地添加请求排队, 负载均衡, 连接管理, 缓存算法
等等方面的自定义实现.
1.5, 费用几何?
从软件观点来看, Sequoia是基于apache v2授权协议的开源软件, 可以在个人或者商业项目中
自由使用. 如果你需要使用商业的关系型数据库管理系统来构建你的集群, 那么你需要为这些
产品购买额外的授权. 不过也许你可以使用开源数据库(通常是免费的).
如果你需要更高的性能, 更好的故障恢复能力, 则需要购买更多的硬件. Sequoia被设计于
能够在普通的工作站上良好工作, 以便提供廉价的开源数据库集群解决方案. 当然, 它
也可以部署在在大型的包含对称多处理器的服务器上. 标准的以太网能使它更高效地提供服务.
1.6. 需要哪些移植工作?
你几乎不需要修改你的应用程序或数据库.
你只需要更新你的应用程序的对于JDBC驱动的配置(通常, 这只需要更新一个有关的配置文件),
并设置好Sequoia配置文件(参考第10章, "虚拟数据库的配置")
2, 如何获取Sequoia
cumentation and other tools such
as the Sequoia administration console.
Sequoia的二进制分发包可以从Sequoia的网站(http://sequoia.continuent.org/)下载, 主要
包括了Sequoia的驱动程序和控制器, 文档, 还有诸如管理终端之类的工具.
注意
Sequoia同时提供源码分发包. 所有的代码可以从一个允许匿名访问的CVS服务器上下载. 更多的信息请参考Sequoia开发者指南. 大部分用户只需要二进制格式的分发包.
分发包有以下几种格式(x.y标示Sequoia的版本号)
sequoia-x.y-bin-installer.jar:
java图形化安装程序(使用IzPack(http://www.izforge.com/izpack/)技术)
sequoia-x.y-bin.tar.gz:
Unix格式的二进制压缩包
sequoia-x.y-bin.zip:
windows平台的二进制格式压缩包
我们强烈建议你使用java安装程序格式的分发包, 因为它能自动根据你的系统配置脚本.
注意
所有的分发包都包含了用户文档
3. 安装
3.1. Sequoia控制器
3.1.1. 使用java图形化安装程序
安装Sequoia的最简单方式就是使用图形化安装程序. 这要求你已经安装了java虚拟机. Unix
用户可以通过键入以下内容启动安装程序:
bash> java -jar sequoia-x.y.bin-installer.jar
windows用户可以使用相同的命令, 或者, 如果你的jre环境安装正确, 则只需双击该JAR文件
使之运行.
3.1.2, 使用二进制分发包精心安装
如果你希望使用其它格式的安装程序(比如, 你尚未安装JVM, 或者你的系统不支持图形界面), 你
必须将下载的压缩包解压到某个目录, 然后设置环境变量"SEQUOIA_HOME".
注意
如果你使用的是java安装程序, 则不需要设置任何环境变量, 因为安装程序会根据安装路径自动调
整启动脚本.
要设置环境变量"SEQUOIA_HOME":
unix用户可以如下进行:
bash> mkdir -p /usr/local/sequoia
bash> cd /usr/local/sequoia
bash> tar xfz /path-to-sequoia-bin-dist/sequoia-x.y-bin.tar.gz
bash> export SEQUOIA_HOME=/usr/local/sequoia
注意
在这个例子中, 我们假设你将Sequoia安装到/usr/local/sequoia目录
你可以修改你的shell配置文件(.bashrc, 或者.cshrc之类的文件), 永久设置该环境变量.
windows用户则需要使用一个类如winzip的工具将文件解压出来, 然后, 根据你的windows版本的
不同, 选择如下某个步骤, 设置环境变量"CJDB_HOME":
Windows 95 or 98: you must insert the following line in the AUTOEXEC.BAT file:
set SEQUOIA_HOME="C:\Program Files\Sequoia"
win95或win98用户: 将下面这句话添加到AUTOEXEC.BAT文件中:
set SEQUOIA_HOME="C:\Program Files\Sequoia"
windows me: 开始菜单->程序->附件->系统工具->系统信息, 将弹出一个标题为"微软帮助和支持"
的窗口, 选择主菜单->工具->系统配置工具->环境变量, 点击"新增"按钮, 在"变量名称"中输入
"SEQUOIA_HOME", "变量值"中输入"C:\Program Files\Sequoia". 设置好以后, 系统会提示你
重启.
windows nt: 开始菜单->设置->控制面板->系统->环境变量, 点击"新增"按钮, 在"变量名称"中输入
"SEQUOIA_HOME", "变量值"中输入"C:\Program Files\Sequoia".
windows 2000: 开始菜单->设置->控制面板->系统->高级, 点击"新增"按钮, 在"变量名称"中输入
"SEQUOIA_HOME", "变量值"中输入"C:\Program Files\Sequoia".
windows xp: 开始菜单->设置->控制面板->系统->高级, 点击"新增"按钮, 在"变量名称"中输入
"SEQUOIA_HOME", "变量值"中输入"C:\Program Files\Sequoia".
注意:
在这个例子中, 我们假设你将Sequoia安装到"C:\Program Files\Sequoia"目录.
注意:
别忘了给你的路径加上双引号否则启动脚本会由于不能识别带空格的路径而发生错误.
3.2. Sequoia驱动程序
安装好Sequoia控制器后, 你可以在控制器的安装目录下的"drivers"目录下找到驱动程序的
jar包.
为安装Sequoia驱动程序, 你只需要将sequoia-driver.jar文件添加到客户端应用程序的类路径中.
该驱动程序将替换客户端应用程序的原有的数据库专属的驱动程序. 因此, Sequoia驱动程序和
控制器可以看作是客户端应用程序和数据库专属驱动程序之间的一层代理.
3.3. 揭开Sequoia的面纱
运行Sequoia安装目录下的demo目录下的demo-raidb1.sh或者demo-raidb1.bat, 可以启动
一个带RAIDb-1配置的HyperSonic数据库集群演示程序.
如果你对于集群或者Sequoia还比较陌生, 那么这个demo还是挺有用的. 该demo被安装为:
分别启动两个HyperSonic数据库在9001和9002端口监听
另外一个在9003端口, 作为日志数据库用于故障恢复
Sequoia控制器已经配置好自动装载包含上述两个数据库的虚拟数据库. 控制器的配置文件是
SEQUOIA_HOME/config/controller/controller-raidb1.xml, 虚拟数据库的配置文件是
SEQUOIA_HOME/config/virtualdatabase/hsqldb-raidb1.xml.
该RAIDb-1型集群启动完毕后, 你可以使用iSQL(随Sequoia一起分发的图形化SQL终端)连接到Sequoia.
运行脚本isql.sh或者isql.bat可以启动iSQL.
登录到Sequoia的用户名是"user", 密码为空. 登录到两个HSQL数据库的帐号是"test", 密码也
为空.
提示:
Sequoia网站的在线文档包含了一个关于如何使用该demo的教程.