Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Data Transfer
  • Доступные трансферы
  • Начало работы
    • Все инструкции
    • Подготовка к трансферу
      • Управление эндпоинтами
      • Миграция эндпоинтов в другую зону доступности
        • Источник
    • Управление трансфером
    • Работа с базами данных во время трансфера
    • Мониторинг состояния трансфера
  • Решение проблем
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • Обучающие курсы

В этой статье:

  • Сценарии передачи данных из Oracle
  • Подготовка базы данных источника
  • Настройка эндпоинта-источника Oracle
  • Настройка приемника данных
  1. Пошаговые инструкции
  2. Настройка эндпоинтов
  3. Oracle
  4. Источник

Передача данных из эндпоинта-источника Oracle

Статья создана
Yandex Cloud
Обновлена 25 декабря 2024 г.
  • Сценарии передачи данных из Oracle
  • Подготовка базы данных источника
  • Настройка эндпоинта-источника Oracle
  • Настройка приемника данных

С помощью сервиса Yandex Data Transfer вы можете переносить данные из базы Oracle и реализовывать различные сценарии переноса, обработки и трансформации данных. Для реализации трансфера:

  1. Ознакомьтесь с возможными сценариями передачи данных.
  2. Подготовьте базу данных Oracle к трансферу.
  3. Настройте эндпоинт-источник в Yandex Data Transfer.
  4. Настройте один из поддерживаемых приемников данных.
  5. Cоздайте и запустите трансфер.
  6. Выполняйте необходимые действия по работе с базой и контролируйте трансфер.
  7. При возникновении проблем, воспользуйтесь готовыми решениями по их устранению.

Сценарии передачи данных из OracleСценарии передачи данных из Oracle

  1. Миграция — перенос данных из одного хранилища в другое. Часто это перенос базы из устаревших локальных баз в управляемые облачные.

  2. Загрузка данных в витрины — процесс трансфера подготовленных данных в хранилища с целью последующей визуализации.

Подробное описание возможных сценариев передачи данных в Yandex Data Transfer см. в разделе Практические руководства.

Подготовка базы данных источникаПодготовка базы данных источника

Примечание

В некоторых версиях Oracle для системных объектов вместо префикса V$ используются V_$. Например, V_$DATABASE вместо V$DATABASE.

Измените префиксы, если вы столкнулись с ошибкой вида can only select from fixed tables/views при выдаче прав на системные объекты.

Oracle
  • Чтобы подготовить источник к трансферу типа Копирование:

    1. Создайте пользователя, от имени которого трансфер подключится к источнику:

      CREATE USER <имя_пользователя> IDENTIFIED BY <пароль>;
      GRANT CREATE SESSION TO <имя_пользователя>;
      
    2. Выдайте права созданному пользователю:

      GRANT SELECT ON V$DATABASE TO <имя_пользователя>;
      GRANT SELECT ON DBA_EXTENTS TO <имя_пользователя>;
      GRANT SELECT ON DBA_OBJECTS TO <имя_пользователя>;
      GRANT FLASHBACK ANY TABLE TO <имя_пользователя>;
      

      При необходимости, право FLASHBACK можно выдать не на все таблицы (ANY TABLE), а только на те, которые нужно скопировать.

    3. Выдайте пользователю права на чтение таблиц, которые нужно скопировать.

  • Чтобы подготовить источник к трансферу типа Репликация:

    1. Создайте пользователя, от имени которого трансфер подключится к источнику:

      CREATE USER <имя_пользователя> IDENTIFIED BY <пароль>;
      ALTER USER <имя_пользователя> DEFAULT tablespace USERS TEMPORARY tablespace TEMP;
      ALTER USER <имя_пользователя> quote unlimited on USERS;
      
      GRANT 
          CREATE SESSION,
          execute_catalog_role,
          SELECT ANY TRANSACTION,
          SELECT ANY DISCTIONARY,
          CREATE PROCEDURE,
          LOGMINING 
      TO <имя_пользователя>;
      
    2. Выдайте права созданному пользователю:

      GRANT SELECT ON V$DATABASE TO <имя_пользователя>;
      GRANT SELECT ON V$LOG TO <имя_пользователя>;
      GRANT SELECT ON V$LOGFILE TO <имя_пользователя>;
      GRANT SELECT ON V$ARCHIVED_LOG TO <имя_пользователя>;
      
      GRANT SELECT ON dba_objects TO <имя_пользователя>;
      GRANT SELECT ON dba_extents TO <имя_пользователя>;
      
      GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <имя_пользователя>;
      GRANT SELECT ON SYSTEM.LOGMNR_COL$ TO <имя_пользователя>;
      GRANT SELECT ON SYSTEM.LOGMNR_OBJ$ TO <имя_пользователя>;
      GRANT SELECT ON SYSTEM.LOGMNR_USER$ TO <имя_пользователя>;
      GRANT SELECT ON SYSTEM.LOGMNR_UID$ TO <имя_пользователя>;
      
    3. Выдайте пользователю права на чтение таблиц, которые нужно реплицировать.

    4. Включите Minimal Supplemental Logging с первичными ключами, для этого выполните:

      ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
      
  • Если вы работаете в CDB-среде, выполните следующие настройки:

    1. Создайте пользователя Common User:

      CREATE USER C##<имя_пользователя> IDENTIFIED BY <пароль> CONTAINER=all;
      ALTER USER C##<имя_пользователя> DEFAULT TABLESPACE USERS temporary tablespace TEMP CONTAINER=all;
      ALTER USER C##<имя_пользователя> quota unlimited on USERS CONTAINER=all;
      ALTER USER C##<имя_пользователя> SET container_data = (cdb$root, <имя_вашей_PCB>) CONTAINER=current;
      
      GRANT 
          CREATE SESSION,
          execute_catalog_role,
          SELECT ANY TRANSACTION,
          SELECT ANY DICTIONALY,
          CREATE PROCEDURE,
          LOGMINING,
          SET CONTAINER
      TO C##<имя_пользователя> CONTAINER=ALL;
      

      При необходимости, можно указать только контейнер cdb$root и контейнер с таблицами, которые нужно перенести.

    2. Чтобы пользователь мог переключаться на контейнер cdb$root, выдайте ему права ALTER SESSION:

      GRANT ALTER SESSION TO C##<имя_пользователя>;
      
    3. Выдайте права созданному пользователю:

      GRANT SELECT ON V$DATABASE TO C##<имя_пользователя> CONTAINER=ALL;
      GRANT SELECT ON V$LOG TO C##<имя_пользователя> CONTAINER=ALL;
      GRANT SELECT ON V$LOGFILE TO C##<имя_пользователя> CONTAINER=ALL;
      GRANT SELECT ON V$ARCHIVED_LOG TO C##<имя_пользователя> CONTAINER=ALL;
      
      GRANT SELECT ON dba_objects TO C##<имя_пользователя> CONTAINER=ALL;
      GRANT SELECT ON dba_extents TO C##<имя_пользователя> CONTAINER=ALL;
      
      GRANT EXECUTE ON SYS.DBMS_LOGMNR TO C##<имя_пользователя> CONTAINER=ALL;
      GRANT SELECT ON SYSTEM.LOGMNR_COL$ TO C##<имя_пользователя> CONTAINER=ALL;
      GRANT SELECT ON SYSTEM.LOGMNR_OBJ$ TO C##<имя_пользователя> CONTAINER=ALL;
      GRANT SELECT ON SYSTEM.LOGMNR_USER$ TO C##<имя_пользователя> CONTAINER=ALL;
      GRANT SELECT ON SYSTEM.LOGMNR_UID$ TO C##<имя_пользователя> CONTAINER=ALL;
      

Настройка эндпоинта-источника OracleНастройка эндпоинта-источника Oracle

При создании или изменении эндпоинта задайте настройки подключения к кластеру Oracle.

Настройки приведены для пользовательской инсталляции, когда все поля заполняются вручную.

Консоль управления
  • Тип подключения — выберите тип подключения к кластеру Oracle.

  • Для подключения типа Инстанс:

    • Хост — укажите IP-адрес или FQDN хоста, к которому необходимо подключиться.

    • Порт — укажите номер порта, который сервис Data Transfer будет использовать для подключения.

    • Тип — укажите Oracle SID или Service Name в соответствующем поле ниже.

  • Для подключения типа Строка подключения TNS укажите строку подключения к Oracle RDBMS в соответствующем поле ниже.

  • Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • Пароль — укажите пароль пользователя для доступа к базе данных.

  • PDB-контейнер — укажите имя PDB контейнера, к которому нужно подключиться. Если вы не работаете в CDB-среде, оставьте это поле пустым.

  • Список включённых таблиц — будут передаваться данные только из таблиц этого списка. Задается с помощью регулярных выражений.

  • Список исключённых таблиц — данные таблиц из этого списка передаваться не будут. Задается с помощью регулярных выражений.

    Списки включают имя схемы (описание содержания, структуры и ограничений целостности базы данных) и имя таблицы. Для обоих списков поддерживаются выражения вида:

    • <имя_схемы>.<имя_таблицы> — полное имя таблицы;
    • <имя_схемы>.* — все таблицы в указанной схеме;
    • <имя_таблицы> — таблица в схеме по умолчанию.

    Имена включенных и исключенных таблиц должны соответствовать правилам именования идентификаторов в Oracle. Подробнее читайте в документации Oracle. Двойные кавычки внутри имени таблицы не поддерживаются. Экранирование внешних двойных кавычек не требуется.

  • Преобразовывать тип "NUMBER" в "Int64" — включите эту настройку для преобразования типа NUMBER (без параметров) в INT64. Параметризованные типы NUMBER (precision, scale) автоматически преобразуются в целочисленные типы, где это возможно.

Настройка приемника данныхНастройка приемника данных

Настройте один из поддерживаемых приемников данных:

  • PostgreSQL;
  • ClickHouse®;
  • Greenplum®.

Полный список поддерживаемых источников и приемников в Yandex Data Transfer см. в разделе Доступные трансферы.

После настройки источника и приемника данных создайте и запустите трансфер.

Была ли статья полезна?

Предыдущая
Приемник
Следующая
Источник
Проект Яндекса
© 2025 ООО «Яндекс.Облако»