1 源库配置

  • 注意:
    在配置之前请确认ob数据库版本和libobcdc.so.4版本的兼容性,具体查看方式请参考补充说明2.1

1.1 修改配置文件

1.1.1 查看OB数据库模式

MySQL [oceanbase]> show variables like 'ob_compatibility_mode';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| ob_compatibility_mode | ORACLE|
+-----------------------+-------+
1 row in set (0.003 sec)

1.1.2 检查归档是否开启

  • 要求开启归档(log_mode=ARCHIVELOG)
查看租户名和归档师是否开启
SELECT TENANT_NAME, LOG_MODE FROM DBA_OB_TENANTS\G
  • 打开归档
obclient [oceanbase]> ALTER SYSTEM ARCHIVELOG;
Query OK, 0 rows affected (0.902 sec)
  • 检查归档是否开启
SELECT TENANT_NAME, LOG_MODE FROM DBA_OB_TENANTS\G
*************************** 1. row ***************************
TENANT_NAME: uf30
   LOG_MODE: ARCHIVELOG
1 row in set (0.006 sec)
  • 设置归档位置
obclient [oceanbase]> ALTER SYSTEM SET backup_dest='file:///home/admin/archivelogs';
Query OK, 0 rows affected (0.868 sec)
  • 说明:
    1.用户在配置数据库信息时需要在user处填写user@tenant_name格式的用户名,如果用户是集群用户,请勿填写#cluster_name,集群标识会导致无法解析当前用户的增量日志。端口需要填写2881。
    2.数据库的sys租户不能作为数据同步用户。
    3.zcbus_service后台程序需要和OceanBase库在一个局域网,real进程需要执行SHOW parameters LIKE ‘obconfig_url’命令获取并连接管理端口(默认2882),如果设置了端口转发会导致增量日志分析不到
    4.OceanBase各个版本之间权限视图不一致,无法细致区分,DBA权限可规避该问题。

1.2 创建用户及赋权

1.2.1 创建用户

create user zcbus identified by "******";
  • 说明:用户在配置页面需要再user处配置user@tenant_name,如果用户是集群用户,请勿填写#cluster_name,集群标识会导致无法解析当前用户的增量日志。

1.2.2 用户赋权

方式一:
执行下述语句,操作较为简单,但赋予用户的权限较大。
GRANT DBA TO <user_name>;

方式二
赋予用户对业务库表的各类权限。如果存在多个业务库,请分别授权。
GRANT CONNECT TO <user_name>;
GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <user_name>;

1.2.3 权限查询

show grants for zcbus;

2 补充说明

2.1 OBCDC链接库文件获取和替换流程

2.1.1 查看ob数据库版本

zcbus默认的libobcdc版本对应数据库4.2.1.4,如果版本查询结果与默认版本不一致,需要进行替换

2.1.2 获取对应版本的lib文件

前往oceanbase官网进行下载获取或联系zcbus原厂工程师

https://www.oceanbase.com/softwarecenter

2.1.3 替换zcbus_server容器中的lib文件

进入对应server容器,将对应数据库版本的lib文件直接进行替换即可,注意包名必须为libobcdc.so.4

将lib包从宿主机上传至该目录命令

docker cp libobcdc.so.4 zcbus:/usr/local/zcbus/lib/zc_lib/oceanbase

2.2 OBCDC集群配置(需要替换libobcdc.conf文件)

2.2.1 OCP的接口配置

show parameters like ‘%obconfig_url%’查询获取

2.2.1 配置服务器列表

2.3 ZCBUS相关oblog日志检查

tail -f /usr/local/zcbus/cache/node10109/oblog/log/liboblog.log
  • 注: node10109中10109为发布节点ID,容器内部运行,实际位置不变

2.3 数据类型支持

OB类型 是否支持 描述
NUMBER 是 NUMBER(p,s) 存储变长、十进制精度的定点数;也可以存储浮点数,此时 NUMBER 没有 p 和 s 。
FLOAT 是 FLOAT(p) 是 NUMBER 数据类型的子类型。二进制精度范围为 1~126。 FLOAT 不是浮点数。
BINARY_FLOAT 是 二进制精度浮点数,是一种 32 位单精度浮点数数据类型。
BINARY_DOUBLE 是 二进制精度浮点数,是一种 64 位双精度浮点数数据类型。
CHAR(size [BYTE | CHAR]) 是 参数 size 必须是一个介于 1~2000 之间的数值,存储大小为 size 个字节。
NCHAR[(size)] 是 参数 size 必须是一个介于 1~2000 之间的数值,存储大小为 size 字节的两倍。
NVARCHAR2(size) 是 参数 size 的值必须介于 1~32767 之间,字节的存储大小是所输入字符个数的两倍。
VARCHAR2(size [BYTE | CHAR]) 是 参数 size 必须是一个介于 1~32767 之间的数值,存储大小为输入数据的字节的实际长度,而不是 size 个字节。
VARCHAR(size [BYTE | CHAR]) 是 参数 size 必须是一个介于 1~32767 之间的数值,存储大小为输入数据的字节的实际长度,而不是 size 个字节。
DATE 是 存储日期和时间信息,精确到秒,不带时区。
TIMESTAMP 是 DATE 数据类型的扩展,精确到纳秒,不带时区。
TIMESTAMP WITH TIME ZONE 是 DATE 数据类型的扩展,精确到纳秒,带时区信息。
TIMESTAMP WITH LOCAL TIME ZONE 是 带有本地时区的 TIMESTAMP ,存储数据库时区。
INTERVAL YEAR TO MONTH 是 存储以年和月为单位的时间段。
INTERVAL DAY TO SECOND 是 存储以天、小时、分钟和秒为单位的时间段。
RAW(length) 是 length表示长度,以字节为单位,作为数据库列最大存储 2000 字节的数据,作为变量最大存储2000 字节的数据。
BLOB 是 定义长度上限(字符):48M,字符集为BINARY
CLOB 是 定义长度上限(字符):48M,字符集为BINARY
文档更新时间: 2025-12-25 16:49   作者:操李红