首批通过分布式安全可靠测评,为关键业务系统打造
配置项说明
更新时间:2026-04-14 17:41:09
本文简要介绍如何查看和修改 ODP 中的配置项。
配置项说明
在使用 ODP 时,您可以根据需要配置 ODP 配置项。目前 ODP 配置项分为全局配置项和多级配置项两类,两类配置项的使用及生效情况不同,具体介绍如下:
全局配置项
全局配置项对 ODP 全局生效,拥有默认值,一般无特殊使用场景时不需要手动设置,目前无法删除。各个配置项的详细介绍请参见 全局配置项。
多级配置项
多级配置项可通过命令设置为不同的生效范围,如果同时配置了不同生效范围的值,其优先级由高到低为:地址级别(LEVEL_VIP)、租户级别(LEVEL_TENANT)、集群级别(LEVEL_CLUSTER)、全局级别(LEVEL_GLOBAL)。各个配置项的详细介绍请参见 多级配置项。
说明
对于所有 time 类型(单位支持 us、ms、s、m、h、d,不区分大小写,默认为 s)、capacity 类型(单位支持 b、byte、kb、k、mb、m、gb、g、tb、t、pb、p,不区分大小写,默认为 mb)的配置项, 如果其取值范围为 [0,xxx],在更新配置时可以将其值设置为负数,此时通过
ob_all_proxy_config表或者 ODP 内部查询命令show proxyconfig查询出的结果也是负数, 但实际上 ODP 内部仍将其转换成0来处理。修改后的配置项,其生效方式一般分为动态生效和重启生效,大部分配置项为动态生效,即不需要重启 ODP 就可以生效。
查看配置属性
您可参考如下步骤查看 ODP 配置项的详细情况。
使用
root@sys用户通过 ODP 代理登录 OceanBase 数据库,或使用root@proxysys用户登录 ODP。使用
root@sys用户登录 OceanBase 数据库示例如下,详细参数介绍可参见《OceanBase 数据库》文档 通过 OBClient 连接 OceanBase 租户。[admin@obtest ~]$ obclient -uroot@sys#obcluster -h10.10.10.1 -P2883 -p注意
若要在 OceanBase 数据库中使用 ODP 命令,连接 OceanBase 数据库的连接 IP(
-h)和连接端口(-P)需为 ODP 的地址和监听端口(listen_port)。使用
root@proxysys用户登录 ODP 示例如下,此处的连接 IP(-h)为 ODP 的地址,连接端口(-P)为 ODP 的监听端口(listen_port)。[admin@obtest ~]$ obclient -uroot@proxysys -h10.10.10.1 -P2883 -p执行
show proxyconfig [like '%var_name%']命令查看配置项的值及最小生效级别。说明
该命令仅输出配置项全局级别生效的值,不会输出其他生效级别的值。
show proxyconfig like '%full%'\G输出如下,
config_level值为LEVEL_GLOBAL时,表示该配置项为全局配置项,其值对整个 ODP 生效;config_level值为LEVEL_VIP时,表示该配置项为多级配置项,可配置为不同的生效范围。*************************** 1. row *************************** name: enable_full_username value: False info: used for non-cloud user, if set true, username must have tenant and cluster need_reboot: false visible_level: SYS range: config_level: LEVEL_GLOBAL *************************** 2. row *************************** name: enable_cloud_full_username value: False info: used for cloud user, if set false, treat all login user as username need_reboot: false visible_level: SYS range: config_level: LEVEL_VIP查询结果中字段说明如下:
name:配置项名称。value:配置项的取值。info:配置项的介绍。need_reboot:配置项修改后是否需要重启生效。visible_level:配置项的可见程度。值为SYS时表示该配置项支持管理员级别可见,用户级别不可见;值为USER时表示该配置项支持用户级别可见。range:配置项的取值范围,仅时间类型和整数类型的配置项会展示取值范围。config_level:配置项的最小生效级别,有LEVEL_GLOBAL和LEVEL_VIP两种取值。值为
LEVEL_GLOBAL时,表示该配置项为全局配置项。值为
LEVEL_VIP时,表示该配置项为多级配置项。
执行
show proxyconfig all [like '%xxx%']命令查看配置项的值及当前生效范围。show proxyconfig all like '%root%';输出如下,
value列表示配置项的值,config_level列表示对应配置项的生效范围。+------+-----------+-------+---------------+----------------+--------------------------+---------------------+--------------+ | vid | vip | vport | tenant_name | cluster_name | name | value | config_level | +------+-----------+-------+---------------+----------------+--------------------------+---------------------+--------------+ | 1 | 127.0.0.3 | 1 | test_tename_1 | test_cluster_1 | rootservice_cluster_name | value_3 | LEVEL_VIP | | -1 | | 0 | | | rootservice_cluster_name | undefined | LEVEL_GLOBAL | | -1 | | 0 | | | rootservice_list | 10.10.10.1:2881 | LEVEL_GLOBAL | +------+-----------+-------+---------------+----------------+--------------------------+---------------------+--------------+查询结果中字段说明如下:
vid:Virtual IP 关联的字段,一般由运维负责管控,无需关注。vip:Virtual IP 关联的字段,一般由运维负责管控,无需关注。vport:Virtual IP 关联的字段,一般由运维负责管控,无需关注。tenant_name:租户名,表示配置项在该租户内生效。cluster_name:集群名,表示配置项在该集群内生效。name:配置项名称。value:配置项的取值。config_level:配置项的生效级别,有LEVEL_GLOBAL、LEVEL_CLUSTER、LEVEL_TENANT和LEVEL_VIP四种取值。值为
LEVEL_GLOBAL时,表示该配置项的生效级别为全局级别。值为
LEVEL_CLUSTER时,表示该配置项的生效级别为集群级别。值为
LEVEL_TENANT时,表示该配置项的生效级别为租户级别。值为
LEVEL_VIP时,表示该配置项的生效级别为地址级别。
执行
select * from proxy_config命令查看多级配置的值。说明
该命令仅在使用
root@proxysys用户登录 ODP 时可执行,其他用户下执行会报错。相较于
show proxyconfig all [like '%xxx%']命令,使用 SQL 命令查询的结果更为详细。select * from proxy_config where name='metadb_batch_size'\G输出如下。
*************************** 1. row *************************** vid: -1 vip: vport: 0 tenant_name: cluster_name: name: metadb_batch_size value: 5 info: range: need_reboot: visible_level: config_level: LEVEL_GLOBAL查询结果中字段说明如下:
vid:Virtual IP 关联的字段,一般由运维负责管控,无需关注。vip:Virtual IP 关联的字段,一般由运维负责管控,无需关注。vport:Virtual IP 关联的字段,一般由运维负责管控,无需关注。tenant_name:租户名,表示配置项在该租户内生效。cluster_name:集群名,表示配置项在该集群内生效。name:配置项名称。value:配置项的取值。info:配置项的介绍。range:配置项的取值范围,仅时间类型和整数类型的配置项会展示取值范围。need_reboot:配置项修改后是否需要重启生效。visible_level:配置项的可见程度。值为SYS时表示该配置项支持管理员级别可见,用户级别不可见;值为USER时表示该配置项支持用户级别可见。config_level:配置项的生效级别,有LEVEL_GLOBAL、LEVEL_CLUSTER、LEVEL_TENANT和LEVEL_VIP四种取值。值为
LEVEL_GLOBAL时,表示该配置项的生效级别为全局级别。值为
LEVEL_CLUSTER时,表示该配置项的生效级别为集群级别。值为
LEVEL_TENANT时,表示该配置项的生效级别为租户级别。值为
LEVEL_VIP时,表示该配置项的生效级别为地址级别。
执行
show proxyconfig diff [like '%var_name%']命令查看全局级别生效的配置项中当前配置与默认值不同的配置项。show proxyconfig diff like '%enable%'\G输出如下。
*************************** 1. row *************************** name: enable_strict_kernel_release value: False info: If is true, proxy only support 5u/6u/7u redhat. Otherwise no care kernel release, and proxy maybe unstable need_reboot: true visible_level: SYS range: config_level: LEVEL_GLOBAL *************************** 2. row *************************** name: enable_cluster_checkout value: False info: if enable cluster checkout, proxy will send cluster name when login and server will check it need_reboot: false visible_level: USER range: config_level: LEVEL_GLOBAL查询结果中字段说明如下:
name:配置项名称。value:配置项的取值。info:配置项的介绍。need_reboot:配置项修改后是否需要重启生效。visible_level:配置项的可见程度。值为SYS时表示该配置项支持管理员级别可见,用户级别不可见;值为USER时表示该配置项支持用户级别可见。range:配置项的取值范围,仅时间类型和整数类型的配置项会展示取值范围。config_level:配置项的最小生效级别,有LEVEL_GLOBAL和LEVEL_VIP两种取值。值为
LEVEL_GLOBAL时,表示该配置项为全局配置项。值为
LEVEL_VIP时,表示该配置项为多级配置项。
执行
show proxyconfig diff user [like '%var_name%']命令查看全局级别生效的配置项中,当前配置与默认值不同的配置项,此命令仅展示用户级别的配置。show proxyconfig diff user\G输出如下,查询结果中
visible_level值均为USER。*************************** 1. row *************************** name: work_thread_num value: 8 info: proxy work thread num or max work thread num when automatic match, [1, 128] need_reboot: true visible_level: USER range: [1,128] config_level: LEVEL_GLOBAL *************************** 2. row *************************** name: enable_cluster_checkout value: False info: if enable cluster checkout, proxy will send cluster name when login and server will check it need_reboot: false visible_level: USER range: config_level: LEVEL_GLOBAL *************************** 3. row *************************** name: syslog_level value: debug info: specifies the current level of logging: DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, USER_ERR, ERROR need_reboot: false visible_level: USER range: config_level: LEVEL_GLOBAL查询结果中字段说明如下:
name:配置项名称。value:配置项的取值。info:配置项的介绍。need_reboot:配置项修改后是否需要重启生效。visible_level:配置项的可见程度。值为SYS时表示该配置项支持管理员级别可见,用户级别不可见;值为USER时表示该配置项支持用户级别可见。range:配置项的取值范围,仅时间类型和整数类型的配置项会展示取值范围。config_level:配置项的最小生效级别,有LEVEL_GLOBAL和LEVEL_VIP两种取值。值为
LEVEL_GLOBAL时,表示该配置项为全局配置项。值为
LEVEL_VIP时,表示该配置项为多级配置项。
修改配置项
您可以使用以下方式修改 ODP 配置项。
在 ODP 启动时,启动命令中添加
-o选项修改配置项。-o <var_name> = <var_value>通过该方法修改配置项后,修改的值默认为全局生效。
在 ODP 运行时,使用
root@proxysys用户登录 ODP 后,执行alter proxyconfig命令修改 ODP 配置项。alter proxyconfig set <var_name> = <var_value>该命令仅可修改全局配置项的值,无法更改多级配置项的值及生效范围信息。
在 ODP 运行时,使用
root@proxysys用户登录 ODP 后,执行replace into命令增加/修改 ODP 配置项。执行
replace into命令修改配置项时需注意如下要求:执行
replace into命令修改配置项时,若该配置项在 ODP 中存在对应生效范围,replace into命令会修改配置项对应生效范围的值;若该配置项在 ODP 中不存在对应生效范围,replace into命令会新增对应生效范围的配置项。修改配置项时需遵循配置项的类别,不允许为全局配置项配置其他生效级别。
支持批量修改,批量修改时,单次修改配置项数量需不大于 200 个,且单条 SQL 长度不超过 1MB。对于需要修改大量配置项的场景,建议使用批量修改,性能更好。
修改多级配置项时,有如下几种情况:
修改除 VIP 级别外的其他级别配置时,无需配置
vid、vip和vport;若批量处理时涉及到这些配置,需将vid配置为-1,vip配置为空(''),vport配置为0。若配置为租户级别生效(
LEVEL_TENANT),必须配置tenant_name和cluster_name。若配置为集群级别生效(
LEVEL_CLUSTER),则必须配置cluster_name,并且tenant_name需为空。若配置为全局生效(
LEVEL_CLOBAL),tenant_name和cluster_name均需为空。
示例
以配置项
enable_cluster_checkout为例,启动时修改其值为False[admin@test ~]$ ./bin/obproxy -p 2883 -r'10.10.10.1:2881;10.10.10.2:2881;10.10.10.3:2881' -o enable_cluster_checkout=False -n test -c mycluster执行如下命令查看修改结果:
show proxyconfig all like 'enable_cluster_checkout';输出如下,
enable_cluster_checkout的值为False,且生效级别为LEVEL_GLOBAL。+------+------+-------+-------------+--------------+-------------------------+-------+--------------+ | vid | vip | vport | tenant_name | cluster_name | name | value | config_level | +------+------+-------+-------------+--------------+-------------------------+-------+--------------+ | -1 | | 0 | | | enable_cluster_checkout | False | LEVEL_GLOBAL | +------+------+-------+-------------+--------------+-------------------------+-------+--------------+以多级配置项
read_stale_retry_interval为例,为其配置集群级别生效的值obclient [(none)]> replace into proxy_config(cluster_name, name, value, config_level) values ('cluster_1', 'read_stale_retry_interval', '6s', 'LEVEL_CLUSTER');执行如下命令查看修改结果:
show proxyconfig all like 'read_stale_retry_interval';输出如下,新增
LEVEL_CLUSTER级别的信息。+------+------+-------+-------------+--------------+---------------------------+-------+---------------+ | vid | vip | vport | tenant_name | cluster_name | name | value | config_level | +------+------+-------+-------------+--------------+---------------------------+-------+---------------+ | -1 | | 0 | | | read_stale_retry_interval | 5s | LEVEL_GLOBAL | | -1 | | 0 | | cluster_1 | read_stale_retry_interval | 6s | LEVEL_CLUSTER | +------+------+-------+-------------+--------------+---------------------------+-------+---------------+以多级配置项
rootservice_cluster_name为例,为其批量配置不同生效级别的值obclient [(none)]> replace into proxy_config(vid, vip, vport, tenant_name, cluster_name, name, value, config_level) values ('1', '10.10.10.1', '2881','tenent_1','cluster_1', 'rootservice_cluster_name','value_1','LEVEL_VIP'), ('2', '10.10.10.1', '3881','tenent_1','cluster_1', 'rootservice_cluster_name','value_2','LEVEL_VIP'), ('-1','','0','tenant_2','cluster_2','rootservice_cluster_name','value_3','LEVEL_TENANT'), ('-1','','0','','cluster_3','rootservice_cluster_name','value_4','LEVEL_CLUSTER'), ('-1','','0','','cluster_4','rootservice_cluster_name','value_5','LEVEL_CLOBAL');执行如下命令查看修改结果:
show proxyconfig all like 'rootservice_cluster_name';输出如下,
replace into命令修改原本LEVEL_CLOBAL级别配置项的值,并新增了LEVEL_VIP、LEVEL_TENANT和LEVEL_CLUSTER级别的配置。+------+------------+-------+-------------+----------------+--------------------------+-----------+---------------+ | vid | vip | vport | tenant_name | cluster_name | name | value | config_level | +------+------------+-------+-------------+----------------+--------------------------+-----------+---------------+ | -1 | | 0 | | cluster_3 | rootservice_cluster_name | value_4 | LEVEL_CLUSTER | | -1 | | 0 | tenant_2 | cluster_2 | rootservice_cluster_name | value_3 | LEVEL_TENANT | | 1 | 10.10.10.1 | 2881 | tenent_1 | cluster_1 | rootservice_cluster_name | value_1 | LEVEL_VIP | | 2 | 10.10.10.1 | 3881 | tenent_1 | cluster_1 | rootservice_cluster_name | value_2 | LEVEL_VIP | | -1 | | 0 | | | rootservice_cluster_name | value_5 | LEVEL_CLOBAL | +------+------------+-------+-------------+----------------+--------------------------+-----------+---------------+以多级配置项
rootservice_cluster_name为例,修改其全局级别的值obclient [(none)]> alter proxyconfig set rootservice_cluster_name='obcluster';执行如下命令查看修改结果:
show proxyconfig all like 'rootservice_cluster_name';输出如下,
LEVEL_CLOBAL级别配置项的值由value_5更新为了obcluster。+------+------------+-------+-------------+----------------+--------------------------+-------------+---------------+ | vid | vip | vport | tenant_name | cluster_name | name | value | config_level | +------+------------+-------+-------------+----------------+--------------------------+-------------+---------------+ | -1 | | 0 | | cluster_3 | rootservice_cluster_name | value_4 | LEVEL_CLUSTER | | -1 | | 0 | tenant_2 | cluster_2 | rootservice_cluster_name | value_3 | LEVEL_TENANT | | 1 | 10.10.10.1 | 2881 | tenent_1 | cluster_1 | rootservice_cluster_name | value_1 | LEVEL_VIP | | 2 | 10.10.10.1 | 3881 | tenent_1 | cluster_1 | rootservice_cluster_name | value_2 | LEVEL_VIP | | -1 | | 0 | | | rootservice_cluster_name | obcluster | LEVEL_CLOBAL | +------+------------+-------+-------------+----------------+--------------------------+-------------+---------------+