Golden Gate не синхронизирует все записи

#sql-server #oracle #oracle-golden-gate

#sql-сервер #Oracle #oracle-golden-gate

Вопрос:

У меня настроено несколько процессов OGG. Для большинства таблиц начальная загрузка (sourceistable — specialrun) реплицирует все данные. Для небольшой группы таблиц извлечение начальной загрузки прекращается без каких-либо ошибок и только с частичной синхронизацией данных с целью.

Исходной базой данных является oracle 12c, а целевой — SQL Server 2019. Исходная и целевая таблицы в качестве первичных ключей. В таблицах есть только два поля: первичный ключ и тип XML. Я не могу поделиться xml, потому что это конфиденциальные данные.
Извлечение выглядит следующим образом :

 ADD EXTRACT TEST, SOURCEISTABLE
extract TEST
useridalias xyz
rmthost xyzhost, mgrport 7809
rmttask replicat, group TEST

TABLE ABC.XYZ;


ADD REPLICAT TEST, SPECIALRUN
replicat TEST
targetdb odbc, useridalias xyz
MAP ABC.XYZ, TARGET test.XYZ;
  

после начальной загрузки view report TEST не отображается никаких ошибок. Также не вижу никакой ошибки в ggserror.log. Информация об удалении отсутствует. Он просто останавливается без каких-либо ошибок. Любая помощь будет оценена.

Редактировать

Я добавил трассировку и теперь вижу следующее :

 processSelectLob: read LOB column COLUMN_NAME(1) with current byte length 50000 (fragment 25, length 2000).
2020-10-07 11:32:44.008 DEBUG|gglog.std.application | 2834 ggdbora/ocifetch.cpp | processSelectLob: actual length of LOB read for column COLUMN_NAME(1) is 50000.
2020-10-07 11:32:44.008 DEBUG|gglog.std.application | 2836 ggdbora/ocifetch.cpp | processSelectLob: **error: it can not be less than character length of LOB 52001**
  

Есть ли какой-нибудь способ справиться с этим?

Ответ №1:

Проблема может находиться в целевой базе данных (SQL Server), это может помочь вам:

 USE Database  
GO  
EXEC sp_configure 'show advanced options', 1 ;   
RECONFIGURE ;   
GO  
EXEC sp_configure 'max text repl size', -1 ;   
GO  
RECONFIGURE;   
GO 
  

Комментарии:

1. Спасибо за ответ. Я пытался, но проблема сохраняется.

2. На стороне SQL Server нет ошибки. Я пытался просмотреть журналы ошибок с помощью SSMS. вижу только ошибку в OGG.

3. В ошибке говорится, что «оно не может быть меньше 52001», а на самом деле ваша длина равна 50000. Может быть, вам нужно изменить сторону минимальной длины на стороне Golden Gate?

4. длина записи равна 52001, и мне удалось реплицировать записи большего размера длиной более 52001.

5. Если вы прочитали сообщение, проблем с записями> 52001 нет. Проблема в том, что записи имеют значение <52001, а на самом деле ваше значение равно 50000, что меньше 52001. Так что никаких проблем с большими сообщениями. Да, определенно проблемы с небольшими сообщениями