Резервное копирование OrientDB в Ubuntu 14.04

OrientDB – это многомодельная база данных NoSQL, поддерживающая графики и документальные БД. Это приложение Java можно использовать в любой системе. OrientDB также предоставляет полную поддержку ACID и репликаций master-master.

Резервное копирование данных OrientDB можно выполнить при помощи специального скрипта или интерфейса командной строки со встроенной поддержкой сжатия резервных файлов согласно алгоритму ZIP.

По умолчанию во время бэкапа OrientDB база данных блокируется до завершения  операции резервного копирования. Но если операционная система была установлена на схему секционирования LVM, скрипт для резервного копирования может выполнять бэкап данных, не блокируя БД.

Примечание: LVM расшифровывается как Linux Logical Volume Manager.

Данное руководство поможет создать бэкап данных OrientDB на сервере Ubuntu 14.04.

Требования

  • Настроенный сервер Ubuntu 14.04 (инструкции по начальной настройке сервера можно найти здесь);
  • Предварительно установленная и настроенная СУБД OrientDB (пошаговое руководство по установке OrientDB – здесь).

1: Бэкап данных OrientDB с помощью скрипта

OrientDB поставляется со специальным скриптом для резервного копирования данных. Если вы установили OrientDB согласно данному руководству, то установка находится в каталоге /opt/orientdb; следовательно, необходимый скрипт хранится в /opt/orientdb/bin.

Для удобства работы рекомендуется создать отдельный каталог для хранения резервных копий. В данном руководстве для этого будет использоваться подкаталог backup каталога установки. Также резервные копии можно хранить в каталоге databases (это каталог данных приложения).

Чтобы создать каталог backup, введите:

sudo mkdir -p /opt/orientdb/backup

Новый каталог принадлежит пользователю root; передайте права собственности на него пользователю orientdb. Если этого не сделать, во время резервного копирования через интерфейс командной строки возникнет ошибка (об устранении данной ошибки можно прочесть в разделе 2).

sudo chown -R orientdb:orientdb /opt/orientdb/backup

Откройте каталог bin:

cd /opt/orientdb/bin

По умолчанию существует БД по имени GratefulDeadConcerts. Чтобы просмотреть содержимое этой и всех остальных БД, введите:

ls -l /opt/orientdb/databases

На экране появится примерно такой вывод (он сообщает о БД GratefulDeadConcerts и eck):

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. Чтобы выполнить стандартную операцию резервного копирования (то есть такую, что блокирует базу данных на некоторое время) базы GratefulDeadConcerts, введите:

sudo ./backup.sh plocal:../databases/GratefulDeadConcerts admin admin ../backup/gfdc.zip

Чтобы скопировать базу данных eck:

sudo ./backup.sh plocal:../databases/eck admin admin ../backup/eck.zip

Убедитесь в том, что бэкап выполнен успешно:

ls -lh ../backup

Команда должна вернуть примерно такой результат:

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 при помощи консоли

Данный раздел покажет, как создать резервную копию базы данных OrientDB при помощи консоли (интерфейса командной строки). Чтобы открыть консоль, введите:

sudo -u orientdb /opt/orientdb/bin/console.sh

На экране появится:

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

Команда вернёт:

Disconnecting from the database [null]...OK
Connecting to database [plocal:/opt/orientdb/databases/eck] with user 'admin'...OK
orientdb {db=eck}>

Чтобы выполнить стандартное резервное копирование (в том же каталоге, что и в разделе 1), введите:

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

На экране появится вывод:

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 позволяет выполнять бэкап данных автоматически; по умолчанию эта функция отключена. Для примера в этом разделе показано, как настроить ежедневное автоматическое резервное копирование OrientDB. Сначала нужно отладить параметры резервного копирования в конфигурационном файле:

sudo nano /opt/orientdb/config/orientdb-server-config.xml

Найдите в файле элемент handler, содержащий class=”com.orientechnologies.orient.server.handler.OAutomaticBackup”. Когда эта опция включена, она включает другие настройки по умолчанию, которые автоматически запускают резервное копирование в 23:00:00 GMT с 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

На экране появится вывод:

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. Больше информации по данной теме можно найти в официальном руководстве.

Tags: ,

Добавить комментарий