如何在Ubuntu 14.04上备份OrientDB数据库

介绍

OrientDB是一个多模型NoSQL数据库,支持图形和文档数据库。它是一个Java应用程序,可以在任何操作系统上运行; 它也完全是ACID投诉,支持多主复制。

OrientDB数据库可以使用备份脚本和命令行界面进行备份,内置支持使用ZIP算法压缩备份文件。

默认情况下,备份OrientDB数据库是一种阻止操作 - 写入数据库的操作将被锁定,直到备份操作结束,但如果操作系统安装在LVM分区方案上,则备份脚本可以执行非阻塞备份。LVM是Linux逻辑卷管理器。

在本文中,您将学习如何在Ubuntu 14.04服务器上备份OrientDB数据库。

要完成本教程,你需要具备以下内容:

  • 一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 一个OrienDB数据库,建议您可以直接使用云关系型数据库,云关系型数据库让您在云中轻松部署、管理和扩展的关系型数据库,提供安全可靠、伸缩灵活的按需云数据库服务。腾讯云关系型数据库提供 MySQL、SQL Server、MariaDB、PostgreSQL 数据库引擎,并针对数据库引擎的性能进行了优化。云关系型数据库是一种高度可用的托管服务,提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案,可将您从耗时的数据库管理任务中解放出来,让您有更多时间专注于您的应用和业务。

先决条件

  • Ubuntu 14.04服务器
  • 在Ubuntu 14.04安装和配置OrientDB

步骤1 - 使用备份脚本备份OrientDB

OrientDB附带一个备份脚本,位于安装目录的bin文件夹中。如果你在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的数据库:

Output
total 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

预期的输出是:

Output
total 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

输出应该是:

Output
OrientDB 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

你会看到这样的输出:

Output
Disconnecting 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

你会看到这样的输出:

Output
Backuping 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

输出会类似于:

Output
total 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

输出应该类似于:

Output
total 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数据库的所有非编程步骤。

想要了解更多关于备份OrientDB数据库的相关教程,请前往腾讯云+社区学习更多知识。

参考文献:《How To Back Up Your OrientDB Databases on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我的博客

Windowsserver2003下搭建IIS+PHP+MySQL+PHPmyadmin

安装IIS在这里不在赘述,重点配置iis解析php和phpmyadmin的配置 去这里http://www.php.net/下载php,我下载的是php-5.2...

3746
来自专栏KK的小酒馆

用aliyun的Maven仓库下载Android Studio内依赖包

从GitHub导入新项目时,总是在gradle运行中卡壳,各种依赖包无法从jcenter或者Maven仓库下载下来,公司网也差……一上午就这么废了。 如果你也...

1212
来自专栏Dawnzhang的开发者手册

spring cloud(学习笔记)高可用注册中心(Eureka)的实现(一)

最近在学习的时候,发现微服务架构中,假如只有一个注册中心,那这个注册中心挂了可怎么办,这样的系统,既不安全,稳定性也不好,网上和书上找了一会,发现这个sprin...

1562
来自专栏技术博文

mkdir dxs

chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管...

2698
来自专栏difcareer的技术笔记

一种更优的方式获取私有API

在编译私有的Android SDK中讲述了如何通过编译一个完整的SDK来获取一些稀有的API,但是这个方法有几点不足:

1113
来自专栏IT笔记

Linux下JProfiler 9安装部署及使用

JProfiler[1] 是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发的。 它把CPU、执行绪和内存的...

4769
来自专栏狂码一生

CentOS-7下搭建配置SVN服务器

1、安装svn:     >yum -y install subversion     //svn默认安装目录:/bin/svnserve 2、查看svn版本...

43815
来自专栏石瞳禅的互联网实验室

看图理解进程间通信IPC

进程间通信(inter-process communication或interprocess communication,简写IPC)是指两个或两个以上进程(或...

3872
来自专栏个人分享

kafka_2.11-0.8.2.2的搭建

host.name=10.10.224.12  (修改为主机ip,不然服务器返回给客户端的是主机的hostname,客户端并不一定能够识别)

3211
来自专栏python开发者

Ubuntu部署python3.5的开发和运行环境

Ubuntu部署python3.5的开发和运行环境 1 概述 由于最近项目全部由python2.x转向 python3.x(使用目前最新的 python3.5....

28010

扫码关注云+社区

领取腾讯云代金券