Ниже приведён фрагмент файла конфигурации prosync в формате YAML с перечислением параметров, специфичных для prosync:
prosync_options:
export_batch_size: 10000000
max_export_batch_size: 100000000
process_batch_size: 10000
batch_save_after_timeout: 5m0s
import_batch_size: 1000000
prefetch_rows: 250
use_online_logs_unsafe: false
validate_log_sequence: true
lob_write_size: 30000
operation_count_for_external_storage: 5000О том, как устанавливать значения времени в параметрах конфигурации, можно узнать из Подраздела 4.3.6.
Таблица 5.3. Параметры конфигурации prosync
| Название | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
prosync_options | Специфические параметры конфигурации prosync | ||
prosync_options.export_batch_size | Размер пакета при чтении утилитой prosync из Oracle с использованием LogMiner | ||
prosync_options.max_export_batch_size | Максимальный размер, до которого может быть увеличен размер пакета при чтении. Если этот предел достигнут, prosync завершает работу с ошибкой. Это может произойти, если остаётся незавершённая транзакция. Пользователь должен устранить проблему вручную. | ||
prosync_options.process_batch_size | Размер пакета при обработке транзакции. Параметр предназначен для внутреннего конфигурирования работы утилиты. | 10000 | |
prosync_options.batch_save_after_timeout | Время, по прошествии которого пакет будет записан в базу данных-приёмник, если его размер меньше значения параметра max_export_batch_size. При значении 0 периодическая запись данных в базу данных-приёмник отключается. | 5 с | 5 мин |
prosync_options.import_batch_size | Размер пакета при вставке данных. Значение 0 означает, что данные будут вставляться по мере их появления. | ||
prosync_options.prefetch_rows | Устаревший параметр. Количество строк, извлекаемых драйвером за один запрос к базе данных. | ||
prosync_options.use_online_logs_unsafe | Включает чтение изменений как из архивных, так и из активных REDO LOGS. Этот флаг позволяет получать изменения сразу после их появления в активных журналах. Не рекомендуется использовать, если требуется надёжность, так как из-за особенностей записи журналов в Oracle возможна потеря части операций. | false | |
prosync_options.validate_log_sequence | Проверка последовательности файлов журналов. Если какой-либо файл отсутствует, prosync завершает работу с ошибкой. Если допустима потеря части данных, установите этот параметр в false. | true | |
prosync_options.lob_write_size | Максимальное количество байтов, записываемое за один раз при сохранении больших объектов (LOB) | ||
prosync_options.operation_count_for_external_storage | Количество операций в одной транзакции, при достижении которого промежуточные данные записываются на диск | ||
prosync_options.transfer_id | Идентификатор трансфера данных. Используется для создания имён слотов репликации и публикаций. Этот параметр является обязательным. | d87708a4-c35e-4379-8845-d173683e5385 | |
prosync_options.null_char_replace | Строка для замены символов null, т.е. символов с нулевым кодом. Это глобальная настройка, которую можно переопределить для каждого столбца с помощью значения tasks.transform.column_name.null_char_replace. |
nil, но для источника Oracle и приёмника PostgreSQL/Postgres Pro: null_char_replace: replace: "" destination_types: ["varchar", "char", "bpchar", "text", "json", "jsonb", "xml"] | |
prosync_options.null_char_replace.replace | Символ или строка для замены \0x0000. Если значение не указано, замена не производится. | nil | replace: "\n" |
prosync_options.null_char_replace.destination_types | Указывает типы в базе данных-приёмнике, для которых необходимо заменять символы null. Символ или строка для замены \0x0000. Если значение не указано, замена не производится. | [] | destination_types: ["varchar", "char", "text", "json", "jsonb", "xml"] |
prosync_options.readers | Количество рабочих процессов, читающих из LogMiner. При положительном значении параметр use_online_logs_unsafe игнорируется. | 0 — медленное однопоточное чтение, которое, тем не менее, совместимо с use_online_logs_unsafe | |
prosync_options.use_failover_slots | Будут ли использоваться слоты для отработки отказа логической репликации. Этот параметр применим только к источникам PostgreSQL/Postgres Pro 17.0 или выше. | false | |
prosync_options.use_replica_auto_sync_slots | Включает логику prosync для распространения слотов репликации. Используйте, если нужны слоты для отработки отказа логической репликации на кластере, но ваша версия PostgreSQL/Postgres Pro ниже 17.0, или если нужно читать с реплики или в том числе с реплики. | false | |
prosync_options.postgres_slot_advance_interval | Как часто будет двигаться слот на всём кластере при включённом prosync_options.use_replica_auto_sync_slots. Значение должно быть больше 100 миллисекунд. | 5 с | 500 мс |
prosync_options.loaders | Количество рабочих процессов, которые пишут в приёмник. Если не указано или равно нулю, используется один рабочий процесс. | 0 | |
prosync_options.truncate_process | Обрабатывать ли операции truncate. При значении true для целевой таблицы в приёмнике будут обрабатываться операции truncate. | false | |
prosync_options.get_replication_message_timeout | Тайм-аут на получение сообщений от БД-источника PostgreSQL/Postgres Pro. Должен быть не меньше wal_sender_timeout. | 60 с | |
prosync_options.dump_mode | Режим дампа. Если он включён, вместо выполнения операции сохраняются в файл дампа. | false |