SQL HA的使用语法
你可以通过BDB SQL层的PRAGMA指令来配置高可用的相关参数并启动集群。以下是相关的语法:
①启动和关闭HA:PRAGMA replication=ON|OFF
该语句必须在BDB SQL创建或重建数据库之前设置。在此之前,应先设置本地节点的地址和端口,以及本地节点是否是master,如果不是,则应设置一个远程节点的地址和端口。当HA初始化之后,可以关闭replication,但是它仅在下一次重开这个环境的时候起效。
②设置本地节点是否master:PRAGMA replication_initial_master=ON|OFF
该语句只能在初次创建一个HA时使用,本地节点是这个新的HA的第一个节点,其master的角色不是无限期的,当master掉线时,master的角色有可能转移到其后进入HA的节点上。
③ 设置本地节点的地址和端口:PRAGMA replication_local_site=”hostname:port”
④设置远程节点的地址和端口:PRAGMA replication_remote_site=”hostname:port”
当加入一个已存在的HA时,本地节点需要知道一个在线的远程节点,以帮助其进入HA。
⑤ 设置被删除节点的地址和端口:PRAGMA replication_remove_site=”host:port”
永久地删除HA中的一个节点。与暂时掉线或者被关闭的节点不同,HA的任何一个有效节点都不再记录该节点,即HA中的节点数量减一。
⑥ 设置是否输出HA相关日志信息:PRAGMA replication_verbose_output=ON|OFF
⑦ 设置HA相关日志信息的输出文件:PRAGMA replication_verbose_file=filename
如何在BDB SQL的命令行工具中配置和运行一个三个节点的HA
①配置首个节点,即master
dbsql univ.db
pragma replication_local_site="localhost:10001";
// 指定为该组的master
pragma replication_initial_master=ON;
// 启动replication
pragma replication=ON;
② 加入第二个节点
dbsql univ.db
pragma replication_local_site="localhost:10002";
// 指定一个在线节点
pragma replication_remote_site="localhost:10001";
pragma replication=ON;
③在第一个节点上插入数据
④ 在第二个节点查询数据
⑤ 加入第三个节点
pragma replication_local_site="localhost:10003";
// 第一个或者第二个节点都可以成为第三个节点的远程节点
pragma replication_remote_site="localhost:10002";
pragma replication=ON;
⑥ 在第三个节点删除第二个节点
CREATE TABLE university (
rank int,
name varchar(75),
domains varchar(75),
country varchar(30),
region varchar(30),
size int,
visibility int,
rich int,
scholar int
);
第二个节点被删除后,将不再获得第一个节点上的数据更新。
⑦第三个节点设置不启动replication,并重新启动第三个节点
.quit
dbsql univ.db
关闭之后的所有HA数据更新都不会再应用到第三个节点上,该节点变成单机数据库,可进行读写操作。