允许读存贮副本(enable_read_copy2)
📄字数 955
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
是否允许读存储副版本。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | BOOLEAN |
| 默认值 | FALSE |
| 取值范围 | TRUE,FALSE |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- 该参数对数据库单机无影响,单机环境只有一个数据版本。
- 该参数控制系统读取存储的行为。
| enable_read_copy2 | 作用及影响 |
|---|---|
| true | 允许读取存储的所有版本,如果版本在当前节点则直接读取,否则读取主版本,若所有版本均失效,系统上报 E19198 异常。 |
| false | 只能读取存储的主版本,主版本失效,系统上报 E19198 异常。 |
- 该参数通常与 major_retry_num 组合使用以处理不同的场景。
| - | enable_read_copy2 = true | enable_read_copy2 = false |
|---|---|---|
| major_retry_num = 0 | 某个全局存储的所有数据副本均失效, 上报 E19198 异常。 | 检测到某个全局存储的数据主副本失效,直接上报 E19198 异常。 |
| major_retry_num > 0 | 某个全局存储的所有数据副本均失效, 上报 E19198 异常。 | 连续检测到某个全局存储的数据主副本失效 major_retry_num 次, 上报 E19198 异常。 |
示例
sql
-- 在线修改 enable_read_copy2
SQL> set enable_read_copy2 to false;
-- 在线查看 enable_read_copy2
SQL> show enable_read_copy2;
/*
* 场景一:
* 1. enable_read_copy2 = false;
* 2. major_retry_num = 0;
* 3. seqscan_skip_err = false;
* 4. 3 存储节点集群,defaul_copy_num = 3;
* 5. 已知 t1 表的 204 存储主副本失效;
*/
SQL> SELECT * FROM t1; -- 检测到 204 存储主副本失效,立即上报 E19198
/*
* 场景二:
* 1. enable_read_copy2 = true;
* 2. major_retry_num = 0;
* 3. seqscan_skip_err = false;
* 4. 3 存储节点集群,defaul_copy_num = 3;
* 5. 已知 t1 表的 204 存储主副本失效;
*/
SQL> SELECT * FROM t1; -- 跳过 204 的主副本,访问 204 的其它副本,返回结果集。