#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. Так что никаких проблем с большими сообщениями. Да, определенно проблемы с небольшими сообщениями