环境
数据库:KINGBASE (KingbaseES) V008R006C006B0013
操作系统:CentOS Linux release 7.9.2009 (Core)
备份命令:sys_dump -Usystem -d100 -v -f ./db_backup/db_100_20230411.dump
结果出现异常:
... ...
... ...
sys_dump: reading contexts
sys_dump: reading large objects
sys_dump: reading dependency data
sys_dump: saving encoding = UTF8
sys_dump: saving standard_conforming_strings = on
sys_dump: saving search_path = public
ERROR: -----------------------stack error start-----------------------
Program terminated with signal 11.
Core time:2023-04-07 20:42:20
#1 4191 0x452b61 backtrace_handler + 0xfb193e51
#2 4191 0x7f0310e8b400 <symbol not found> (libc.so.6)
#3 4191 0x7f0310ecc130 fileno_unlocked (libc.so.6)
#4 4191 0x40c3ca SetOutput + 0xef54029a
#5 4191 0x40ef06 RestoreArchive + 0xef542dd6
#6 4191 0x4374f7 KCIDump + 0xef56b3c7
#7 4191 0x7f0310e77555 __libc_start_main (libc.so.6)
#8 4191 0x408c69 _start + 0xef591809
ERROR: -----------------------stack error end-----------------------
段错误(吐核)
试了多次,包括新建库也不可以,一开始以为saving search_path = public这一句导致的异常,网上扒了好久也没有找到结果。
随后又找了另外一台数据库服务器(环境一样),同样的命令结果备份正常,输出如下:
... ...
... ...
sys_dump: reading contexts
sys_dump: reading large objects
sys_dump: reading dependency data
sys_dump: saving encoding = UTF8
sys_dump: saving standard_conforming_strings = on
sys_dump: saving search_path = public
sys_dump: creating SCHEMA "100"
sys_dump: creating EXTENSION "plsql_plprofiler"
sys_dump: creating COMMENT "EXTENSION plsql_plprofiler"
sys_dump: creating TABLE "100.TABLE01"
sys_dump: creating TABLE "100.TABLE02"
sys_dump: creating TABLE "100.TABLE03"
... ...
... ...
对比之后才发现,问题应该出在sys_dump: creating SCHEMA 100,找相关领域的老师咨询了下,问题可能是db_backup目录没有写权限,确认了一下,果不其然,至此破案!!!