如何使用 ArangoDB 转储所有数据库

问题描述 投票:0回答:4

我在本地运行 ArangoDB,其中包含来自多个不同项目的数据库、集合、数据和图表。我想备份所有内容,以便重建系统。我知道如何备份单个数据库,但因为我有一堆数据库,所以我希望一次性完成此操作。

本质上,我正在寻找相当于

的ArangoDB
mysqldump -u root -p --all-databases > alldb.sql

显然 ArangoDB 相当于

mysql -u root -p < alldb.sql

也很高兴知道。

arangodb database-backups
4个回答
2
投票

从 3.3 版本开始,arangodump 不支持一次转储所有数据库。这是每个数据库的。

要使其转储所有数据库,可以在所有数据库上循环调用它,例如

# loop over all databases
for db in `arangosh --javascript.execute-string "db._databases().forEach(function(db) { print(db); });"` # host, user and password go here...
  do
    arangodump --sever.database "$db" # host, user and password go here...
  done

如果有一个用户拥有所有数据库的访问权限,这将起作用。


0
投票

虽然前面的脚本几乎是正确的,但它不适用于多个数据库,因为它会开始抱怨转储目录,并要求您将

--overwrite true
添加到命令中。这也不会起作用,因为它只会输出最新的数据库。

我们使用以下脚本,该脚本与 stj 的答案略有不同(或者至少以下是备份过程的一部分)来获取我们拥有的所有数据库的转储:

USER=...
PASSWORD=...
for db in $(arangosh --server.username "$USER" --server.password "$PASSWORD" --javascript.execute-string "db._databases().forEach(function(db) { print(db); });")
do
  arangodump --output-directory ~/dump/"$db" --overwrite true --server.username "$USER" --server.password "$PASSWORD" --server.database "$db" 
done

0
投票

我遇到了这个线程,发现有很多自定义解决方案。只是想提一下:

从 Arango v.3.5.0 开始,arangodump(以及 arangorestore)支持

--all-databases true
参数

arangodump 有一个选项 --all-databases 来转储所有可用的数据库,而不是仅通过选项 --server.database 指定的单个数据库。

设置为 true 时,这会使 arangodump 转储当前用户有权访问的所有可用数据库。选项 --all-databases 不能与选项 --server.database 结合使用。

当使用--all-databases时,arangodump将创建一个子目录,其中包含每个转储数据库的数据。数据库将被一个接一个地转储。但是,在每个数据库内部,可以使用多个线程并行转储数据库的集合。转储所有数据库时,arangodump 的一致性保证与单独转储多个单个数据库时相同,因此转储不提供数据的跨数据库一致性。

arangorestore 有一个选项 --all-databases 使其从指定转储目录的子目录中恢复所有数据库,而不是仅通过选项 --server.database 指定的单个数据库。

使用 arangorestore 选项仅对使用 arangodump 和 --all-databases 选项创建的转储有意义。对于 arangodump,arangorestore 不能同时使用 --all-databases 和 --server.database 这两个选项调用。此外,选项 --force-same-database 不能与 --all-databases 一起使用。

如果目标服务器上不存在要恢复的数据库,则除非为arangorestore也指定了选项--create-database,否则恢复数据将失败。请注意,在这种情况下,必须使用有权访问 _system 数据库的数据库用户,以便在恢复时创建数据库。

参考:https://www.arangodb.com/docs/stable/release-notes-new-features35.html#dump-and-restore-all-databases


0
投票

转储全部使用

arangodump --all-databases true
,您可以使用
arangorestore --all-databases true
恢复它。

© www.soinside.com 2019 - 2024. All rights reserved.