云数据库 GAUSSDB-数据损坏检测修复函数:gs_repair_page(path text, blocknum oid, is_segment bool, timeout int)
云数据库 GAUSSDB-数据损坏检测修复函数:gs_repair_page(path text, blocknum oid, is_segment bool, timeout int)
gs_repair_page(path text, blocknum oid, is_segment bool, timeout int)
描述:修复本实例指定页面,仅支持有正常主备连接的主DN使用。页面修复成功返回true,修复过程中出错会有报错信息提示。默认只有在主DN节点上,使用初始化用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以查看,其余用户需要赋权后才可以使用。
注意:当DN实例上存在页面损坏时,进行升主会校验出错,报PANIC退出无法升主,为正常现象。不支持hashbucket表、压缩表页面损坏的修复。
参数说明:
- path
损坏页面的路径。根据local_bad_block_info中file_path一列设置,或者是gs_verify_and_tryrepair_page函数中path一列设置。
取值范围:字符串。
- blocknum
损坏页面的页面号。根据local_bad_block_info中block_num一列设置,或者是gs_verify_and_tryrepair_page函数中blocknum一列设置。
取值范围:Oid,0 - 4294967295。注意:输入负值等都会被强制转成非负整数类型。
- is_segment
是否是段页式表。根据local_bad_block_info中的bucket_node列值决定,如果bucket_node为-1时,表示不是段页式表,将is_segment设置为false;非-1的情况将is_segment设置为true。支持段页式存储。
取值范围:bool,true或者false。
- timeout
等待备DN回放的时长。修复页面需要等待备DN回放到当前主DN对应的位置,根据备DN回放所需时长设定。
取值范围:60s - 3600s。
返回值类型:Boolean
示例(请根据local_bad_block_info的输出传参,否则报错):
页式存储:
gaussdb=# SELECT * FROM gs_repair_page('base/16552/24745',0,false,60);
result
--------
t
段页式存储:
gaussdb=# SELECT * FROM gs_repair_page('base/16552/1',4494,true,60);
result
--------
t