云数据库 GAUSSDB-数据损坏检测修复函数:gs_verify_data_file(verify_segment bool)
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文件。以下示例,第一个是校验非段页式表的示例,第二是校验段页式表的示例。
参数说明:
返回值类型: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