prosync
prosync — утилита для проигрывания изменений из базы данных-источника в базе данных-приёмнике другого типа
Синтаксис
prosync config generate [параметр...]
prosync init [параметр...]
prosync run [параметр...]
prosync complete [параметр...]
Описание #
prosync — это утилита для захвата изменений (CDC, Change Data Capture) из базы данных-источника и воспроизведения этих изменений в базе данных-приёмнике другого типа.
prosync не отвечает за:
Перенос схемы базы данных.
Перенос данных, отсутствующих в файлах журналов.
Проверку данных после их переноса.
Поддерживаемые операции #
DML:
INSERT,UPDATE,DELETEDDL:
TRUNCATE
Использование #
Перенос базы данных #
prosync участвует в переносе «горячей» базы данных (за подробностями обратитесь к Разделу 4.5).
Подготовка к переносу «горячей» базы данных #
Чтобы подготовиться к переносу «горячей» базы данных, выполните следующие шаги:
Подготовьте и настройте базу данных-приёмник для переноса:
Создайте необходимые схемы и таблицы.
Удалите или отключите триггеры.
Сгенерируйте файл конфигурации:
prosync config generate -o
имя_файлаОбновите файл конфигурации, указав нужные значения.
Получите значение
CURRENT_SCNиз базы данных-источника и укажите его в параметреprosync_options.start_scnв файле конфигурации:prosync init -f
имя_файла-uКлюч
-uвыполнит это автоматически, но рекомендуется вручную убедиться, что значение в файле конфигурации соответствует значению на экране.
Перенос «горячей» базы данных #
Выполните перенос следующим образом:
Запустите загрузку данных с помощью 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 #
При миграции БД PostgreSQL/Postgres Pro требуется слот репликации для проигрывания изменений, выполняемого prosync. Поэтому:
Справка по командной строке #
Данный раздел описывает команды prosync. Необязательные параметры заключены в квадратные скобки.
config generate #
prosync config generate [-f|--formatjson|yaml] [-o|--outputимя_файла] [-c|--source_config]
Создаёт файл конфигурации для prosync.
-fjson|yaml--formatjson|yamlУказывает формат файла конфигурации: JSON или YAML. По умолчанию используется YAML.
-oимя_файла--outputимя_файлаУказывает имя файла конфигурации. По умолчанию файл выводится в стандартный поток вывода (stdout).
-c--source-configИспользовать файл конфигурации procopy в качестве основы для файла конфигурации prosync и дополнить его недостающими параметрами.
init #
prosync init -f|--file имя_файла [-u|--update-config]Получает текущее значение SCN из базы данных-источника.
-fимя_файла--fileимя_файлаИмя файла конфигурации, в котором заданы параметры подключения.
-u--update-configИспользовать файл конфигурации procopy в качестве основы и дополнить его недостающими параметрами.
run #
prosync run -f|--fileимя_файла[--log-levelerror|warn|info|debug] [--dry-run|--read-only] [-c|--clear] [--with-table-stats]
Запускает проигрывание изменений из базы данных-источника в базе данных-приёмнике.
Если значение prosync_options.start_scn в файле конфигурации меньше, чем в самом старом из доступных файлов журнала в БД-источнике, команда выведет сообщение об ошибке с указанием минимального доступного csn.
-fимя_файла--fileимя_файлаИмя файла конфигурации, в котором заданы параметры подключения.
--log-levelerror|warn|info|debugУровень детализации сообщений. По умолчанию используется уровень
info.--dry-runОтключает запись в базу данных-приёмник. prosync выполнит все действия, кроме записи. Этот флаг полезен для оценки производительности записи без её фактического выполнения.
--read-onlyОтключает всю логику prosync, кроме чтения из базы данных-источника. Этот флаг полезен для оценки производительности чтения.
-c--clearОчищает экран перед каждой новой выдачей статистики. При включении этого режима рекомендуется перенаправить вывод журналов в файл, например:
prosync run ... -c 2>prosync.log
--with-table-statsВыводит расширенную статистику по таблицам.