sequoia中添加和同步集群节点

当一个新的后端添加到集群中时,它下面的数据库必须被初始化为跟其他活动节点下的数据库相同的状态。

在Sequoia中,当一个新的节点添加到集群中时,会用recovery log这个节点初始化为跟集群中其他节点相同的状态。这个进程不会影响到集群的其他操作,这使得Sequoia可以不停机的进行故障恢复。

Sequoia 的控制器为每个虚拟数据库保留一份recovery log,这个log记录了所有更新过虚拟数据库的查询和事务。recovery log包含下面内容::

  • 指向数据库dump的元数据,这个dump是某个时间点的数据库状态的快照 (这个数据库快照存放在文件系统中。)
  • 数据库dump创建以后,所有的更新过数据库的查询和数据库的记录。
disable掉的节点自动记录recovery log

当你disable掉一个后端,比如,执行数据库维护,Sequoia 将会:

  1. 自动在recovery log中插入一个checkpoint来记录它下面数据库的状态。
  2. 继续记录来自客户端的请求.

当你重新enable这个后端时,系统将会播放recovery log中从指定checkpoint以后的所有来自客户端的update请求,同步它下面的数据库。

从数据库dump中恢复数据库

如果你在正在使用的集群中添加一个新的后端,或者恢复一个失败的后端,你必须先考虑一下有没有可以用来自动同步数据的数据库快照。因此,数据库并不是简单地只用recovery log就可以同步的。

在这种情况下,你必须先从一个有效的数据库dump中恢复数据库。从有效的dump文件中恢复数据库也为你想用的后端增加了一个干净的checkpoint.

注意:

你应该定期备份你的数据库,以获得一个有效的数据库dump.

数据库备份

使用备份管理器,你可以备份一个数据库来创建一个dump;或者一个表结构和特定数据库的数据作为一个dump。你可以使用这个dump来:

  • 为你准备添加到集群中的后端来恢复数据, 或者
  • 恢复失败的后端.

备份操作的过程是这样的:

  1. 如果后端处于enable状态,那么在备份时它将会被disable掉。它下面的数据库会继续运行。
  2. 在数据库备份过程中,来自客户端的请求将被记录到 recovery log.
  3. 如果一个正在备份的后端被切换到enable状态,它会在备份结束后自动使用recovery log同步数据库,然后enable它自己。
警告

如果只有一个enable的后端可用,你对它执行备份操作会导致它转入disable状态。因此,整个集群在备份期间将停止服务。

你应该定时进行数据库备份以避免需要停止整个集群来备份的情况发生。

你可能感兴趣的:(数据结构,活动)