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

4uqofj5v  于 2022-12-09  发布在  Go
关注(0)|答案(3)|浏览(163)

我有一个ArangoDB在本地运行,里面有来自几个不同项目的数据库、集合、数据和图表。我想备份所有的东西,这样我就可以重建我的系统。我知道如何备份单个数据库,但是因为我有很多数据库,所以我希望一次完成。
实际上,我在寻找ArangoDB的等价物

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

很明显,ArangoDB相当于

mysql -u root -p < alldb.sql

我也想知道。

uubf1zoe

uubf1zoe1#

从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

如果有一个用户对所有数据库都具有访问权限,则此操作有效。

q1qsirdb

q1qsirdb2#

虽然前面的脚本几乎是正确的,但它不能处理多个数据库,因为它会开始抱怨转储目录,并要求您在命令中添加--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
ippsafx7

ippsafx73#

  • 我偶然看到这个帖子,看到有一堆自定义解决方案。只是想提一下:*
    自Arango v.3.5.0起,arangodump(以及arangorestore)支持--all-databases true参数

arangodump得到了一个选项--all-databases,使其转储所有可用的数据库,而不是通过选项--server. database指定的单个数据库。
如果设置为true,则转储当前用户有权访问的所有可用数据库。选项--all-databases不能与选项--server. database一起使用。
当使用--all-databases时,arangodump将创建一个子目录,其中包含每个转储数据库的数据。数据库将一个接一个地转储。但是,在每个数据库内部,可以使用多个线程并行转储数据库的集合。转储所有数据库时,arangodump的一致性保证与单独转储多个单个数据库时相同。因此转储不提供数据的跨数据库一致性。
arangorestore获得了一个选项--all-databases,使其还原指定转储目录的子目录中的所有数据库,而不是仅还原通过选项--server. database指定的单个数据库。
使用arangorestore选项仅对使用arangodump和--all-databases选项创建的转储有意义。对于arangodump,不能同时使用--all-databases和--server.database选项调用arangorestore。此外,选项--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

相关问题