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

openGauss 删除xlog后数据库启动失败

原创 张玉龙 2023-06-07
1906
  • openGauss数据库进行压力测试,因虚拟环境,磁盘未分配太多空间,导致xlog增长,空间不足,数据库宕机。
  • 手动rm删除了全部xlog文件,启动数据库失败,报错 failed to translate name to xlog in GetOldestXLOGSegNo:
[omm@cmdb ~]$ gs_ctl start [2023-06-07 22:49:27.747][10344][][gs_ctl]: gs_ctl started,datadir is /enmo/cmdb/100/data [2023-06-07 22:49:30.425][10344][][gs_ctl]: waiting for server to start... .0 LOG: [Alarm Module]can not read GAUSS_WARNING_TYPE env. 0 LOG: [Alarm Module]Host Name: cmdb ...0 LOG: [Alarm Module]Host IP: 172.20.10.10 0 LOG: [Alarm Module]Cluster Name: cmdb 0 LOG: [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 57 0 WARNING: failed to open feature control file, please check whether it exists: FileName=gaussdb.version, Errno=2, Errmessage=No such file or directory. 0 WARNING: failed to parse feature control file: gaussdb.version. 0 WARNING: Failed to load the product control file, so gaussdb cannot distinguish product version. 2023-06-07 22:49:34 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [REDO] LOG: Recovery parallelism, cpu count = 4, max = 4, actual = 4 2023-06-07 22:49:34 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [REDO] LOG: ConfigRecoveryParallelism, true_max_recovery_parallelism:4, max_recovery_parallelism:4 2023-06-07 22:49:34 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]can not read GAUSS_WARNING_TYPE env. 2023-06-07 22:49:34 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]Host Name: cmdb ......2023-06-07 22:49:40 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]Host IP: 172.20.10.10 2023-06-07 22:49:40 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]Cluster Name: cmdb 2023-06-07 22:49:40 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 57 2023-06-07 22:49:40 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: loaded library "security_plugin" 2023-06-07 22:49:40 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2023-06-07 22:49:40 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2023-06-07 22:49:40 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] WARNING: No explicit IP is configured for listen_addresses GUC. 2023-06-07 22:49:40 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: InitNuma numaNodeNum: 1 numa_distribute_mode: none inheritThreadPool: 0. 2023-06-07 22:49:40 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] WARNING: Failed to initialize the memory protect for g_instance.attr.attr_storage.cstore_buffers (16 Mbytes) or shared memory (3711 Mbytes) is larger. 2023-06-07 22:49:41 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] FATAL: failed to translate name to xlog in GetOldestXLOGSegNo. 2023-06-07 22:49:41 CST [139861737155648] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: FiniNuma allocIndex: 0. .[2023-06-07 22:49:42.069][10344][][gs_ctl]: waitpid 10347 failed, exitstatus is 256, ret is 2 [2023-06-07 22:49:42.069][10344][][gs_ctl]: stopped waiting [2023-06-07 22:49:42.069][10344][][gs_ctl]: could not start server Examine the log output.
  • 修复方法,使用pg_resetxlog
[omm@cmdb ~]$ pg_resetxlog /enmo/cmdb/100/data The database server was not shut down cleanly. Resetting the transaction log might cause data to be lost. If you want to proceed anyway, use -f to force reset. [omm@cmdb ~]$ pg_resetxlog /enmo/cmdb/100/data -f Transaction log reset
  • 启动数据库
[omm@cmdb ~]$ gs_ctl start [2023-06-07 23:03:07.860][10486][][gs_ctl]: gs_ctl started,datadir is /enmo/cmdb/100/data [2023-06-07 23:03:07.931][10486][][gs_ctl]: waiting for server to start... .0 LOG: [Alarm Module]can not read GAUSS_WARNING_TYPE env. 0 LOG: [Alarm Module]Host Name: cmdb ......0 LOG: [Alarm Module]Host IP: 172.20.10.10 0 LOG: [Alarm Module]Cluster Name: cmdb 0 LOG: [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 57 0 WARNING: failed to open feature control file, please check whether it exists: FileName=gaussdb.version, Errno=2, Errmessage=No such file or directory. 0 WARNING: failed to parse feature control file: gaussdb.version. 0 WARNING: Failed to load the product control file, so gaussdb cannot distinguish product version. 2023-06-07 23:03:14 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [REDO] LOG: Recovery parallelism, cpu count = 4, max = 4, actual = 4 2023-06-07 23:03:14 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [REDO] LOG: ConfigRecoveryParallelism, true_max_recovery_parallelism:4, max_recovery_parallelism:4 2023-06-07 23:03:14 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]can not read GAUSS_WARNING_TYPE env. 2023-06-07 23:03:14 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]Host Name: cmdb ......2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]Host IP: 172.20.10.10 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]Cluster Name: cmdb 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 57 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: loaded library "security_plugin" 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] WARNING: No explicit IP is configured for listen_addresses GUC. 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: InitNuma numaNodeNum: 1 numa_distribute_mode: none inheritThreadPool: 0. 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] WARNING: Failed to initialize the memory protect for g_instance.attr.attr_storage.cstore_buffers (16 Mbytes) or shared memory (3711 Mbytes) is larger. 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [CACHE] LOG: set data cache size(12582912) 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [CACHE] LOG: set metadata cache size(4194304) 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [SEGMENT_PAGE] LOG: Segment-page constants: DF_MAP_SIZE: 8156, DF_MAP_BIT_CNT: 65248, DF_MAP_GROUP_EXTENTS: 4175872, IPBLOCK_SIZE: 8168, EXTENTS_PER_IPBLOCK: 1021, IPBLOCK_GROUP_SIZE: 4090, BMT_HEADER_LEVEL0_TOTAL_PAGES: 8323072, BktMapEntryNumberPerBlock: 2038, BktMapBlockNumber: 25, BktBitMaxMapCnt: 512 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: gaussdb: fsync file "/enmo/cmdb/100/data/gaussdb.state.temp" success 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: create gaussdb state file success: db state(STARTING_STATE), server mode(Normal), connection index(1) 2023-06-07 23:03:20 CST [139673425472576] = user=[unknown],db=[unknown],app=[unknown],client=localhost 0 [BACKEND] LOG: max_safe_fds = 99976, usable_fds = 100000, already_open = 14 .......................................... [2023-06-07 23:04:03.072][10486][][gs_ctl]: done [2023-06-07 23:04:03.072][10486][][gs_ctl]: server started (/enmo/cmdb/100/data)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论