介绍
OrientDB 是一个多模型的 NoSQL 数据库,支持图形和文档数据库。 它是一个Java应用程序,可以在任何操作系统上运行; 它还完全符合 ACID,支持多主复制。
OrientDB 数据库可以使用备份脚本进行备份,也可以通过命令行界面进行备份,内置支持使用 ZIP 算法压缩备份文件。
默认情况下,备份 OrientDB 数据库是一个阻塞操作——写入数据库被锁定直到备份操作结束,但如果操作系统安装在 LVM 分区方案上,备份脚本可以执行非阻塞备份. LVM 是 Linux 逻辑卷管理器。
在本文中,您将学习如何在 Ubuntu 14.04 服务器上备份 OrientDB 数据库。
先决条件
- Ubuntu 14.04 服务器(请参阅(使用 Ubuntu 14.04 进行初始服务器设置))
- 使用 安装和配置 OrientDB 如何在 Ubuntu 14.04 上安装和配置 OrientDB
第 1 步 — 使用备份脚本备份 OrientDB
OrientDB 附带一个备份脚本,位于安装目录的 bin
文件夹中。 如果你使用How To Install and Configure OrientDB on Ubuntu 14.04安装OrientDB,那么安装目录是/opt/orientdb
,所以备份脚本backup.sh
应该在/opt/orientdb/bin
。
对于本教程,在安装目录下创建一个 backup
文件夹来保存备份。 您也可以选择将备份保存在 databases
文件夹中,该文件夹是应用程序的数据目录。 对于本教程,我们将使用 backup
文件夹,因此创建 backup
目录:
sudo mkdir -p /opt/orientdb/backup
新创建的文件夹归 root 所有,所以让我们更改所有权,使其归 orientdb 用户所有。 不这样做将导致从命令行界面备份时出错,您将在第 2 步中学习如何完成此操作:
sudo chown -R orientdb:orientdb /opt/orientdb/backup
不碍事,导航到 bin
目录:
cd /opt/orientdb/bin
默认情况下,存在一个名为 GratefulDeadConcerts
的数据库。 databases
目录的内容列表将显示此默认数据库以及您创建的任何数据库:
ls -l /opt/orientdb/databases
例如,下面显示了 GratefulDeadConcerts
数据库和一个名为 eck
的数据库:
Outputtotal 8 drwxr-xr-x 2 orientdb orientdb 4096 Oct 12 18:36 eck drwxr-xr-x 2 orientdb orientdb 4096 Oct 4 06:30 GratefulDeadConcerts
在这一步中,我们将使用备份脚本备份两个数据库。 在这两种情况下,我们都将以 admin 用户的身份执行操作,其密码也是 admin。 要对默认数据库执行默认(阻塞)备份,请键入:
sudo ./backup.sh plocal:../databases/GratefulDeadConcerts admin admin ../backup/gfdc.zip
对于第二个数据库,键入:
sudo ./backup.sh plocal:../databases/eck admin admin ../backup/eck.zip
验证是否已创建备份:
ls -lh ../backup
预期的输出是:
Outputtotal 236K -rw-r--r-- 1 root root 17K Oct 13 08:48 eck.zip -rw-r--r-- 1 root root 213K Oct 13 08:47 gfdc.zip
第 2 步 — 从控制台备份 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 进行连接。
connect plocal:/opt/orientdb/databases/eck admin admin
你应该看到这样的输出:
OutputDisconnecting from the database [null]...OK Connecting to database [plocal:/opt/orientdb/databases/eck] with user 'admin'...OK orientdb {db=eck}>
现在,将数据库执行阻塞备份到我们在步骤 1 中创建的同一备份目录中:
backup database /opt/orientdb/backup/eckconsole.zip
你应该看到这样的输出:
OutputBackuping current database to: database /opt/orientdb/backup/eckconsole.zip... - Compressing file name_id_map.cm...ok size=912b compressedSize=250 ratio=73% elapsed=1ms - Compressing file e.pcl...ok size=65.00KB compressedSize=121 ratio=100% elapsed=13ms ... - Compressing file orids.cpm...ok size=1024b compressedSize=15 ratio=99% elapsed=1ms - Compressing file internal.pcl...ok size=129.00KB compressedSize=9115 ratio=94% elapsed=9ms Backup executed in 0.33 seconds
退出 OrientDB 数据库提示:
exit
确认备份到位:
ls -lh ../backup
输出应与此类似:
Outputtotal 256K -rw-r--r-- 1 orientdb orientdb 17K Oct 13 10:39 eckconsole.zip -rw-r--r-- 1 orientdb orientdb 17K Oct 13 08:48 eck.zip -rw-r--r-- 1 orientdb orientdb 213K Oct 13 08:47 gfdc.zip
第 3 步 — 自动备份 OrientDB
OrientDB 有自动备份功能,但默认是关闭的。 在这一步中,我们将启用它,以便每天备份数据库。 自动备份的参数必须在配置文件中调整,所以打开它:
sudo nano /opt/orientdb/config/orientdb-server-config.xml
使用 class=“com.orientechnologies.orient.server.handler.OAutomaticBackup” 滚动到 handler 元素。 启用后,其他默认设置将自动备份设置为在格林威治标准时间 23:00:00 每隔 4 小时进行一次。 使用下面显示的设置,将同时进行自动备份,但每天只进行一次。
出于测试目的,您可以根据自己的喜好调整 firsttime 参数:
/opt/orientdb/config/orientdb-server-config.xml <handler class="com.orientechnologies.orient.server.handler.OAutomaticBackup"> <parameters> <parameter value="true" name="enabled"/> <parameter value="24h" name="delay"/> <parameter value="23:00:00" name="firstTime"/> <parameter value="backup" name="target.directory"/> <parameter value="${DBNAME}-${DATE:yyyyMMddHHmmss}.zip" name="target.fileName"/> <parameter value="9" name="compressionLevel"/> <parameter value="1048576" name="bufferSize"/> <parameter value="" name="db.include"/> <parameter value="" name="db.exclude"/> </parameters> </handler>
完成调整设置后,保存并关闭文件。 要应用更改,请停止守护程序:
sudo service orientdb stop
然后重新启动它:
sudo service orientdb start
在设置的时间之后,通过查看新的 backup
目录来验证它是否工作:
ls -lh /opt/orientdb/bin/backup
输出应该与此类似:
Outputtotal 236K -rw-r--r-- 1 orientdb orientdb 17K Oct 13 16:00 eck-20151013160001.zip -rw-r--r-- 1 orientdb orientdb 213K Oct 13 16:00 gratefulnotdead-20151013160002.zip
开箱即用,默认数据库 GratefulDeadConcert
没有被自动备份工具备份,所以如果您没有看到它列出,这是一个功能。
结论
您刚刚了解了可用于备份 OrientDB 数据库的所有非编程步骤。 有关此主题的更多信息,请访问 官方指南 。