voltdb数据库持久性,扩展集群

时间:2021-10-18 08:52:25

  

  之前在git上下载的voltdb,以及在官网下载的社区版voltdb均不支持持久性事务,和扩展集群,今天下载了企业试用版voltdb,安装过程不再赘述,记录一下我的使用过程

  

持久性测试

  以前的 voltadmin shutdown;之后重新启动voltdb后,仍然不能恢复数据,即使使用recover命令恢复后,也不能再现之前的数据,但是用了企业版的之后,shutdown后重新启动,则会加载之前生成的snapshot,恢复文件

voltdb数据库持久性,扩展集群

  如图所示,会从磁盘中读入snapshot,之前的命令也可以重现,当然,数据库里的内容保存完好

voltdb数据库持久性,扩展集群

  这里列出部分数据

 事务测试

  voltdb为了避免时间的开销,避免了锁的使用,也就是说无法使用mysql的事务语句

voltdb数据库持久性,扩展集群

 

触发器测试

   也无法使用触发器

  voltdb数据库持久性,扩展集群

  

搭建集群

  参考官方文档,搭建集群

  初始化根目录使用 --config 指定配置文件(记得备份一份),所有的节点必须使用相同的配置文件

      voltdb init -D ~/mydb --config=myconfig.xml

  启动一个五节点数据库集群,指定voltsvr1作为主机节点。确保运行该命令的节点数与--count 参数中指定的节点数相匹配 

      voltdb start -c 5 -H voltsvr1

  执行此语句后,voltdb会修改config目录下的cluster.properties文件,hostcount变成5

voltdb数据库持久性,扩展集群

  以下命令(在所有三个服务器上发出)启动三节点集群:

      voltdb start --host = svrA,svrB,svrC

  

  在群集上启动VoltDB数据库时,VoltDB服务器进程将执行以下操作:

  1. 如果要在选择作为主机节点的节点上启动数据库进程,它将等待来自其余节点的初始化消息。主机是从命令行上的主机列表中选择的,并通过管理群集启动过程在启动期间扮演特殊角色。重要的是,群集中的所有节点都可以解析您指定的主机节点的主机名或IP地址。

  2. 如果要在非主机节点上启动数据库,它会向主机发送初始化消息,指示它已准备就绪。在连接了正确数量的节点(在命令行中指定)之前,数据库无法运行。

  3. 一旦所有节点都发送了初始化消息,主机就会向其他节点发送一条消息,表明集群已完成。一旦启动过程完成,主机的角色就结束了,它就像集群中的每个其他节点一样成为对等体。它不再执行任何特殊功能。