首批通过分布式安全可靠测评,为关键业务系统打造
创建备租户
更新时间:2026-04-15 16:30:41
本文分为三种场景介绍如何使用 obd 快速创建备租户。
功能适用性
obd 目前仅支持为 MySQL 模式租户创建备租户。
概念介绍
物理备库是 OceanBase 数据库高可用解决方案的重要组成部分,可以为用户的关键应用提供高可用、数据保护、灾难恢复等重要特性。
物理备库作为 OceanBase 生产数据库的准实时热备份,当主库出现计划内或计划外(多数派副本故障)的不可用情况时,备库可以接管服务,最大限度降低服务停机时间,减少可能带来的数据损失。详细介绍可参见官网《OceanBase 数据库》文档 管理数据库/高可用/物理备库容灾 章节内容。
前提条件
主租户和备租户所在集群均已创建,OceanBase 数据库所用版本相同且为 V4.2.0 及以上版本。
主租户需是用户租户,且具备全量的日志。
执行
SELECT LS_ID, BEGIN_LSN FROM oceanbase.GV$OB_LOG_STAT WHERE ROLE = 'LEADER' ;命令查看,BEGIN_LSN值为0表示当前日志流副本拥有自创建以来的完整日志。主备租户所在集群需保证在运行状态。
可执行
obd cluster display命令查看集群状态。简单体验时主租户资源最少为 1C2GB 内存、4GB 日志磁盘,长期使用建议主租户资源为 1C4GB 内存及以上。
主备租户所在集群均需被同一个 obd 管理,若集群不被 obd 管理,您可参见 使用 obd 接管集群 一文操作进行接管。
操作步骤
本节分为如下三个场景介绍基于网络创建备租户的操作:
场景一:一主一备
一主一备的部署模式简单概括即为:存在 clusterA、clusterB 两个集群,并且 clusterA 集群中创建了用户租户 A_a(主租户),在 clusterB 集群中创建 A_a 租户的备租户(B_a)。
场景二:一主两备
一主两备的部署模式简单概括即为:存在 clusterA、clusterB、clusterC 三个集群,并且 clusterA 集群中创建了用户租户 A_a(主租户),需在 clusterB 和 clusterC 集群中创建 A_a 租户的备租户(B_a 和 C_a)。
场景三:级联主备
级联备租户的部署模式简单概况即为:存在 clusterA、clusterB、clusterC 三个集群,并且 clusterA 集群中创建了用户租户 A_a(主租户),先在 clusterB 集群中创建 A_a 租户的备租户(B_a),之后在 clusterC 集群中创建 B_a 租户的备租户(C_a)。
场景一:一主一备场景二:一主两备场景三:级联主备执行如下命令为 A_a 租户创建备租户 B_a
obd cluster tenant create-standby clusterB clusterA A_a -t B_a --tenant-root-password=*****执行如下命令查看备租户的主备关系
obd cluster tenant show clusterB -t B_a -g-g参数可以展示与集群相关的主备图形信息,输出如下所示:+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | tenant basic info | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops | min_iops | log_disk_size | iops_weight | tenant_role | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | B_a | USER | MYSQL | RANDOM | 2.0 | 2.0 | 4G | 10000 | 10000 | 5G | 2 | STANDBY | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant standby info | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp | err_code | error_comment | switchover_status | switchover_epoch | log_mode | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | B_a | NORMAL | NORMAL | 2023-09-14 08:58:44.173462 | 0 | | NORMAL | 0 | NOARCHIVELOG | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant`s primary info | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby_tenant_name | primary_tenant_info | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | B_a | IP_LIST=10.10.10.1:2881;10.10.10.2:2881;10.10.10.3:2881,USER=standbyro@A_a,PASSWORD=******,TENANT_ID=1002,CLUSTER_ID=1694680744,COMPATIBILITY_MODE=MYSQL,IS_ENCRYPTED=false | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ query primary-standby relation ok primary-standby relation topology graph clusterA:A_a └── clusterB:B_a输出中
tenant_status和sync_status值均为NORMAL时即表示备租户创建成功,且日志传输正常。输出中各个模块内容介绍如下。tenant base info:该表展示集群中的租户信息。您需关注的有如下几项。
列名 说明 tenant_name 租户名称。 tenant_type 租户类型,分为 sys 租户(SYS)和用户租户(USER)。 compatibility_mode 租户的兼容模式,分为 MySQL 模式兼容和 Oracle 模式兼容,社区版仅支持 MySQL 模式兼容。 primary_zone 租户的主 Zone。 tenant_role 租户角色: PRIMARY:主租户STANDBY:备租户RESTORE:租户处于恢复中
standby tenant standby info:该表展示集群中备租户的具体信息,您需关注如下几项。
列名 说明 standby_tenant_name 备租户的租户名称。 tenant_status 备租户的租户状态,该值为 NORMAL时表示备租户状态正常。sync_status 备租户的日志同步状态,该值为 NORMAL时表示日志同步状态正常。sync_scn_timestamp 日志同步位点。 err_code 日志同步错误代码。 error_comment 日志同步错误信息。 switchover_status 主备租户切换状态,该值为 NORMAL时表示主备租户切换状态正常。switchover_epoch 主备租户切换时间。 log_mode 日志归档模式,基于网络的主备租户日志归档模式均为 NOARCHIVELOG。standby tenant`s primary info:该表展示集群中备租户的主租户信息,您需关注如下几项。
列名 说明 standby_tenant_name 备租户的租户名,方便展示主租户信息归属于哪一个备租户。 primary_tenant_info 备租户所属的主租户信息,包括主租户所在集群的节点 IP、主租户的租户名、standburo 用户的密码、主租户 ID 和主租户所在集群 ID 等。
分别连接主备租户,修改主租户(A_a)中信息,查看备租户(B_a)中是否同步更新。
执行如下命令为 A_a 租户创建备租户 B_a
obd cluster tenant create-standby clusterB clusterA A_a -t B_a --tenant-root-password=*****重复执行创建命令为 A_a 租户创建备租户 C_a
obd cluster tenant create-standby clusterC clusterA A_a -t C_a --tenant-root-password=*****执行如下命令查看备租户的主备关系,此处以查看 clusterB 集群为例
obd cluster tenant show clusterB -t B_a -g-g参数可以展示与集群相关的主备图形信息,输出如下所示:+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | tenant basic info | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops | min_iops | log_disk_size | iops_weight | tenant_role | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | B_a | USER | MYSQL | RANDOM | 2.0 | 2.0 | 4G | 10000 | 10000 | 5G | 2 | STANDBY | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant standby info | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp | err_code | error_comment | switchover_status | switchover_epoch | log_mode | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | B_a | NORMAL | NORMAL | 2023-09-14 09:12:13.819821 | 0 | | NORMAL | 0 | NOARCHIVELOG | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant`s primary info | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby_tenant_name | primary_tenant_info | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | B_a | IP_LIST=10.10.10.1:2881;10.10.10.2:2881;10.10.10.3:2881,USER=standbyro@A_a,PASSWORD=******,TENANT_ID=1002,CLUSTER_ID=1694680744,COMPATIBILITY_MODE=MYSQL,IS_ENCRYPTED=false | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ query primary-standby relation ok primary-standby relation topology graph clusterA:A_a ├── clusterB:B_a └── clusterC:C_a输出中
tenant_status和sync_status值均为NORMAL时即表示备租户创建成功,且日志传输正常。输出中各个模块内容介绍可参见 场景一:一主一备。分别连接主备租户,修改主租户(A_a)中信息,查看备租户(B_a、C_a)中是否同步更新。
执行如下命令为 A_a 租户创建备租户 B_a
obd cluster tenant create-standby clusterB clusterA A_a -t B_a --tenant-root-password=*****执行如下命令查看 B_a 租户是否创建完成
obd cluster tenant show clusterB -t B_a -g输出中
tenant_status和sync_status值均为NORMAL时即表示备租户创建成功,且日志传输正常。输出中各个模块内容介绍可参见 场景一:一主一备。-g参数可以展示与集群相关的主备图形信息,输出如下所示:+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | tenant basic info | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops | min_iops | log_disk_size | iops_weight | tenant_role | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | B_a | USER | MYSQL | RANDOM | 2.0 | 2.0 | 4G | 10000 | 10000 | 5G | 2 | STANDBY | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant standby info | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp | err_code | error_comment | switchover_status | switchover_epoch | log_mode | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | B_a | NORMAL | NORMAL | 2023-09-14 08:58:44.173462 | 0 | | NORMAL | 0 | NOARCHIVELOG | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant`s primary info | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby_tenant_name | primary_tenant_info | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | B_a | IP_LIST=10.10.10.1:2881;10.10.10.2:2881;10.10.10.3:2881,USER=standbyro@A_a,PASSWORD=******,TENANT_ID=1002,CLUSTER_ID=1694680744,COMPATIBILITY_MODE=MYSQL,IS_ENCRYPTED=false | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ query primary-standby relation ok primary-standby relation topology graph clusterA:A_a └── clusterB:B_a重复执行创建命令为 B_a 租户创建备租户 C_a
说明
建议等 B_a 租户完成同步后再创建 C_a 租户。
obd cluster tenant create-standby clusterC clusterB B_a -t C_a --tenant-root-password=*****执行如下命令查看备租户的主备关系,此处以查看 clusterB 集群为例
obd cluster tenant show clusterB -t B_a -g-g参数可以展示与集群相关的主备图形信息,输出如下所示:+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | tenant basic info | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops | min_iops | log_disk_size | iops_weight | tenant_role | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | B_a | USER | MYSQL | RANDOM | 2.0 | 2.0 | 4G | 10000 | 10000 | 5G | 2 | STANDBY | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant standby info | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp | err_code | error_comment | switchover_status | switchover_epoch | log_mode | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | B_a | NORMAL | NORMAL | 2023-09-14 09:24:48.737141 | 0 | | NORMAL | 0 | NOARCHIVELOG | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant`s primary info | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby_tenant_name | primary_tenant_info | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | B_a | IP_LIST=10.10.10.1:2881;10.10.10.2:2881;10.10.10.3:2881,USER=standbyro@A_a,PASSWORD=******,TENANT_ID=1002,CLUSTER_ID=1694680744,COMPATIBILITY_MODE=MYSQL,IS_ENCRYPTED=false | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ query primary-standby relation ok primary-standby relation topology graph clusterA:A_a └── clusterB:B_a └── clusterC:C_a分别连接主备租户,修改主租户(A_a)中信息,查看备租户(B_a)以及备租户的备租户(C_a)中是否同步更新。
前提条件
主租户和备租户所在集群均已创建,OceanBase 数据库所用版本相同且为 V4.2.0 及以上版本。
主租户需是用户租户,且已完成备份,备份操作具体可参见 备份与恢复 中 租户备份。
主备租户所在集群需保证在运行状态,可执行
obd cluster display命令查看集群状态。简单体验时主租户资源最少为 1C2GB 内存、4GB 日志磁盘,长期使用建议主租户资源为 1C4GB 内存及以上。
主备租户所在集群均需被同一个 obd 管理,若集群不被 obd 管理,您可参见 使用 obd 接管集群 一文操作进行接管。
主租户和备租户所在的集群可以同时访问共享存储(例如,OSS、NFS 等)。
操作步骤
本节分为如下三个场景介绍基于归档创建备租户的操作:
场景一:一主一备
一主一备的部署模式简单概括即为:存在 clusterA、clusterB 两个集群,并且 clusterA 集群中创建了用户租户 A_a(主租户),在 clusterB 集群中创建 A_a 租户的备租户(B_a)。
场景二:一主两备
一主两备的部署模式简单概括即为:存在 clusterA、clusterB、clusterC 三个集群,并且 clusterA 集群中创建了用户租户 A_a(主租户),需在 clusterB 和 clusterC 集群中创建 A_a 租户的备租户(B_a 和 C_a)。
场景三:级联主备
级联备租户的部署模式简单概况即为:存在 clusterA、clusterB、clusterC 三个集群,并且 clusterA 集群中创建了用户租户 A_a(主租户),先在 clusterB 集群中创建 A_a 租户的备租户(B_a),之后在 clusterC 集群中创建 B_a 租户的备租户(C_a)。
注意
级联主备场景下,使用基于归档的方式为主租户(A_a)创建备租户(B_a)后,不支持使用基于网络的方式为该备租户(B_a)创建备租户(C_a)。
场景一:一主一备场景二:一主两备场景三:级联主备执行如下命令为 A_a 租户创建备租户 B_a
obd cluster tenant create-standby clusterB clusterA A_a --type=LOCATION -t B_a -d 'oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5' -a 'oss://oceanbase-test-bucket/backup/log?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5'此处以使用 OSS 作为备份介质为例,您需根据实际备份文件路径进行替换。
执行如下命令查看备租户状态
obd cluster tenant show clusterB -t B_a -g-g参数可以展示与集群相关的主备图形信息,输出如下所示:+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | tenant basic info | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops | min_iops | log_disk_size | iops_weight | tenant_role | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ | B_a | USER | MYSQL | RANDOM | 2.0 | 2.0 | 4G | 10000 | 10000 | 5G | 2 | STANDBY | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant standby info | +---------------------+---------------+-----------------+----------------------------+----------+------------------------------------------------------------------------+-------------------+------------------+--------------+ | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp | err_code | error_comment | switchover_status | switchover_epoch | log_mode | +---------------------+---------------+-----------------+----------------------------+----------+------------------------------------------------------------------------+-------------------+------------------+--------------+ | B_a | NORMAL | RESTORE SUSPEND | 2025-05-27 16:12:08.556291 | 0 | Restore suspend, the log stream has synchronized to recovery until scn | NORMAL | 0 | NOARCHIVELOG | +---------------------+---------------+-----------------+----------------------------+----------+------------------------------------------------------------------------+-------------------+------------------+--------------+ +----------------------------------------------------------------------------------------------------------------------+ | standby tenant`s primary info | +---------------------+------------------------------------------------------------------------------------------------+ | standby_tenant_name | primary_tenant_info | +---------------------+------------------------------------------------------------------------------------------------+ | B_a | oss://oceanbase-test-bucket/backup/log?host=****.aliyun-inc.com&access_id=****&access_key=**** | +---------------------+------------------------------------------------------------------------------------------------+ query primary-standby relation ok primary-standby relation topology graph clusterA:A_a └── clusterB:B_a输出中
tenant_status值为NORMAL,sync_status值为RESTORE SUSPEND,表示备租户创建成功,且日志已同步到归档位置。输出中各个模块内容介绍如下。tenant base info:该表展示集群中的租户信息。您需关注的有如下几项。
列名 说明 tenant_name 租户名称。 tenant_type 租户类型,分为 sys 租户(SYS)和用户租户(USER)。 compatibility_mode 租户的兼容模式,分为 MySQL 模式兼容和 Oracle 模式兼容,社区版仅支持 MySQL 模式兼容。 primary_zone 租户的主 Zone。 tenant_role 租户角色: PRIMARY:主租户STANDBY:备租户RESTORE:租户处于恢复中
standby tenant standby info:该表展示集群中备租户的具体信息,您需关注如下几项。
列名 说明 standby_tenant_name 备租户的租户名称。 tenant_status 备租户的租户状态,该值为 NORMAL时表示备租户状态正常。sync_status 备租户的日志同步状态,该值为 RESTORE SUSPEND时表示日志已同步到归档位置。为备租户开启日志持续同步后,该列的值将变为NORMAL表示日志同步状态正常。sync_scn_timestamp 日志同步位点。 err_code 日志同步错误代码。 error_comment 日志同步错误信息。 switchover_status 主备租户切换状态,该值为 NORMAL时表示主备租户切换状态正常。switchover_epoch 主备租户切换时间。 log_mode 日志归档模式。 ARCHIVELOG:归档模式开启中。NOARCHIVELOG:未开启归档模式。
standby tenant`s primary info:该表展示集群中备租户的主租户信息,您需关注如下几项。
列名 说明 standby_tenant_name 备租户的租户名,方便展示主租户信息归属于哪一个备租户。 primary_tenant_info 备租户所属的主租户信息,基于归档创建备租户时,此处展示日志归档的目录路径。
开启日志持续同步
基于归档创建备租户后,备租户不会连续同步主租户归档的日志。因此,当备租户创建成功后(
obd cluster tenant show命令查询tenant_status值为NORMAL,sync_status值为RESTORE SUSPEND),需要手动执行如下命令,为备租户开启日志持续同步模式。obd cluster tenant recover clusterB B_a分别连接主备租户,修改主租户(A_a)中信息,查看备租户(B_a)中是否同步更新。
执行如下命令为 A_a 租户创建备租户 B_a
obd cluster tenant create-standby clusterB clusterA A_a --type=LOCATION -t B_a --tenant-root-password=***** -d 'oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5' -a 'oss://oceanbase-test-bucket/backup/log?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5'开启日志持续同步
基于归档创建备租户时,obd 不会连续同步主租户归档的日志。因此,当备租户创建成功后(
obd cluster tenant show命令查询tenant_status值为NORMAL,sync_status值为RESTORE SUSPEND),需要手动执行如下命令,为备租户开启日志持续同步模式。obd cluster tenant recover clusterB B_a重复执行创建命令为 A_a 租户创建备租户 C_a
obd cluster tenant create-standby clusterC clusterA A_a --type=LOCATION -t C_a --tenant-root-password=***** -d 'oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5' -a 'oss://oceanbase-test-bucket/backup/log?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5'开启日志持续同步
基于归档创建备租户后,备租户不会连续同步源端租户(主租户或另一个备租户)归档的日志。因此,当备租户创建成功后(
obd cluster tenant show命令查询tenant_status值为NORMAL,sync_status值为RESTORE SUSPEND),需要手动执行如下命令,为备租户开启日志持续同步模式。obd cluster tenant recover clusterC C_a执行如下命令查看备租户的主备关系,此处以查看 clusterB 集群为例
obd cluster tenant show clusterB -t B_a -g-g参数可以展示与集群相关的主备图形信息,输出如下所示:+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | tenant basic info | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops | min_iops | log_disk_size | iops_weight | tenant_role | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ | B_a | USER | MYSQL | RANDOM | 2.0 | 2.0 | 4G | 10000 | 10000 | 5G | 2 | STANDBY | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp | err_code | error_comment | switchover_status | switchover_epoch | log_mode | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | B_a | NORMAL | NORMAL | 2025-05-27 16:33:28.155249 | 0 | | NORMAL | 0 | NOARCHIVELOG | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ +----------------------------------------------------------------------------------------------------------------------+ | standby tenant`s primary info | +---------------------+------------------------------------------------------------------------------------------------+ | standby_tenant_name | primary_tenant_info | +---------------------+------------------------------------------------------------------------------------------------+ | B_a | oss://oceanbase-test-bucket/backup/log?host=****.aliyun-inc.com&access_id=****&access_key=**** | +---------------------+------------------------------------------------------------------------------------------------+ query primary-standby relation ok primary-standby relation topology graph clusterA:A_a ├── clusterB:B_a └── clusterC:C_a输出中
tenant_status和sync_status值均为NORMAL时即表示备租户创建成功,且日志传输正常。输出中各个模块内容介绍可参见 场景一:一主一备。分别连接主备租户,修改主租户(A_a)中信息,查看备租户(B_a、C_a)中是否同步更新。
执行如下命令为 A_a 租户创建备租户 B_a
obd cluster tenant create-standby clusterB clusterA A_a --type=LOCATION -t B_a --tenant-root-password=***** -d 'oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5' -a 'oss://oceanbase-test-bucket/backup/log?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5'执行如下命令查看备租户状态
obd cluster tenant show clusterB -t B_a -g输出中
tenant_status值为NORMAL,sync_status值为RESTORE SUSPEND,表示备租户创建成功,且日志已同步到归档位置。输出中各个模块内容介绍可参见 场景一:一主一备。-g参数可以展示与集群相关的主备图形信息,输出如下所示:+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | tenant basic info | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops | min_iops | log_disk_size | iops_weight | tenant_role | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ | B_a | USER | MYSQL | RANDOM | 2.0 | 2.0 | 4G | 10000 | 10000 | 5G | 2 | STANDBY | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | standby tenant standby info | +---------------------+---------------+-----------------+----------------------------+----------+------------------------------------------------------------------------+-------------------+------------------+--------------+ | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp | err_code | error_comment | switchover_status | switchover_epoch | log_mode | +---------------------+---------------+-----------------+----------------------------+----------+------------------------------------------------------------------------+-------------------+------------------+--------------+ | B_a | NORMAL | RESTORE SUSPEND | 2025-05-27 16:12:08.556291 | 0 | Restore suspend, the log stream has synchronized to recovery until scn | NORMAL | 0 | NOARCHIVELOG | +---------------------+---------------+-----------------+----------------------------+----------+------------------------------------------------------------------------+-------------------+------------------+--------------+ +----------------------------------------------------------------------------------------------------------------------+ | standby tenant`s primary info | +---------------------+------------------------------------------------------------------------------------------------+ | standby_tenant_name | primary_tenant_info | +---------------------+------------------------------------------------------------------------------------------------+ | B_a | oss://oceanbase-test-bucket/backup/log?host=****.aliyun-inc.com&access_id=****&access_key=**** | +---------------------+------------------------------------------------------------------------------------------------+ query primary-standby relation ok primary-standby relation topology graph clusterA:A_a └── clusterB:B_a开启日志持续同步
基于归档创建备租户后,备租户不会连续同步源端租户(主租户或另一个备租户)归档的日志。因此,当备租户创建成功后(
obd cluster tenant show命令查询tenant_status值为NORMAL,sync_status值为RESTORE SUSPEND),需要手动执行如下命令,为备租户开启日志持续同步模式。obd cluster tenant recover clusterB B_a重复执行创建命令为 B_a 租户创建备租户 C_a
说明
建议等 B_a 租户完成同步后再创建 C_a 租户。
obd cluster tenant create-standby clusterC clusterB B_a --type=LOCATION -t C_a --tenant-root-password=***** -d 'oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5' -a 'oss://oceanbase-test-bucket/backup/log?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5'开启日志持续同步
基于归档创建备租户后,备租户不会连续同步源端租户(主租户或另一个备租户)归档的日志。因此,当备租户创建成功后(
obd cluster tenant show命令查询tenant_status值为NORMAL,sync_status值为RESTORE SUSPEND),需要手动执行如下命令,为备租户开启日志持续同步模式。obd cluster tenant recover clusterB B_a执行如下命令查看备租户的主备关系,此处以查看 clusterB 集群为例
obd cluster tenant show clusterB -t B_a -g-g参数可以展示与集群相关的主备图形信息,输出如下所示:+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | tenant basic info | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops | min_iops | log_disk_size | iops_weight | tenant_role | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ | B_a | USER | MYSQL | RANDOM | 2.0 | 2.0 | 4G | 10000 | 10000 | 5G | 2 | STANDBY | +-------------+-------------+--------------------+--------------+---------+---------+-------------+----------+----------+---------------+-------------+-------------+ +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp | err_code | error_comment | switchover_status | switchover_epoch | log_mode | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ | B_a | NORMAL | NORMAL | 2025-05-27 16:33:28.155249 | 0 | | NORMAL | 0 | NOARCHIVELOG | +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+ +----------------------------------------------------------------------------------------------------------------------+ | standby tenant`s primary info | +---------------------+------------------------------------------------------------------------------------------------+ | standby_tenant_name | primary_tenant_info | +---------------------+------------------------------------------------------------------------------------------------+ | B_a | oss://oceanbase-test-bucket/backup/log?host=****.aliyun-inc.com&access_id=****&access_key=**** | +---------------------+------------------------------------------------------------------------------------------------+ query primary-standby relation ok primary-standby relation topology graph clusterA:A_a └── clusterB:B_a └── clusterC:C_a分别连接主备租户,修改主租户(A_a)中信息,查看备租户(B_a)以及备租户的备租户(C_a)中是否同步更新。
常见问题
创建备租户时报错 primary cluster have not full log xxx
可能原因:主租户不具备全量的日志。
基于网络的主备同步依赖主租户具备全量的日志,所以执行备租户创建命令时,obd 会先检查主租户日志流的 BEGIN_LSN 值是否为 0,BEGIN_LSN 值为 0 表示当前日志流副本拥有自创建以来完整的日志;当 BEGIN_LSN 值不为 0 时,obd 无法创建基于网络同步的备租户。
解决办法:您可登录主租户执行如下命令查询主租户的日志流 BEGIN_LSN 值是否为 0。
SELECT LS_ID, BEGIN_LSN FROM oceanbase.GV$OB_LOG_STAT WHERE ROLE = 'LEADER' ;
若主租户的日志流 BEGIN_LSN 值不为 0,表明主租户不具备全量的日志,您无法使用 obd 为该主租户创建备租户,您可参见 OceanBase 数据库文档 创建备租户 一章通过 SQL 命令为该主租户创建备租户。
相关文档
主备租户存在的意义及具体介绍可参见官网《OceanBase 数据库》文档 管理数据库/高可用/物理备库容灾。
数据备份和日志归档的具体介绍可参见官网《OceanBase 数据库》文档 管理数据库/备份恢复。
使用 obd 命令进行数据备份和日志归档的操作可参见 备份与恢复。
使用 obd 命令进行主备切换或解耦的操作可参见 角色切换与解耦。
使用 obd 命令切换主备同步方式的操作可参见 切换主备租户同步方式。