kingbase 启动报错 内存不足

导入大数据量到kingbase数据库,然后重启报错了

2023-08-08 11:29:01 CST [2636829]: [1-1] user=,db=,client=LOG:  sepapower extension initialized
2023-08-08 11:29:01 CST [2636829]: [2-1] user=,db=,client=LOG:  starting KingbaseES V008R006C007B0012 on aarch64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.9.1-16kord6) 4.9.1, 64-bit
2023-08-08 11:29:01 CST [2636829]: [3-1] user=,db=,client=LOG:  listening on IPv4 address "0.0.0.0", port 54321
2023-08-08 11:29:01 CST [2636829]: [4-1] user=,db=,client=LOG:  listening on IPv6 address "::", port 54321
2023-08-08 11:29:01 CST [2636829]: [5-1] user=,db=,client=LOG:  listening on Unix socket "/tmp/.s.KINGBASE.54321"
2023-08-08 11:29:01 CST [2636829]: [6-1] user=,db=,client=FATAL:  could not map anonymous shared memory: Cannot allocate memory
2023-08-08 11:29:01 CST [2636829]: [7-1] user=,db=,client=HINT:  This error usually means that Kingbase's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently 71782088704 bytes), reduce Kingbase's shared memory usage, perhaps by reducing shared_buffers or max_connections.
2023-08-08 11:29:01 CST [2636829]: [8-1] user=,db=,client=LOG:  database system is shut down

提示内存需要分配 67G内存。不知道为什么要这么大的内存。是把数据都装进内存了么

              total        used        free      shared  buff/cache   available
Mem:            254         191          54           5           8          39
Swap:             0           0           0

本机 可以用 只剩下 54G。
shared_buffers 不管设多设少都启动不了。
请问有什么办法可以让他启动成功。或者没有启动的状态下,能否删掉导入的大量数据的那个数据库。

援引GPT回答:
根据错误日志,报错信息显示Kingbase请求的共享内存段超过了可用内存大小,导致无法启动数据库。根据提示,你可以尝试以下方法来解决问题:

  1. 减少shared_buffers的大小:根据提示,减少shared_buffers的大小可能有助于减少Kingbase的共享内存使用量。你可以在数据库配置文件中找到shared_buffers参数,并将其值减小,然后重新启动数据库。

  2. 减少max_connections的数量:同样,减少max_connections的数量也可以减少Kingbase的共享内存使用量。你可以在数据库配置文件中找到max_connections参数,并将其值减小,然后重新启动数据库。

  3. 增加可用内存:如果你的系统内存不足以满足Kingbase的需求,你可以考虑增加系统的物理内存或者启用交换空间(swap space)来提供额外的虚拟内存。

如果以上方法无法解决问题,你可以尝试删除导入大量数据的数据库。首先,停止数据库服务,然后删除数据库文件和目录。具体步骤如下:

  1. 停止数据库服务:

    sudo systemctl stop kingbase
    
  2. 删除数据库文件和目录(请注意,这将删除整个数据库):

    sudo rm -rf /var/lib/kingbase
    
  3. 启动数据库服务:

    sudo systemctl start kingbase
    

请确保在执行删除数据库的操作之前,备份重要数据。