关键字:
KingbaseES、数据库备份、sys_restore、人大金仓
备份工具sys_restore
KES数据库使用sys_retore工具实现数据库还原。从 sys_dump 创建的非文本格式归档恢复 KingbaseES 数据库的工具。它将发出必要的命令把该数据库重建成它被保存时的状态。这些归档文件还允许 sys_restore 选择恢复哪些内容或者在恢复前对恢复项重排序。这些归档文件被设计为可以在不同的架构之间迁移。
sys_restore 可以在两种模式下操作。如果指定了一个数据库名称,sys_restore 会连接那个数据库并且把归档内容直接恢复到该数据库中。否则,会创建一个脚本,其中包含着重建该数据库所必要的 SQL 命令,它会被写入到一个文件或者标准输出。这个脚本输出等效于 sys_dump 的纯文本输出格式。因此,一些控制输出的选项与 sys_dump 的选项类似。
sys_restore使用方法
sys_restore [connection-option...] [option...] [dbname]
必要参数说明:
filename
指定要恢复的归档文件(对于一个目录格式的归档则是目录)的位置。如果没有指定,则使用标准输入。
-a --data-only
只恢复数据,不恢复模式(数据定义)。如果在归档中存在,将恢复表数据、大对象和序列值。这个选项类似于指定 --section=data ,但是由于历史原因两者不完全相同。
-c --clean
在重新创建数据库对象之前清除(丢弃)它们(除非使用了 --if-exists ,如果有对象在目标数据库中不存在,这可能会生成一些无害的错误消息)。
-C --create
在恢复一个数据库之前先创建它。如果还指定了 --clean ,在连接到目标数据库之前丢弃并且重建它。
如果使用 --create ,sys_restore 还会恢复数据库的注释(如果有)以及与其相关的配置变量设置,也就是任何提到过这个数据库的 ALTER DATABASE ... SET ... 和 ALTER ROLE ... IN DATABASE ... SET ... 命令。不管是否指定 --no-acl ,都会恢复数据库本身的访问权限。在使用这个选项时, -d 提到的数据库只用于发出初始的 DROP DATABASE 和 CREATE DATABASE 命令。所有要恢复到该数据库名中的数据都出现在归档中
-d dbname --dbname=dbname
连接到数据库 ``dbname`` 并且直接恢复到该数据库中。
简单范例
sys_dump -Fc mydb > db.dump
把db.dump文件的内容还原到数据库mydb中