云数据库 GAUSSDB-数据损坏检测修复函数:gs_verify_data_file(verify_segment bool)

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

gs_verify_data_file(verify_segment bool)

描述:校验当前实例当前库是否存在文件丢失的情况。校验只包括数据表主文件是否有中间段丢失的情况。默认参数是false,表示不校验段页式表数据文件。参数设置为true时仅校验段页式表文件。默认只有初始用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以查看,其余用户需要赋权后才可以使用。

返回的结果:

  • 非段页式表:rel_oid和rel_name是对应文件的表oid和表名,miss_file_path表示丢失文件的相对路径。
  • 段页式表:因所有表存放在相同文件中,所以rel_oid和rel_name无法显示具体表的信息。对于段页式表,如果第一个文件损坏,不会检查出后面的.1 .2等文件。例如3、3.1、3.2损坏,只能检查出3损坏。当段页式文件不足5个时,使用函数检测时,未生成的文件也会校验出来,例如只有1和2文件,校验段页式时,也会检测出3,4,5文件。以下示例,第一个是校验非段页式表的示例,第二是校验段页式表的示例。

参数说明:

  • verify_segment

    指定文件校验的范围。false校验非段页式表;true校验段页式表。

    取值范围:true和false,默认是false。

返回值类型:record

示例(仅当发现有异常时才会输出异常行,否则输出0行):

校验非段页式表

gaussdb=# SELECT * FROM gs_verify_data_file();
node_name         | rel_oid |  rel_name    |  miss_file_path
------------------+---------+--------------+------------------
dn_6001_6002_6003 |   16554 |     test     | base/16552/24745

校验段页式表

gaussdb=# SELECT * FROM gs_verify_data_file(true);
     node_name     | rel_oid | rel_name | miss_file_path
-------------------+---------+----------+----------------
 dn_6001_6002_6003 |       0 | none     | base/16573/2
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0410.html