云数据库 GAUSSDB-数据损坏检测修复函数:gs_repair_page(path text, blocknum oid, is_segment bool, timeout int)

时间:2025-06-03 09:36:18

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
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0410.html