关键词:
KingbaseES、人大金仓、sys_dump
1、sys_dump简介
kingbaseES数据库提供了sys_dump、sys_dumpall工具进行数据库的逻辑备份。两者的功能差不多,只是sys_dumpall是将一个kingbaseES数据库集群全部转储到一个脚本文件中,而sys_dump命令可以选择一个数据库或部分表进行备份。在此不对sys_dumpall进行介绍。
sys_dump甚至可以在数据库正在使用时进行完整一致的备份,它并不阻塞其他用户对数据库的访问(读或写)。
sys_dump生成的备份文件可以是一个SQL脚本文件或归档文件。SQL 脚本文件是一个纯文本格式的文件,它包含许多 SQL命令,执行这些 SQL命令可以重建该数据库,并将之恢复到保存成脚本时的状态。使用 ksql程序来执行这个SQL脚本文件即可恢复数据,它们甚至可以在其他机器或其他硬件体系的机器上重建该数据库,对脚本进行一些修改后,还可以在非kingbaseES的数据库上执行这个SQL脚本文件而重建备份的表。重建数据库时,归档格式的备份文件必须和sys_restore一起使用,它允许sys_restore选择恢复哪些数据,甚至可以在恢复之前对需要恢复的条目重新排序。归档格式的备份文件也可设计成能够跨平台移植的。
sys_dump可生成归档格式的备份文件,然后与sys_restore配合使用,从而提供一种灵活的备份和恢复机制。sys_dump可以将整个数据库备份到一个归档格式的备份文件中,而sys_restore则可从这个归档格式的备份文件中选择性地恢复部分表或数据库对象。归档格式的备份文件又分为两种,最灵活的输出文件格式是“custom”自定义格式(使用命令项参数-Fc来指定),它允许对归档元素进行选取和重新排列,并且默认时是压缩的;另一种格式是tar 格式(使用命令项参数-Ft来指定),这种格式的文件不是压缩的,并且加载时不能重排列,但是它也很灵活,可以用标准UNIX下的tar 工具进行处理。通常使用“custom”自定义格式。
2、sys_dump命令
运行sys_dump时,应该检查输出,看看是否有警告存在。
sys_dump命令格式如下:
sys_dump [connection-option…] [option…] [dbname]
sys_dump连接选项的基础参数如下:
· -h host: 指定运行服务器的主机名。如果以斜杠开头,则被用作到 UNIX 域套接字的路径.
· -p port: 指定服务器正在侦听的TCP端口或本地UNIX 域套接字文件的扩展。
· -U username:指定要连接的用户名。
· -w:永远不提示输入口令。
· -W: 强制sys_dump在连接到一个数据库之前提示密码。
· --role=rolename:该选项会导致sys_dump在连接到数据库时发布一个SET ROLE rolename 命令。这相当于切换到另一个角色。当已验证的用户缺少sys_dump需要的权限时,可以使用这个功能切换到一个相应权限的角色。
· dbname: 指定连接的数据库名,实际上也是要备份的数据库名。如果没有使用这个参数,则使用环境变量SPGDATABASE。如果 SPGDATABASE也没声明,那么可使用发起连接的用户名。