查看文章 |
这两天一直在做mysql的集群,先用了mysql-proxy虽然是官方出的 但是由于要用到脚本所以速度不是很理想 由于是java的项目所以就用了sequoia (我这里是实验性配置,只有一个控制器,所以比较简单,多个的可以看手册) 主站:http://community.continuent.com/community/sequoia 下载sequoia-2.10.10-bin.tar.gz 地址:https://forge.continuent.org/frs/?group_id=6&Itemid=68 安装: 解压到 / 目录下 目录结构:3rdparty README.txt bin config demo doc drivers lib log xml vim /etc/csh.cshrc 设置环境变量: java: setenv JAVA_HOME /usr/java/jdk1.6.0_10 setenv CLASS_PATH $JAVA_HOME/lib:$JAVA_HOME/jre/lib 设置sequoia环境变量: setenv SEQUOIA_HOME /sequoia 下载mysql的jdbc驱动: http://mysql.isu.edu.tw/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz 解压后把mysql-connector-java-5.1.7-bin.jar放到drivers目录下面就o了 配置控制器controller/controller.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> 这个文件比较简单到此结束 下面配置hsqldb-raidb1-distribution-1.xml这个文件: <?xml version="1.0" encoding="UTF-8"?> <SEQUOIA> <VirtualDatabase name="myDB">(这里是虚拟数据库的名字) <Distribution> <Backup> <Backuper backuperName="MySQLBackuper" <AuthenticationManager> —————————————————————————————————— <DatabaseBackend name="mysql65" (这是写名称)driver="com.mysql.jdbc.Driver" (这里是jdbc驱动)url="jdbc:mysql://192.168.3.65:3306/test" (远程数据库地址)connectionTestStatement="select 1"(应为是mysql所以用select 1 具体可以看examples文件夹下面有例子)> ——————————————————————————————————— <RequestManager> <LoadBalancer> <RecoveryLog driver="com.mysql.jdbc.Driver" <RecoveryLogTable tableName="RECOVERY"(这里是根据这些语句来创建数据库,具体可以配置可以看xml文件夹下面,由于是mysql数据库所以建表语法要修改,我这里是找的网上的,可以使用) </VirtualDatabase> </SEQUOIA> 还有就是他多台机器的同步数据用的是jgroup的库在lib文件夹下面,改sequencer.xml没用,所以要解压: jar xvf jgroups-core.jar 修改里面的sequencer.xml开头这样一段: <UDP bind_addr="192.168.3.66"(说明:绑定ip地址) 然后jar cvf * jgroups-core.jar在放到lib下面就可以了 然后启动controller.sh有错误可以把log的数据库BACKEND,RECOVERY,DUMP,CHECKPOINT几个表删除在重启一般没什么问题) 然后就是启动console.sh 注意主机名一定要对应本机ip,我刚开始好长时间都连不上。 连上后先写一些可用的命令: 查询一条的example: admin myDB然后输入密码这是登录 show controllers 查看虚拟数据库的节点控制器 show backends 查看后端backend
show backend * 查看后端数据库详情 initialize mysql65 force enable mysql65 show backupers:查看backuper delete dump DUMP1 【keepfile】 :删除一个备份点 show dumps 查看备份点 transfer dump <dump name> <controller IP>:<jmx port> 【nocopy】:转移一个备份点 backup mysql65 DUMP MySQLBackuper /sequoia/bak backup mysql65 DUMP1 MySQLBackuper /sequoia/bak:这样会备份一个节点的数据库,在DUMP表里面能看到备份的情况,在bak目录下能看到zip压缩文件 restore backend mysql18 DUMP :这样就恢复数据 不过他不会删除表里的数据,只是把备份的数据全插入进去,在日志会提示找不到备份路径下的文件,如果把zip文件解压放到下面则会把表删除,还在研究 purge log <dump name> 清除日志,我还不知道是清除的在哪 restore log <dump name> <controller IP>:<jmx port> dump scheduler queues:查询当前连接状况 dump queues mysql65:查询某个节点情况 sql client jdbc:sequoia://192.168.3.66/myDB 其他: force checkpoint <backend name> <checkpoint name> force disable {<backend name> | *}
force enable {<backend name> | *}
The truncate log command deletes all entries in the recovery log before a given truncate log <checkpoint name> dump recoverylog 感谢以下网友: http://bbs.chinaunix.net/viewthread.php?tid=1303431&highlight=sequoia http://liuye.javaeye.com/blog/224496 http://blogs.sun.com/JagadishPrasath/entry/using_sequoia_with_glassfish |