Squoia是C-JDBC的一个子项目。
cjdbc ( http://c-jdbc.objectweb.org/ ) 是一个open source的数据库集群中间件,任何基于jdbc的应用都可以通过它透明地访问数据库集群,它可以进行各个节点之间的数据复制,并且可以实现各个节点的查询负载均衡。通过这样的软件,偶们可以方便的实现RAIDb - Redundant Array of Inexpensive Database 廉价数据库冗余阵列。
大型应用随着用户量访问越来越大,增加数据库存储和做好数据库冗余可以增加系统的可靠性和性能。
配置的原理:通过配置虚拟的数据库,来实现多个不同数据库的集群实现。然后配置一个控制器,通过运行一系列的配置文件,然后我们自己加载特定的JDBC驱动。来实现数据库的集群。
首先下载Squoia.
1. 配置虚拟数据库(我的路径是D:\sql\sequoia\config\virtualdatabase)配置一个名为mysqlserver-raidb1-distribution.xml的XML文件。这个文件名可以由你自己取。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE SEQUOIA PUBLIC "-//Continuent//DTD SEQUOIA 2.10.10//EN" "http://sequoia.continuent.org/dtds/sequoia-2.10.10.dtd">
<SEQUOIA>
<VirtualDatabase name="myDB">--虚拟数据库的名字myDB
<Distribution>
<MessageTimeouts/>
</Distribution>
<Backup>
<Backuper backuperName="Octopus"
className="org.continuent.sequoia.controller.backup.backupers.OctopusBackuper"
options="zip=true"/>
</Backup>
<AuthenticationManager>
<Admin>
<User username="admin" password=""/>配置管理界面管理者的用户名和密码
</Admin>
<VirtualUsers>
<VirtualLogin vLogin="user" vPassword=""/>配置管理界面用户的用户名和密码
</VirtualUsers>
</AuthenticationManager>
<DatabaseBackend name="localhost1" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" connectionTestStatement="select now()">
<ConnectionManager vLogin="user" rLogin="root" rPassword="root">
<VariablePoolConnectionManager initPoolSize="10" minPoolSize="5" maxPoolSize="50" idleTimeout="30" waitTimeout="10"/>
</ConnectionManager>
</DatabaseBackend>
这是我们所配置的虚拟数据库:name="localhost1"这个名字是我们要操作的数据库名字,比如我们要把这个虚拟数据库加进集群或者从集群中分离等,我们在操作的时候就是用这个名字,因为我们用的是MYSQL的数据库,所以我们所用的驱动是MYSQL的驱动,对于本地用户的MYSQL数据库,我们的身份vLogin="user",而我们连接数据库的密码和用户名就是连接数据库的密码和用户名,下面的代码是我们要配置的第二个数据库的名字
<DatabaseBackend name="localhost2" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.61.114:3306/mydb" connectionTestStatement="select now()">
<ConnectionManager vLogin="user" rLogin="test1" rPassword="abc">
<VariablePoolConnectionManager initPoolSize="10" minPoolSize="5" maxPoolSize="50" idleTimeout="30" waitTimeout="10"/>
</ConnectionManager>
</DatabaseBackend>
<RequestManager>
<RequestScheduler>
<RAIDb-1Scheduler level="passThrough"/>
</RequestScheduler>
<LoadBalancer>
<RAIDb-1>
<WaitForCompletion policy="first"/>
<RAIDb-1-LeastPendingRequestsFirst/>
</RAIDb-1>
</LoadBalancer>
<RecoveryLog driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mydb" login="root" password="root">
这段代码表示你所要配置的和集群数据库相关的日志文件的表具体要配置在哪台数据库中。我们现在选择的是要配置在本地的数据库中。
<RecoveryLogTable tableName="RECOVERY"
logIdColumnType="BIGINT NOT NULL"
vloginColumnType="VARCHAR(20) NOT NULL"
sqlColumnName="sqlsrc"
sqlColumnType="TEXT NOT NULL"
sqlParamColumnType="TEXT"
extraStatementDefinition=",PRIMARY KEY (log_id)"/>
<CheckpointTable tableName="CHECK_POINT"
checkpointNameColumnType="VARCHAR(127) NOT NULL"/>
<BackendTable tableName="BACKEND"
databaseNameColumnType="VARCHAR(50) NOT NULL"
backendNameColumnType="VARCHAR(50) NOT NULL"
checkpointNameColumnType="VARCHAR(127) NOT NULL"/>
<DumpTable tableName="SEQUOIA_DUMP"
dumpNameColumnType="TEXT NOT NULL"
dumpDateColumnType="DATETIME"
dumpPathColumnType="TEXT NOT NULL"
dumpFormatColumnType="TEXT NOT NULL"
checkpointNameColumnType="TEXT NOT NULL"
backendNameColumnType="TEXT NOT NULL"
tablesColumnType="TEXT NOT NULL"/>
</RecoveryLog>
</RequestManager>
</VirtualDatabase>
以上这段代码都是配置和集群数据库相关的数据库表名。分别是表RECOVERY, BACKEND, SEQUOIA_DUMP
</SEQUOIA>
2. 配置你的控制器
D:\sql\sequoia\config\controller
在这个目录下新建一个controller-mysqlserver.xml的文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SEQUOIA-CONTROLLER PUBLIC "-//Continuent//DTD SEQUOIA-CONTROLLER 2.10.10//EN" "http://sequoia.continuent.org/dtds/sequoia-controller-2.10.10.dtd">
<SEQUOIA-CONTROLLER>
<Controller ipAddress="127.0.0.1" port="25322">
<JmxSettings>
<RmiJmxAdaptor port="1090"/>
</JmxSettings>
<VirtualDatabase configFile="mysqlserver-raidb1-distribution.xml" virtualDatabaseName="myDB" autoEnableBackends="true" checkpointName="Initial_empty_recovery_log"/>
</Controller>
</SEQUOIA-CONTROLLER>
注释:configFile="mysqlserver-raidb1-distribution.xml表示的是告诉控制器你的虚拟数据库的配置文件在哪。后面配置文件中的内容暂时没有查明表示什么意思。
3. 将D:\sql\sequoia\config目录下的sequencer.xml的中的
bind_addr="192.168.61.133"
mcast_port="45566"
mcast_addr="228.8.8.9"
必须和D:\sql\sequoia\lib中的几个JAR文件中的XML文件的一样。比如jgroup.jar中的sequence.xml文件中的所有mcast_addr地址必须和上面那个文件中的地址一样。
4. 然后写一个启动程序
假如我们的是A。BAT文件
@echo off
title Sequoia RAIDb-1 demo
echo ******************************************************
echo ******************************************************
echo ** **
echo ** Please press a key when hsqldb servers are ready **
echo ** **
echo ******************************************************
echo ******************************************************
SET SEQUOIA_HOME="d:\sql\sequoia"
:begin
cd "%SEQUOIA_HOME%\bin"
echo "Waiting for mysql servers to finish start up"
echo "Starting Controller"
start /B controller.bat -f ..\config\controller\controller-mysqlserver.xml
:end
注释:start /B controller.bat -f ..\config\controller\controller-mysqlserver.xml表示告诉启动程序启动的时候会去运行控制文件中的controller-mysqlserver.xml文件
分享到:
相关推荐
AppStore下载并制作了黑苹果原版镜像,有想安装macOS Sequoia15的童鞋可以下载尝尝鲜。 macOS Sequoia推出了一系列新功能,可助你在Mac上提高生产力和创造力。通过最新连续互通功能iPhone 镜像,你可以在Mac上访问整个...
机器配置:华硕的 vivobook s14,I7-8550U+UHD620 1、在 MACOS12、13,安装时取消勾选IntelGraphicsFixup.kext,升级后要勾选上,否则声音没有输出;macos14 时不需要勾选。...2、Sequoia可升级安装,已测试 15.0
西门子Sequoia 512是一款医疗超声诊断设备,属于西门子医疗解决方案的产品线之一。根据提供的信息,Sequoia 512可以分为不同型号,其中包括ACUSON Sequoia 512超声系统和ACUSON Sequoia C512超声心动描记系统。这类...
Sequoia EFI 1、修改了配置,驱动 intel 9260 网卡 wifi、蓝牙 2、机器:I7-8550U+UHD620+ intel AC-9260NGW
Sequoia是一种数据库集群中间件,可提供负载平衡和透明的故障转移。 数据库在多个节点上复制,并且Sequoia平衡了它们之间的查询。 红杉支持在线维护和恢复操作。
在分布式环境下,"sequoia"可能具备集群和复制功能,以提供高可用性和负载均衡。这通常涉及到网络通信库,如Boost.Asio或ZeroMQ,以及一致性哈希、Raft或Paxos等分布式一致性算法。 总之,"sequoia"项目是一个基于...
用户可以通过阅读文档了解如何安装和使用Sequoia,也可以查阅源代码理解其内部实现。 7. **未来发展趋势** 随着计算能力的提升和深度学习技术的发展,未来的Sequoia可能会集成更复杂的神经网络模型,以提高预测...
macOS_Sequoia_15.1.password(imacos.top).rdr.split.004
macOS_Sequoia_15.1.password(imacos.top).rdr.split.050
5. **数据库操作**:PHP通常与数据库交互,Sequoia可能封装了数据库访问层,支持ORM(对象关系映射),简化数据库查询和操作。 6. **错误处理和日志记录**:为了调试和监控,Sequoia可能有完善的错误处理机制和日志...
macOS_Sequoia_15.1.password(imacos.top).rdr.split.046
macOs Sequoia 任意来源
工具 SequoiaSQL,包含分布式数据库SequoiaDB的SQL引擎,以及兼容各种SQL语法协议的解析器。 SequoiaSQL项目目前已经完成了对MySQL和PostgreSQL的支持,并且已经打包进入产品中,投入用户的实际生产环境里使用。
macOS_Sequoia_15.1.password(imacos.top).rdr.split.027
macOS_Sequoia_15.1.password(imacos.top).rdr.split.030
为了确保该公司的软件平台能在 IBM 的主流服务器上良好地运行,Sequoia Media Manager 在马萨诸塞州 Waltham 的 IBM Solution Partnership Center(解决方案合作中心,SPC)接受了可移植性测试。该中心经验丰富的...
【Sequoia:在无服务器计算中实现服务质量保证】 Sequoia是一个针对无服务器计算环境的创新框架,旨在解决当前云服务提供商在管理与调度中存在的一系列问题,以确保服务质量(Quality-of-Service,QoS)。无服务器...
mac for jdk1.6 jdk6 安装版 里面有两个jdk1.6的安装包,都可以用 如果电脑上安装有1.7,1.8等高版本jdk就不要再下安装包了,安装包安装会报错 命令是这个:brew install java6或 brew install homebrew/cask-...
**Sequoia PGP包装器在Nim中的应用** Sequoia PGP是现代、安全且高效的OpenPGP实现,而`sequoia.nim`则是一个专门针对Nim编程语言设计的Sequoia PGP包装器。这个包装器允许Nim开发者轻松地在他们的项目中集成PGP...
【ST Sequoia FLI32626H-BG 数字视频处理器/双通道LCD电视控制器数据表】 STMicroelectronics的Sequoia FLI32626H-BG是一款高级数字视频处理器,同时也兼备双通道LCD电视控制器的功能。这款芯片专为高清视频处理和...