Как сделать резервную копию и восстановить моментальный снимок из JCR (репозиторий контента Java)

Как сделать снимок резервной копии/восстановить репозиторий JCR?

Мне нужна полная целостность. Это означает, что один моментальный снимок, созданный одной командой резервного копирования, должен быть действительным без каких-либо внешних зависимостей. И его можно полностью восстановить в другом экземпляре JCP. Это означает, что если я восстанавливаю образ моментального снимка в экземпляр JCR, все существующие данные в репозитории должны быть очищены, а все данные в моментальном снимке должны быть восстановлены точно так же, как в предыдущем репозитории.

Для этого можно останавливать целые сервисы. Сначала я предпочитаю целостность.

Как я могу это сделать?


person eonil    schedule 11.09.2011    source источник


Ответы (1)


Сам JCR API не предоставляет простого способа сделать полную и восстанавливаемую резервную копию всего репозитория (точно так же, как JDBC не охватывает функции резервного копирования/восстановления реляционных баз данных), поэтому ответ на ваш вопрос зависит от того, какая реализация JCR вы используете.

Простое решение, которое должно работать с любой реализацией JCR, состоит в том, чтобы закрыть репозиторий и сделать резервную копию файловой системы/базы данных всех данных, используемых репозиторием.

Если вы используете Apache Jackrabbit, вы также можете использовать файл функция резервного копирования включена в Отдельная банка Jackrabbit. Или, если вы предпочитаете Java API, вы можете получить доступ к тем же функциям, используя класс RepositoryCopier включен в ядро ​​jackrabbit. При использовании RepositoryCopier вы даже можете оставить исходный репозиторий работающим, если вы можете на уровне приложения обеспечить, чтобы ни один клиент не пытался выполнять запись в репозиторий во время выполнения резервного копирования.

person Jukka Zitting    schedule 23.09.2011