prosync — утилита для проигрывания изменений из базы данных-источника в базе данных-приёмнике другого типа
prosync config generate [параметр...]
prosync init [параметр...]
prosync run [параметр...]
prosync complete [параметр...]
prosync — это утилита для захвата изменений (CDC, Change Data Capture) из базы данных-источника и воспроизведения этих изменений в базе данных-приёмнике другого типа.
prosync не отвечает за:
Перенос схемы базы данных.
Перенос данных, отсутствующих в файлах журналов.
Проверку данных после их переноса.
prosync участвует в переносе «горячей» базы данных (за подробностями обратитесь к Разделу 4.5).
Чтобы подготовиться к переносу «горячей» базы данных, выполните следующие шаги:
Подготовьте и настройте базу данных-приёмник для переноса:
Создайте необходимые схемы и таблицы.
Удалите или отключите триггеры.
Сгенерируйте файл конфигурации:
prosync config generate -o имя_файлаОбновите файл конфигурации, указав нужные значения.
Проинициализируйте prosync с помощью команды:
prosync init -f имя_файлаДля источника Oracle prosync сохранит текущий SCN, чтобы начинать последующую репликацию с этого значения. А для источника PostgreSQL/Postgres Pro prosync создаст слот логической репликации для последующего чтения изменений.
Выполните перенос следующим образом:
Запустите загрузку данных с помощью procopy:
procopy load -f имя_файлаПосле завершения загрузки запустите проигрывание изменений с помощью prosync:
prosync run -f имя_файлаДождитесь, пока разница между значениями Parsing SCN и Oracle latest SCN уменьшится до допустимого уровня. При переносе «горячей» базы данных особенно важно добиться того, чтобы эта разница уменьшалась:
Parsing SCN 3671057 Oracle latest SCN 4995972
Отключите нагрузку на базу данных-источник и дождитесь, пока значения Parsing SCN и Oracle latest SCN практически перестанут меняться. Затем остановите prosync.
В Oracle изменения происходят постоянно, даже если никто не вносит явных изменений в данные, поэтому значение Oracle latest SCN непрерывно увеличивается. По этой причине разница между Parsing SCN и Oracle latest SCN никогда не будет равной нулю.
Table #При выполнении задач типа Table (за подробностями обратитесь к Подразделу «Типы задач») в рамках переноса данных с использованием prosync не исключайте (через параметры exclude_columns или include_columns) столбцы, которые LogMiner использует в качестве ключей строк. В противном случае команды DELETE или UPDATE могут затронуть сразу несколько строк.
Для таблиц без ключей (куч) нельзя исключать ни один столбец, так как LogMiner использует всю строку для идентификации.
Эти правила не применяются, если перенос данных выполняется только с помощью procopy.
При миграции БД PostgreSQL/Postgres Pro требуется слот репликации для проигрывания изменений, выполняемого prosync. Поэтому:
Данный раздел описывает команды prosync. Необязательные параметры заключены в квадратные скобки.
prosync config generate [-f|--formatjson|yaml] [-o|--outputимя_файла] [-c|--source_config]
Создаёт файл конфигурации для prosync.
-f json|yaml--format json|yamlУказывает формат файла конфигурации: JSON или YAML. По умолчанию используется YAML.
-o имя_файла--output имя_файлаУказывает имя файла конфигурации. По умолчанию файл выводится в стандартный поток вывода (stdout).
-c--source-configИспользовать файл конфигурации procopy в качестве основы для файла конфигурации prosync и дополнить его недостающими параметрами.
prosync init -f|--file имя_файла [-u|--update-config]Получает текущее значение SCN из базы данных-источника.
-f имя_файла--file имя_файлаИмя файла конфигурации, в котором заданы параметры подключения.
-u--update-configИспользовать файл конфигурации procopy в качестве основы и дополнить его недостающими параметрами.
prosync run -f|--fileимя_файла[--log-levelerror|warn|info|debug] [--dry-run|--read-only] [-c|--clear] [--with-table-stats]
Запускает проигрывание изменений из базы данных-источника в базе данных-приёмнике.
-f имя_файла--file имя_файлаИмя файла конфигурации, в котором заданы параметры подключения.
--log-level error|warn|info|debugУровень детализации сообщений. По умолчанию используется уровень info.
--dry-runОтключает запись в базу данных-приёмник. prosync выполнит все действия, кроме записи. Этот флаг полезен для оценки производительности записи без её фактического выполнения.
--read-onlyОтключает всю логику prosync, кроме чтения из базы данных-источника. Этот флаг полезен для оценки производительности чтения.
-c--clearОчищает экран перед каждой новой выдачей статистики. При включении этого режима рекомендуется перенаправить вывод журналов в файл, например:
prosync run ... -c 2>prosync.log
--with-table-statsВыводит расширенную статистику по таблицам.