高可用性和集群的事务日志
在某些情况下,可能需要增强 SmartEDB 高可用性(HA)和/或 SmartEDB 集群应用程序。例如,您可能希望集群中的一个节点或 HA 复制本负责使用数据中继异步地将数据复制到“云”中的外部系统。
在 C、C++、Java、C# 和 Python 应用程序中通过事务日志实现数据库持久化的通用算法如下:
- 如果已保存数据库快照,则尝试加载该快照,否则打开一个空数据库;
- 如果存在日志文件,则应用该日志文件;
- 保存新的数据库快照;
- 启动事务日志记录;
- 将节点附加到群集或启动高可用性;
- 执行常规节点活动,直至成功结束或发生崩溃;
- 停止事务日志记录,将节点从群集中分离并关闭应用程序;
此外,xSQL 还能够在群集节点内或在高可用性环境中实现事务日志记录。只需添加如下 TL 配置部分以指定数据库快照和日志文件:
tl_params : {
log_path : "db_file.log",
snapshot_path : "db_file.img",
},
这组xSQL选项支持快照和日志文件的持久性,与上文所述的嵌入式 API 算法相同的方式。