Проверка корректности данных заключается в сопоставлении данных, полученных из сторонней таблицы, с указанием на исходную таблицу Oracle и локальную таблицу Postgres Pro, получаемую в результате экспорта.
Чтобы проверить корректность данных, можно подключаться напрямую, как делает ora2pgpro, но также можно использовать расширение oracle_fdw, причём нужно задать директивы FDW_SERVER
и PG_DSN
.
По умолчанию ora2pgpro извлекает первые 10000 строк с обеих сторон, это количество можно изменить, задав директиву DATA_VALIDATION_ROWS
. Когда задано нулевое значение, сравниваться будут все строки таблиц.
Для проверки корректности данных требуется первичный ключ или уникальный индекс не по столбцу LOB. Сортировка строк выполняется по этому уникальному ключу. По причине различий в поведении Oracle и Postgres Pro, если в Postgres Pro не используется правило сортировки C
, порядок сортировки может отличаться от Oracle. В этом случае проверка завершится ошибкой.
Проверку данных следует выполнять до изменения данных.
ora2pgpro прервёт сопоставление двух таблиц после достижения DATA_VALIDATION_ROWS
или после 10 ошибок; результат выводится в файл data_validation.log
, записываемый в текущий каталог по умолчанию. Число ошибок, после которых останавливается проверка, можно задать в директиве DATA_VALIDATION_ERROR
. Для удобства анализа все строки с ошибками выводятся в выходной файл.
Можно выполнять проверку корректности данных в несколько потоков, задав параметр -P
или соответствующую директиву PARALLEL_TABLES
в ora2pgpro.conf
.