4.4. Настройка источника и приёмника ProGate #

Данный раздел описывает настройку, необходимую для запуска ProGate.

4.4.1. Настройка источника #

4.4.1.1. Источник Oracle #

Для настройки работы с источником Oracle необходимо выполнить следующие действия:

  • Назначьте пользователю, под которым будет выполняться миграция, следующие привилегии:

    GRANT CONNECT, RESOURCE TO PROGATE_USER;
    
    GRANT EXECUTE ON DBMS_LOGMNR TO PROGATE_USER;
    GRANT EXECUTE ON SYS.DBMS_CRYPTO TO PROGATE_USER;  -- для procheck для сравнивания LOB объектов
    
    GRANT EXECUTE_CATALOG_ROLE TO PROGATE_USER;
    GRANT LOGMINING TO PROGATE_USER;
    
    GRANT SELECT ON V_$LOG TO PROGATE_USER;
    GRANT SELECT ON V_$LOGFILE TO PROGATE_USER;
    GRANT SELECT ON V_$LOGMNR_LOGS TO PROGATE_USER;
    GRANT SELECT ON V_$LOGMNR_CONTENTS TO PROGATE_USER;
    GRANT SELECT ON V_$LOGMNR_PARAMETERS TO PROGATE_USER;
    GRANT SELECT ON V_$ARCHIVED_LOG TO PROGATE_USER;
    GRANT SELECT ON V_$TRANSACTION TO PROGATE_USER;
    GRANT SELECT ON V_$DATABASE TO PROGATE_USER;

4.4.2. Настройка приёмника #

Примечание

Для приёмника в виде файлов формата Parquet специальная настройка не требуется.

4.4.2.1. Приёмник Postgres Pro #

Для настройки работы с приёмником Postgres Pro выполните следующие действия:

  • Установите и активируйте следующие расширения, доступные, начиная с Postgres Pro 16.4:

    CREATE EXTENSION IF NOT EXISTS pgpro_bfile;
    CREATE EXTENSION IF NOT EXISTS pgpro_sfile;
    CREATE EXTENSION IF NOT EXISTS dbms_lob;
    
    do
    $$
    BEGIN
        PERFORM sf_initialize();
    EXCEPTION WHEN OTHERS THEN
        RAISE NOTICE 'already initialized';
    end;
    $$;
  • Для переноса объектов BFILE создайте в приёмнике те же псевдонимы, что и в базе-источнике:

    do
    $$
        BEGIN
            PERFORM bfile_directory_create('ALIAS1', '/tmp/alias1');
        EXCEPTION WHEN OTHERS THEN
            RAISE NOTICE 'alias1 already exists';
        end;
    $$;
    
    do
    $$
        BEGIN
            PERFORM bfile_directory_create('ALIAS2', '/tmp/alias2');
        EXCEPTION WHEN OTHERS THEN
            RAISE NOTICE 'alias2 already exists';
        end;
    $$;
  • Перенесите схему из базы-источника с помощью ora2pgpro.