OceanBase 数据库支持通过 election_blacklist_interval 来配置 leader 黑名单的持续时间。
适用版本
OceanBase 数据库所有版本。
election_blacklist_interval 配置项
在系统运行过程中,可能存在某些场景中 replica 上的副本均不能提供正常的读写服务,此时,leader 副本会触发主动卸任,进行无主选举,将其他副本选举为新的副本 leader,避免长时间影响业务。
election_blacklist_interval
用于配置 OceanBase 数据库 leader 黑名单的持续时间。当 leader 主动发生卸任后,从当前时间开始计时,后续
election_blacklist_interval
时间内,此副本保证不会被改选成 leader。其中,
election_blacklist_interval
默认为 30 分钟。
有关
election_blacklist_interval
的详细信息,请参见《OceanBase 数据库 参考指南》中的 系统配置项 章节。
配置方法
通过
__all_virtual_election_info
表可以查询加入选举黑名单的 replica,其中
remaining_time_in_blacklist
表示距离离开黑名单剩余多少时间。
obclient> SELECT table_id, partition_idx, remaining_time_in_blacklist FROM __all_virtual_election_info WHERE remaining_time_in_blacklist > 0 LIMIT 10; ±--------------±--------------±----------------------------+ | table_id | partition_idx | remaining_time_in_blacklist | ±--------------±--------------±----------------------------+ | 1099511627780 | 9 | 1497435311 | | 1099511627933 | 8 | 1498425041 | | 1099511627882 | 11 | 1497635642 | | 1099511627896 | 14 | 1498875464 | | 1099511627922 | 1 | 1498415864 | | 1099511627779 | 4 | 1498645978 | | 1099511627888 | 4 | 1498725294 | | 1099511627888 | 9 | 1497755128 | | 1099511627930 | 0 | 1497895282 | | 1099511627941 | 6 | 1498836165 | ±--------------±--------------±----------------------------+ 10 rows in set (0.00 sec)
将
election_blacklist_interval
设置为 0 后,OceanBase 数据库会关闭选举黑名单功能,并且上述 partition 会立即移出黑名单。
obclient> ALTER SYSTEM SET election_blacklist_interval = 0; Query OK, 0 rows affected (0.01 sec) obclient> SELECT table_id, partition_idx, remaining_time_in_blacklist FROM __all_virtual_election_info WHERE remaining_time_in_blacklist > 0 LIMIT 10; Empty set (0.01 sec)