人大金仓数据库KingbaseES 数据库还原

285 阅读2分钟

关键字:

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中