介绍
OrientDB 是一个多模型的 NoSQL 数据库,支持图形和文档数据库。 它是一个 Java 应用程序,可以在任何操作系统上运行。 它还完全符合 ACID,支持多主复制。 它由同名公司开发,具有企业版和社区版。
在本文中,我们将使用 GratefulDeadConcerts 数据库来演示如何导出和导入 OrientDB 数据库。 每次安装 OrientDB 时都会附带该数据库,因此您不必创建新数据库。
先决条件
要完成本教程,您将需要以下内容:
- Ubuntu 14.04 Droplet(参见初始设置指南)
- 使用 安装的 OrientDB 最新版本如何在 Ubuntu 14.04 上安装和配置 OrientDB
如果你所有这些东西都到位,让我们开始吧。
第 1 步 — 导出现有的 OrientDB 数据库
要导入 OrientDB 数据库,您必须先导出要导入的 DB。 在这一步中,我们将导出我们需要导入的数据库。
如果 OrientDB 没有运行,启动它:
sudo service orientdb start
如果您不确定它是否正在运行,您可以随时检查其状态:
sudo service orientdb status
然后使用 OrientDB 控制台连接到服务器:
sudo -u orientdb /opt/orientdb/bin/console.sh
输出应该是:
OutputOrientDB console v.2.1.3 (build UNKNOWN@r; 2015-10-04 10:56:30+0000) www.orientdb.com Type 'help' to display all the supported commands. Installing extensions for GREMLIN language v.2.6.0 orientdb>
连接到您要导出的数据库。 在这里,我们使用数据库的默认用户 admin 及其密码 admin 连接到 GratefulDeadConcerts 数据库:
connect plocal:/opt/orientdb/databases/GratefulDeadConcerts admin admin
你应该看到这样的输出:
OutputConnecting to database [plocal:/opt/orientdb/databases/GratefulDeadConcerts] with user 'admin'...OK orientdb {db=GratefulDeadConcerts}>
或者,您也可以使用远程模式连接到数据库,这允许多个用户访问同一个数据库。
connect remote:127.0.0.1/GratefulDeadConcerts admin admin
连接输出应该是这样的:
OutputDisconnecting from the database [null]...OK Connecting to database [remote:127.0.0.1/GratefulDeadConcerts] with user 'admin'...OK orientdb {db=GratefulDeadConcerts}>
现在,导出数据库。 export
命令将当前数据库导出为 gzip 压缩的 JSON 文件。 在本例中,我们将其导出到 OrientDB 的数据库目录 /opt/orientdb/databases
:
export database /opt/orientdb/databases/GratefulDeadConcerts.export
目标数据库的完整导出命令输出为:
OutputExporting current database to: database /opt/orientdb/databases/GratefulDeadConcerts.export in GZipped JSON format ... Started export of database 'GratefulDeadConcerts' to /opt/orientdb/databases/GratefulDeadConcerts.export.gz... Exporting database info...OK Exporting clusters...OK (15 clusters) Exporting schema...OK (14 classes) Exporting records... - Cluster 'internal' (id=0)...OK (records=3/3) - Cluster 'index' (id=1)...OK (records=5/5) - Cluster 'manindex' (id=2)...OK (records=1/1) - Cluster 'default' (id=3)...OK (records=0/0) - Cluster 'orole' (id=4)...OK (records=3/3) - Cluster 'ouser' (id=5)...OK (records=3/3) - Cluster 'ofunction' (id=6)...OK (records=0/0) - Cluster 'oschedule' (id=7)...OK (records=0/0) - Cluster 'orids' (id=8)...OK (records=0/0) - Cluster 'v' (id=9).............OK (records=809/809) - Cluster 'e' (id=10)...OK (records=0/0) - Cluster 'followed_by' (id=11).............OK (records=7047/7047) - Cluster 'written_by' (id=12).............OK (records=501/501) - Cluster 'sung_by' (id=13).............OK (records=501/501) - Cluster '_studio' (id=14)...OK (records=0/0) Done. Exported 8873 of total 8873 records Exporting index info... - Index OUser.name...OK - Index dictionary...OK - Index ORole.name...OK OK (3 indexes) Exporting manual indexes content... - Exporting index dictionary ...OK (entries=0) OK (1 manual indexes) Database export completed in 60498ms
这样就完成了导出步骤。
打开另一个终端到您的 Droplet,并列出数据库目录的内容:
ls -lh /opt/orientdb/databases
您应该会看到原始数据库以及用于数据库导出的压缩文件:
Outputtotal 164K drwxr-xr-x 2 orientdb orientdb 4.0K Nov 27 02:36 GratefulDeadConcerts -rw-r--r-- 1 orientdb orientdb 158K Nov 27 14:19 GratefulDeadConcerts.export.gz
使用您的 OrientDB 控制台返回终端,您现在可以通过键入以下内容断开与当前数据库的连接:
disconnect
如果成功断开连接,您应该会得到类似于以下内容的输出:
OutputDisconnecting from the database [GratefulDeadConcerts]...OK orientdb>
保持与控制台的连接打开,因为您将在下一步中使用它。
第 2 步 — 导入数据库
在此步骤中,我们将导入在步骤 1 中导出的数据库。 默认情况下,导入数据库会覆盖正在导入的数据库中的现有数据。 所以,首先连接到目标数据库。 在此示例中,我们将连接到我们在步骤 1 中使用的默认数据库。
connect plocal:/opt/orientdb/databases/GratefulDeadConcerts admin admin
您还可以使用以下方式连接:
connect remote:127.0.0.1/GratefulDeadConcerts admin admin
任一输出应与此类似:
OutputConnecting to database [remote:127.0.0.1/GratefulDeadConcerts] with user 'admin'...OK orientdb {db=GratefulDeadConcerts}>
建立连接后,让我们导入导出的文件:
import database /opt/orientdb/databases/GratefulDeadConcerts.export.gz
根据要导入的记录数量,这可能需要几分钟以上的时间。 所以坐下来放松一下,或者伸手去拿那杯你最喜欢的液体。
导入输出应为(输出截断):
OutputImporting database database /opt/orientdb/databases/GratefulDeadConcerts.export.gz... Started import of database 'remote:127.0.0.1/GratefulDeadConcerts' from /opt/orientdb/databases/GratefulDeadConcerts.export.gz... Non merge mode (-merge=false): removing all default non security classes ... Done. Imported 8,865 records in 915.51 secs Importing indexes ... - Index 'OUser.name'...OK - Index 'dictionary'...OK - Index 'ORole.name'...OK Done. Created 3 indexes. Importing manual index entries... - Index 'dictionary'...OK (0 entries) Done. Imported 1 indexes. Rebuild of stale indexes... Stale indexes were rebuilt... Deleting RID Mapping table...OK Database import completed in 1325943 ms
您现在可以断开与数据库的连接:
disconnect
退出 OrientDB 控制台并返回到您的常规 shell 提示符,键入 exit
:
exit
结论
您刚刚了解了如何导出和导入 OrientDB 数据库。 请注意,导入/导出功能不会在整个过程中锁定数据库,因此它可能会在该过程发生时接收写入。 有关此主题的更多信息,请参阅 官方 OrientDB 导出/导入指南。