#级联备配置

级联备是从某个备机接收日志的备机,对级联备的配置就是在一主一备部署的基础上,添加一个或多个备机,且该备机连接的是已有的另一个备机(上级备机),将其扩展为级联备部署架构。如用户在安装产品时已规划为级联备架构,则可以将一主一备部署与本文档结合参考,一次性完成配置。

在级联备部署中,存在主机→备机和备机→级联备两种不同的主备复制链路,这通过ARCH_DEST_x链路参数中的VALID_FOR关键字来进行识别:

  • VALID_FOR=PRIMARY_ROLE(默认值),表示只有当前数据库为主机时,该链路才生效,这条链路只能是主机→备机的链路。
  • VALID_FOR=STANDBY_ROLE,表示只有当前数据库为备机时,该链路才生效,这条链路只能是备机→级联备的链路。
  • VALID_FOR=ALL_ROLES,表示该链路一直生效。当前数据库为主机时,这条链路是主机→备机的链路;当前数据库为备机时,这条链路是备机→级联备的链路。

本文以在一主一备(主机、备机1)的基础上在线增加一台备机1的下级备机(备机2)为例进行介绍,过程中无需重启主机和备机1。

# Step1:备机2准备

一主一备部署架构中的备机准备操作。

# Step2:备机参数配置

增加一个级联备机所需要配置的参数有:

  • 备机1上增加ARCHIVE_DEST_2,备机1和备机2数据文件路径不同时还需修改DB_FILE_NAME_CONVERT、REDO_FILE_NAME_CONVERT和DB_BUCKET_NAME_CONVERT。
  • 备机2上增加LISTEN_ADDR、REPLICATION_ADDR、ARCHIVE_DEST_1,备机1和备机2数据文件路径不同时还需增加DB_FILE_NAME_CONVERT、REDO_FILE_NAME_CONVERT和DB_BUCKET_NAME_CONVERT。

上述参数的含义描述和配置注意事项请参考一主一备部署架构中的主备机参数配置。

备机1配置示例(立即生效)

--1689为下级备机的同步复制端口
ALTER SYSTEM SET ARCHIVE_DEST_2='SERVICE=192.168.1.4:1689 VALID_FOR=ALL_ROLES' SCOPE=BOTH;

--以下参数当主备机上路径完全一致时无须配置
--/home/yasdb/YASDB_DATA为主机路径,/home/db1/yashandb/yasdb_data为备机1路径,/home/db2/yashandb/yasdb_data为备机2路径
ALTER SYSTEM SET DB_FILE_NAME_CONVERT=
'/home/yasdb/YASDB_DATA','/home/db1/yashandb/yasdb_data','/home/db2/yashandb/yasdb_data','/home/db1/yashandb/yasdb_data'
scope=both; 
ALTER SYSTEM SET REDO_FILE_NAME_CONVERT=
'/home/yasdb/YASDB_DATA','/home/db1/yashandb/yasdb_data','/home/db2/yashandb/yasdb_data','/home/db1/yashandb/yasdb_data'
scope=both; 
ALTER SYSTEM SET DB_BUCKET_NAME_CONVERT=
'/home/yasdb/YASDB_DATA','/home/db1/yashandb/yasdb_data','/home/db2/yashandb/yasdb_data','/home/db1/yashandb/yasdb_data'
scope=both; 

备机2配置示例(重启数据库后生效)

ALTER SYSTEM SET LISTEN_ADDR=192.168.1.4:1688 scope=spfile;
ALTER SYSTEM SET REPLICATION_ADDR=192.168.1.4:1689 scope=spfile;

ALTER SYSTEM SET ARCHIVE_DEST_1='SERVICE=192.168.1.3:1689 VALID_FOR=PRIMARY_ROLE' scope=spfile;

--以下参数当主备机上路径完全一致时无须配置
--/home/yasdb/YASDB_DATA为主机路径,/home/db1/yashandb/yasdb_data为备机1路径,/home/db2/yashandb/yasdb_data为备机2路径
ALTER SYSTEM SET DB_FILE_NAME_CONVERT=
'/home/db1/yashandb/yasdb_data','/home/db2/yashandb/yasdb_data'
scope=spfile; 
ALTER SYSTEM SET REDO_FILE_NAME_CONVERT=
'/home/db1/yashandb/yasdb_data','/home/db2/yashandb/yasdb_data'
scope=spfile; 
ALTER SYSTEM SET DB_BUCKET_NAME_CONVERT=
'/home/db1/yashandb/yasdb_data','/home/db2/yashandb/yasdb_data'
scope=spfile; 

# Step3:备机2初始化

一主一备部署架构中的备机初始化操作,其中,该操作的主机需替换为本文中的备机1,备机需替换为本文中的备机2。

# Step4:部署后检查

一主一备部署架构中的部署后检查操作,其中,该操作的主机需替换为本文中的备机1,备机需替换为本文中的备机2。