Приложение 2. Возможные проблемы и способы их устранения

Ниже описаны некоторые проблемы, которые могут возникнуть при работе асинхронной репликации.

Проблема Способ устранения
База данных хранилища постоянно растет и достигла больших размеров 

Следует очистить базу данных хранилища, запустив сервер репликации с ключом -clear ALL, например:

lreplserver -u SYSTEM/MANAGER8 -us SYSTEM/MANAGER8 -s RDSTG -clear ALL

Следует заметить, что этот вызов удалит не только устаревшие данные, но и актуальные, поэтому таким вызовом желательно пользоваться тогда, когда все данные тиражированы и наступила временная пауза в изменении данных на основной БД.

Для регулярной автоматической очистки следует запускать сервер репликации с ключами -clear 3600 и -nohist:

lreplserver -u SYSTEM/MANAGER8
 -us SYSTEM/MANAGER8 -s RDSTG
 -clear 3600 -nohist

Здесь 3600 – время в секундах, процесс очистки будет запускаться регулярно раз в час. Можно указать другое время. Если не задавать ключ -nohist, то данные, предназначенные для очистки реально не удаляются, а перемещаются в таблицы DISPATCH_QUEUE_HIST и RECEIVING_QUEUE_HIST, их можно удалить вручную, как описано в подразделах приложения 4 История рассылки, История приема

Системный журнал реплицируемой базы данных сильно вырос (файлы *.61) 

Возможно, сервер репликации когда-то был запущен, что-то реплицировалось, а потом он был остановлен и больше не запускался. При этом данные, предназначенные для репликации, временно хранятся в системном журнале БД. В этом случае можно либо запустить сервер репликации, что приведет к перекачиванию этих данных из системного журнала в хранилище данных репликации с последующей рассылкой; либо остановить накопление данных, при этом системный журнал будет освобожден, но данные, накопленные за время простоя сервера репликации, уже не будут переданы на сервера назначения. Это делается с помощью ключа -stop:

lreplserver -u SYSTEM/MANAGER8 -us SYSTEM/MANAGER8 -s RDSTG -stop
Сервер репликации не запускается 

Скорее всего, не запущена основная БД либо БД хранилища, или же неверно указаны имена или пароли к ним. Для точной диагностики нужно запустить сервер репликации с трассировкой, добавив ключ -log 4:

lreplserver -u SYSTEM/MANAGER8 -us SYSTEM/MANAGER8 -s RDSTG -log 4

Формат файла трассировки описан в приложении 5

Данные не реплицируются 

Самое первое, что следует проверить, это:

  • есть ли правило репликации;

  • на какой сервер оно указывает;

  • какой IP-адрес для этого сервера указан в файле nodetab;

  • какой протокол для этого сервера указан в файле nodetab (должен быть ATCPIP).

Однако, причин может быть много, для точной диагностики нужно запустить сервер репликации с трассировкой, добавив ключ -log 4:

lreplserver -u SYSTEM/MANAGER8 -us SYSTEM/MANAGER8 -s RDSTG -log 4

Формат файла трассировки описан в приложении 5. Наиболее вероятная причина заключается в отсутствии описания сервера, указанного в правиле репликации, в файле nodetab. Следует проверить, выполнены ли все шаги настройки репликации, как описано в разделе Конфигурирование БД