确保主集群配置正确后,您可以通过 SQL 命令开始新建备集群。
启动新建备集群流程
确定备集群的部署方式,安装 OBServer 二进制文件。
要求备集群的 OceanBase 数据库版本与主集群保持一致。
启动备集群的 OBServer。
要求备集群名与主集群名一致,集群 ID 在主备库配置中保证唯一。
在主集群上,执行备集群的 Bootstrap 命令。
obclient> ALTER SYSTEM BOOTSTRAP CLUSTER STANDBY server_info_list
PRIMARY_CLUSTER_ID primary_cluster_id
PRIMARY_ROOTSERVICE_LIST primary_rs_list;
执行命令后,备集群的 Root Server 会主动联系主集群的 Root Server,将自己注册到主集群上。
此时,查询主集群的
V$OB_STANDBY_STATUS
视图可以看到该备集群的信息,CLUSTER_STATUS
为REGISTERED
。在主集群上,执行添加备集群的命令,建立主备关系,开始数据同步。
obclient>ALTER SYSTEM ADD CLUSTER standby_cluster_name CLUSTER_ID standby_cluster_id;
此时查询主集群的
V$OB_STANDBY_STATUS
视图可以看到该备集群的CLUSTER_STATUS
变为VALID
。
后续处理
启动新建备集群流程会建立集群之间的主备关系,但备集群还不具备容灾能力,还需要持续监控备集群数据的同步状态,进行一些后续处理。
监控备集群租户的创建情况。
建立主备关系后,备集群会选取最近一次 Major 版本作为快照,获取租户列表,执行创建租户的流程。创建租户的过程中需要分配资源,当主备集群采用异构部署时,可能会卡住,需要进行人工处理。如果备集群资源不足,可以定制 Unit 配置模板来保证租户创建成功,定制 Unit 配置模板的相关操作请参见 租户管理 章节。
优化备集群的拷贝速度。
租户创建成功后,备集群会从主集群拷贝最近一次 Major 版本的全量数据,在全量数据拷贝完成之前,备集群不具备容灾能力,不支持 Failover 操作。为了加快全量数据的拷贝速度,您可以调整备集群的配置项。
执行以下命令,将
SERVER_DATA_COPY_IN_CONCURRENCY
和SERVER_DATA_COPY_OUT_CONCURRENCY
配置项的值设置为10
。obclient> ALTER SYSTEM SET SERVER_DATA_COPY_IN_CONCURRENCY = 10;
obclient> ALTER SYSTEM SET SERVER_DATA_COPY_OUT_CONCURRENCY = 10;
其中:
SERVER_DATA_COPY_IN_CONCURRENCY
用于设置单个节点迁入数据的最大并发数,取值范围为 [1,1000],默认值为2
。更多SERVER_DATA_COPY_IN_CONCURRENCY
配置项的信息,请参见 server_data_copy_in_concurrency。SERVER_DATA_COPY_OUT_CONCURRENCY
用于设置单个节点迁出数据的最大并发数,取值范围为 [1,1000],默认值为2
。更多SERVER_DATA_COPY_IN_CONCURRENCY
配置项的信息,请参见 server_data_copy_out_concurrency。
修改
DATA_COPY_CONCURRENCY
配置项的值。建议按DATA_COPY_CONCURRENCY=``Server数
* SERVER_DATA_COPY_IN_CONCURRENCY
配置。DATA_COPY_CONCURRENCY
用于设置系统中并发执行的数据迁移复制任务的最大并发数,取值范围为 [1+∞),默认值为20
。更多DATA_COPY_CONCURRENCY
配置项的信息,请参见 data_copy_concurrency。示例如下:
obclient> ALTER SYSTEM SET DATA_COPY_CONCURRENCY = 30
从主集群拷贝数据会占用主备集群之间的网络带宽,您可以根据实际情况进行限速,即调整备集群单台 OBServer 的网络带宽限制参数
SYS_BKGD_NET_PERCENTAGE
。SYS_BKGD_NET_PERCENTAGE
配置项用于设置后台系统任务可占用网络带宽的百分比,默认为60
,表示 60%,取值范围为 [0, 100],更多SYS_BKGD_NET_PERCENTAGE
配置项的信息,请参见 sys_bkgd_net_percentage。obclient>ALTER SYSTEM SET SYS_BKGD_NET_PERCENTAGE = xx;
注意
完成备集群的数据拷贝后,建议根据情况恢复该配置项的值,否则将会影响主备集群的网络带宽。
监控备集群的同步状态,等待备集群完成数据拷贝,具备 Failover 能力。
备集群在拷贝全量数据的过程中,普通租户的同步进度会显示为
0
,您可以登录备集群,通过查询V$OB_CLUSTER_STATS
视图查看各个普通租户的同步进度。其中:
MIN_SYS_TABLE_SCN
表示系统表的同步进度。MIN_USER_TABLE_SCN
表示用户表的同步进度。
待普通租户的同步进度展示为非
0
的值后,则表示普通租户的所有分区的全量数据已拷贝完成。当所有普通租户的全量数据拷贝完成后,备集群的V$OB_CLUSTER
视图的CURRENT_SCN
字段会显示为非0
值。注意
系统租户在主备集群上是独立的,不会物理同步,系统租户的
MIN_SYS_TABLE_SCN
和MIN_USER_TABLE_SCN
不是同步进度的含义,而是表示当前系统租户最新的快照版本。当没有普通租户时,备集群的
V$OB_CLUSTER
视图的CURRENT_SCN
字段会一直显示为0
。
各个分区的全量数据拷贝完成后,系统会自动同步 REDO 日志。您可以在主集群上查询
V$OB_STANDBY_STATUS
视图的SYNCHRONIZATION_STATUS
字段,查看备集群的同步状态。obclient> SELECT SYNCHRONIZATION_STATUS FROM V$OB_STANDBY_STATUS WHERE CLUSTER_ID = standby_cluster_id;
如果
SYNCHRONIZATION_STATUS
字段显示为OK
,则表示备集群与主集群已经保持同步了,备集群已具备 Failover 能力。修改备集群的配置项。
备集群创建后,不会自动同步主集群的配置项,您可以根据需要修改备集群的配置项值,特别是主集群上已经修改的配置项,需要评估是否也需要在备集群上设置。
设置保护模式。
备集群创建后,您可以根据需要修改保护模式。新建第一个备集群时,默认保护模式为最大性能模式,保护模式的切换请参见 切换保护模式。