#marklogic
#marklogic
Вопрос:
У меня есть два сервера с одинаковой версией MarkLogic и с неограниченным сетевым подключением. На обоих серверах работает CentOS с Marklogic 7.0-3.
У меня есть полностью загруженная база данных на server1, у меня есть пустая база данных на server2. Моя цель — реплицировать эту базу данных с server1 на server2 и поддерживать ее синхронизацию.
Чтобы настроить это, я следую руководству по репликации базы данных на веб-сайте MarkLogic. https://docs.marklogic.com/guide/database-replication/quick_start
Я соединяю кластеры, создаю конфигурацию репликации базы данных, все нормально и без каких-либо ошибок. Я проверяю последний Boostrap (опечатка, сделанная MarkLogic), и он не говорит «никогда», поэтому между кластерами была своего рода связь.
И затем ничего. Ни один документ или фрагмент не синхронизируется. В файлах журналов этих серверов нет ни одного сообщения об ошибке. Последняя строка в файле журнала «подчиненной» системы является:
2014-07-03 14:06:30.184 Info: Forest dbase-content-001-1 accepts foreign forest {server1-cluster dbase-content dbase-content-001-1} as its master with new precise time 14038608798546100
Кроме того, состояние базы данных ‘slave’ равно; ‘синхронизирующая реплика’. Но это ничего не делает.
Когда я проверяю загрузку сервера, оба сервера простаивают.
Приветствуется любая помощь.
Ответ №1:
Благодаря mblakele и Уэйну Фейку я узнал, что у одного из серверов не было синхронизированного времени. После настройки localtime, NTP и синхронизации их обоих репликация базы данных запущена.
Предупреждение, указывающее на мою проблему.
2014-07-04 00:00:50.923 Warning: Excessive clock skew detected; suggest using NTP (7201 seconds skew with server2 in foreign cluster server2-cluster)
Сообщение после синхронизации времени.
2014-07-04 08:06:01.588 Info: Saved 10 MB in 1 sec at 17 MB/sec to /var/opt/MarkLogic/Forests/Meters/00000013
Оставшаяся задача — переиндексировать подчиненную базу данных после синхронизации данных. Обычно это делается только при вставке новых документов в основную базу данных.
Это исправлено путем установки индексов, а затем очистки базы данных, чтобы началась новая синхронизация и были созданы индексы.
Ответ №2:
Есть пара флагов трассировки, которые могут предоставить дополнительную информацию: «Репликация леса» и «Репликация базы данных». Это добавит дополнительное ведение журнала в ErrorLog.txt .
Если вы не знакомы с флагами трассировки, их можно включить через пользовательский интерфейс администратора, перейдя в свою группу, затем нажав на «Диагностика» в дереве слева. Обязательно добавьте флаги трассировки, а также установите для параметра «события трассировки активированы» значение true.
Ответ №3:
У меня были некоторые проблемы с этим, когда я попробовал это в первый раз, но прошло некоторое время, и я не помню подробностей. Сначала я бы включил ведение журнала: в конфигурации группы установите для «File log level» значение debug
для обоих кластеров. Это должно вызвать у вас больше болтовни ErrorLog.txt
.
Проверьте состояние кластера с обеих сторон: там могут возникнуть проблемы. И https://docs.marklogic.com/guide/database-replication/status может помочь.