暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GaussDB 启动报错:FATAL: fail to read indextbl maxnum 怎么处理呢

uuuu 2023-11-03
1105

数据库集群信息:

gs_om -t status --detail
[  CMServer State   ]

node node_ip instance state

1 gsnode1 172.18.183.119 1 /paas/DB_LAB/cmserver/cm_server Down 2 gsnode2 172.18.183.120 2 /paas/DB_LAB/cmserver/cm_server Standby 3 gsnode3 172.18.183.121 3 /paas/DB_LAB/cmserver/cm_server Primary

[ Cluster State ]

cluster_state : Degraded redistributing : No balanced : No current_az : AZ_ALL

[ Datanode State ]

node node_ip instance state

1 gsnode1 172.18.183.119 6001 /paas/DB_LAB/data P Down Unknown 2 gsnode2 172.18.183.120 6002 /paas/DB_LAB/data S Primary Normal 3 gsnode3 172.18.183.121 6003 /paas/DB_LAB/data S Standby Normal


单节点直接重启失败,计划直接重做下,但是也出现同样的问题



gs_ctl build -D /paas/DB_LAB/data -b standby_full


2023-10-25 17:44:21.141 6538e374.1 [unknown] 140143166647360 [unknown] 0 dn_6001_6002_6003 00000  0 [BACKEND] LOG:  create gaussdb state file success: db state(STARTING_STATE), server mode(Standby), connection index(1) 


2023-10-25 17:44:21.142 6538e374.1 [unknown] 140143166647360 [unknown] 0 dn_6001_6002_6003 00000  0 [BACKEND] LOG:  max_safe_fds = 972, usable_fds = 1000, already_open = 18 

The core dump path is an invalid directory 

..........[2023-10-25 17:44:31.228][16336][dn_6001_6002_6003][gs_ctl]:  gaussDB state is Coredump 

[2023-10-25 17:44:31.228][16336][dn_6001_6002_6003][gs_ctl]: stopped waiting 

[2023-10-25 17:44:31.228][16336][dn_6001_6002_6003][gs_ctl]: could not start server 

Examine the log output. 

[2023-10-25 17:44:31.228][16336][dn_6001_6002_6003][gs_ctl]: fopen build pid file "/paas/DB_LAB/data/gs_build.pid" success 

[2023-10-25 17:44:31.228][16336][dn_6001_6002_6003][gs_ctl]: fprintf build pid file "/paas/DB_LAB/data/gs_build.pid" success 

[2023-10-25 17:44:31.243][16336][dn_6001_6002_6003][gs_ctl]: fsync build pid file "/paas/DB_LAB/data/gs_build.pid" success 


数据库日志:


2023-10-25 17:44:30.690 6538e374.1 [unknown] 140143166647360 [unknown] 0 dn_6001_6002_6003 00000 0 [BACKEND] LOG: audit_process_cxt_init enter 2023-10-25 17:44:30.690 6538e374.1 [unknown] 140143166647360 [unknown] 0 dn_6001_6002_6003 00000 0 [BACKEND] LOG: audit_process_cxt_init pipe init successfully for pipe : 0 file descriptor: 86 2023-10-25 17:44:30.690 6538e374.1 [unknown] 140143166647360 [unknown] 0 dn_6001_6002_6003 58000 0 [BACKEND] FATAL: fail to read indextbl maxnum 2023-10-25 17:44:30.691 6538e375.10000 [unknown] 140134870152960 dn_6001 0 dn_6001_6002_6003 00000 0 [BACKEND] LOG: [Alarm Module]alarm checker shutting down... 2023-10-25 17:44:30.858 6538e374.1 [unknown] 140143166647360 [unknown] 0 dn_6001_6002_6003 00000 0 [BACKEND] LOG: FiniNuma allocIndex: 0. 2023-10-25 17:44:30.861 6538e374.1 [unknown] 140143166647360 [unknown] 0 dn_6001_6002_6003 00000 0 [BACKEND] LOG: Gaussdb exit(1)




回答:

"FATAL: fail to read indextbl maxnum"错误是GaussDB数据库启动时遇到的严重错误之一。该错误通常表示数据库在读取索引表的最大数量时发生了问题。处理此错误的步骤如下: 

 

1. 检查数据库配置文件:首先,确保数据库的配置文件(通常是postgresql.conf)中的相关参数设置正确。特别关注与索引表和最大数量相关的配置项,例如`max_index_keys`、`max_locks_per_transaction`等。确保这些参数的值符合您的应用需求并且没有被意外修改。 

 

2. 检查数据库文件完整性:该错误可能是由于数据库文件损坏或不完整导致的。运行数据库的完整性检查工具,例如GaussDB提供的工具或者PostgreSQL提供的工具(如`pg_verify_checksums`、`pg_resetxlog`等),来验证数据库文件的完整性并尝试修复任何损坏的文件。 

 

3. 恢复备份:如果数据库文件损坏无法修复,您可以考虑使用最近的备份文件进行恢复。确保您有可靠的数据库备份策略,并按照备份恢复的步骤进行操作。 

 

4. 寻求专业支持:如果以上步骤无法解决问题,建议联系GaussDB或PostgreSQL的官方支持团队,向他们报告该错误并获取进一步的指导和支持。 

 

请注意,处理数据库错误需要小心谨慎,并且在执行任何操作之前,务必备份数据库文件以防止进一步的数据丢失。 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论