Резервное копирование и восстановление

В этой статье вы узнаете, как создавать и восстанавливать резервную копию ваших delivery- или authoring-окружений в DC CMS.

DC CMS включает в себя встроенный скрипт, предназначенный для удобного создания резервных копий и восстановления окружения. Этот скрипт обеспечивает полноценное создание резервной копии вашего окружения, включая индексы, репозитории, MongoDB и многое другое. Вы можете использовать предпочтительные инструменты резервного копирования для управления созданным файлом резервной копии окружения DC CMS.

Резервное копирование

Для обеспечения безопасности DC CMS достаточно создать резервную копию authoring-окружения (CMS Studio). Delivery-уровень (CMS Engine) может легко восстанавливаться путем развертывания новых узлов, которые синхронизируются между собой. Также можно создать их резервную копию с дальнейшим восстановлением.

Рекомендуется выключить DC CMS перед выполнением резервного копирования. После завершения резервного копирования перезапустите систему, что может привести к некоторому временному простою для авторов контента.

Запуск скрипта резервного копирования

Чтобы создать резервную копию вашего delivery- или authoring-окружения, перейдите в {DС-CMS-install-directory}/{env}/bin, где {env} представляет окружение (delivery или authoring). Затем выполните следующую команду:

./cms.sh backup {filename}

Copy-icon

Обратите внимание, что {filename} является необязательным.

Ваш файл резервной копии будет сохранен по умолчанию по пути $CMS_HOME/backups/ (где $CMS_HOME - это {DC-CMS-install-directory}/{env}).

Если вы хотите изменить расположение файла резервной копии, в переменных окружения в следующей строке измените $CMS_HOME/backups на ваше предпочтительное местоположение:

export CMS_BACKUPS_DIR=${CMS_BACKUPS_DIR:="$CMS_HOME/backups"}

Copy-icon

Если было указано имя файла ({filename}), ваш файл резервной копии будет называться {filename}-{yyyy-MM-dd-hh-mm-ss}.zip, где:

  • filename - имя файла
  • yyy - год, например, 2017
  • ММ - месяц, с 01 по 12, например, 07 для обозначения июля
  • dd - день, с 00 по 30 или 31
  • hh - это часы с 00 до 23
  • mm - минуты с 00 до 59
  • ss - секунды с 00 до 59

Если имя файла ({filename}) не было указано, файл резервной копии будет называться либо authoring-backup-{yyyy-ММ-dd-hh-mm-ss}.zip, либо delivery-backup-{yyyy-ММ-dd-hh-mm-ss}.zip, в зависимости от того, для какого окружения вы создаете резервную копию.

Восстановление

Для начала восстановления резервной копии убедитесь, что DC CMS в данный момент не запущен. Для восстановления вашего delivery- или authoring-окружения перейдите по пути {DC-CMS-install-directory}/{env}/bin, где {env} представляет delivery- или authoring-окружение. Выполните следующую команду:

./cms.sh restore {backup-file}

Copy-icon

После этого появится предупреждение с подобным сообщением: "Предупреждение: Вы собираетесь восстановить DC CMS из резервной копии, что приведет к удалению существующих сайтов и связанной базы данных, заменяя все восстановленными данными. Если вам важно текущее состояние системы, прервите этот процесс, создайте резервную копию и затем продолжите восстановление. Вы уверены, что хотите продолжить? (Да/Нет)". Нажмите "Да", чтобы продолжить процесс восстановления, или "Нет", чтобы прервать его.

Если вы восстанавливаете authoring-окружение, CMS Studio будет запущена в рамках процесса восстановления. Если вы восстанавливаете delivery-окружение, вам нужно будет вручную запустить данное окружение после завершения процесса восстановления.

При восстановлении authoring-окружения для предотвращения конфликтов убедитесь, что вы выполняете одно из следующих действий для delivery-окружения:

  • Восстановите delivery-окружение, следуя указанным выше шагам.

ИЛИ

  • Повторно установите delivery-окружение, удалив папку data, расположенную в {DC-CMS-install-directory}/delivery/, и выполните скрипт init-site.sh для всех сайтов.

Обратите внимание, что при использовании аутентификации по закрытому ключу SSH путь к закрытому ключу должен быть явно установлен с использованием опции -k. Пример:

init-site -k ~/.ssh/jdoe_key myeditorial ssh://myserver/opt/cms/sites/myeditorial

Copy-icon