ArangoDB学习(一)--Programs&Tools(5):Arangodump

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27668313/article/details/87879787

参考官方文档:https://docs.arangodb.com/3.4/Manual/Programs/Arangodump/Examples.html

Arangodump是命令行客户端工具,用于备份存储在ArangoDB中的数据及其结构。Arangodump适用于所有的开发模式,可以选择性的备份数据库中的集合,也可以只备份集合的结构而不包括数据,或者只备份数据而不包括结构。企业版的Arangodb还可以对备份加密。

首先打开终端,进入ArangoDB安装目录下,运行如下命令就可以启动Arangodump。

这条命令会连接到系统数据库,把库中的所有非系统collections备份到文件dump下。如果dump已经存在,备份会失败,这是为了阻止覆盖已备份的数据,可以在命令后添加‘—overwrite true’覆盖dump下的数据。

修改arangodump后面的参数,可以指定地址和数据库,还可以使用认证:

下面命令中指定从tcp://127.0.0.1:8529备份数据,用户名为root,数据库为delink_graph,备份到目录”delink_graph_dump”下。

终端输出信息如下:

然后在安装目录下就会出现delink_graph_dump文件夹,里面是备份的数据,如下:

每个collection都有两个文件,第一个文件存储数据,后缀是.data.json,第二个文件存储结构信息,后缀是.structure.json。查看文件名后缀就能发现。数据文件中的每一行都是文档插入/更新或删除标记,以及一些元数据。每个结构文件将包含一个具有以下属性的JSON对象:

默认情况下,会备份数据库中所有非系统collections及其结构信息。可以添加参数只备份collections中的数据,也可以备份系统collections。

下面命令只备份collections结构信息而不包括数据,

终端输出信息如下,最后一行没有write xxxx bytes说明没有备份数据:

Delink_graph_no_data文件夹下文件如下,

 

相比之前的备份,这里出现了很多0kB文件,这些文件本来是要存储备份数据的。

还可以指定备份某些collection,增加参数如下:

在dump_some_collection文件夹下可以看到备份的三个collection。

从3.1.17版本后,可以通过复制已有collection来创建新的collection,备份这样的collection时使用上面的方法会报错。如下所示,命令中要求备份clonedCollection,而它是通过复制创建的,

报错信息如下:

ERROR Collection clonedCollection's shard distribution is based on a that of collection prototypeCollection, which is not dumped along. You may dump the collection regardless of the missing prototype collection by using the --ignore-distribute-shards-like-errors parameter.

解决方法有两种,第一种是同时备份原型collection,如下,prototypeCollection是clonedCollection的原型:

第二种方法是忽略报错信息:

arangodump --collection clonedCollection --output-directory "dump" --ignore-distribute-shards-like-errors

企业版的ArangoDB可以对备份文件使用AES加密。加密时需要一份密钥文件,密钥是32字节的数据,密钥文件可以通过其他程序产生,ArangoDB不提供密钥,在Linux上可以用以下命令行产生一个密钥文件。密钥文件自行保存在安全地方。

备份时增加参数‘--encryption.keyfile  ~/SECRET-KEY’,即可对文件加密,~/SECRET-KEY是密钥文件地址。ArangoDB会在备份文件夹下生成ENCRYPTION文件,里面存储的是加密方法,在恢复备份文件时arangorestore会查看这个文件,确认数据是否是加密备份的,如果是,则恢复时要使用同样的密钥文件对数据解密才能正常恢复。

要生成日志文件增加参数‘--log.output file://<filename>’

更多参数详情:

https://docs.arangodb.com/3.4/Manual/Programs/Arangodump/Options.html

猜你喜欢

转载自blog.csdn.net/qq_27668313/article/details/87879787