Администрируем
Oracle, SQL Server, PostgreSQL

Импорт и экспорт в Oracle

Oracle Database — одна из самых известных коммерческих нереляционных СУБД в мире. Для импорта и экспорта данных и метаданных из ADO-совместимых источников (MS Access, БД MS SQL и т.д.) в особый формат файлов дампа, Oracle предлагает технологию, известную как Oracle Data Pump.

Структура Oracle Data Pump

Data Pump имеет трехкомпонентную структуру, которая включает:
  • Пакет DBMS_DATAPUMP, отвечающий за загрузку и выгрузку метаданных словаря данных. Задания по загрузке и выгрузке запускаются с помощью процедур, которые и составляют технологическое ядро данного пакета. Без него невозможна работа утилит Data Pump export и Data Pump Import, о которых мы подробнее расскажем ниже.
  • Пакет DBMS_METADATA, появившийся в версии Oracle 9i и позволяющий пользователям за одно обращение извлекать и изменять метаданные любых объектов, например таблиц, индексов, процедур и т. д.
  • Две утилиты: Data Pump Export (expdp) и Data Pump Import (impdp) — клиенты, которые Oracle, начиная с версий 10g, предлагает использовать для выгрузки и загрузки файлов. Обе программы могут работать как в режиме командной строки, так и в интерактивном режиме.

Экспорт данных в СУБД Oracle: Data Pump Export

Data Pump Export – программа, позволяющая выгружать данные в файлы ОС, известные как файлы дампа (dumps files), в формате, работать с которым может только утилита Data Pump Import.

В Data Pump Export существует пять основных режимов выполнения заданий экспорта.
  • Режим экспорта всей базы данных (Full Mode)
С помощью параметра FULL позволяет за один сеанс осуществить полный экспорт БД. Для его использования требуется учетная запись с привилегией BECOME USER, позволяющей использовать EXPORT_FULL_DATABASE.
  • Режим схем (Schema Mode)
С помощью параметра SCHEMAS позволяет экспортировать данные или объекты конкретного пользователя (схемы, в терминах БД).
  • Режим таблиц (Table Mode)
Позволяет экспортировать конкретные таблицы с помощью параметра TABLES.
  • Режим табличных пространств (Tablespace Mode)
Позволяет экспортировать таблицы, индексы и прочие сегменты, содержащиеся в табличных пространствах, с помощью параметра TABLESPACES.
  • Режим транспортируемых (переносимых) табличных пространств.
Экспорт переносимого табличного пространства указывается с помощью параметра TRANSPORT_TABLESPACES. В режиме переносимого табличного пространства экспортируются только метаданные для таблиц (и их зависимых объектов) в пределах указанного набора табличных пространств.

Файлы данных табличного пространства копируются отдельной операцией. Затем выполняется импорт переносимого табличного пространства, чтобы импортировать файл дампа, содержащий метаданные, и указать файлы данных, которые будут использоваться. Режим переносимого табличного пространства требует, чтобы указанные таблицы были полностью автономными. То есть все сегменты хранения всех таблиц (и их индексов), определенные в наборе табличных пространств, также должны содержаться в этом наборе.

Если есть нарушения самодостаточности, экспорт выявляет все проблемы, не выполняя фактически экспорт. Экспорт переносимого табличного пространства нельзя перезапустить после остановки.

Импорт данных в СУБД Oracle: Data Pump Import

Data Pump Import — программа, использующаяся для загрузки данных в целевую базу данных. В Data Pump Import есть два основных режима.

Импорт схемы из дампа

Для его осуществления используется параметр SCHEMAS. Если импортируемая схема уже создана у вас под тем же именем, требуется удалить ее, выполнив команду «DROP USER OracleUser CASCADE;» в SQL*Plus (утилита-интерпретатор командной строки для Oracle Database) или среде разработки SQLDeveloper.

Далее, для импорта схемы потребуется запустить утилиту impdp с такими параметрами, как «impdp system/Pa$$w0rd SCHEMAS=Oracle User directory=Export Import» и «dumpfile=DumpSCHEMAS.dmp logfile=ImportSCHEMAS.log».

Импорт таблиц из дампа

Если нужно импортировать лишь часть таблиц из базы данных — также, как и в случае с экспортом, воспользуйтесь параметром TABLES. Если эти таблицы уже существуют, дропните их с помощью параметра TABLE_EXISTS_ACTION или вручную.
Дополнительным, и часто используемым, режимом импорта является загрузка данных через dblink - NETWORK_LINK.

Параметр NETWORK_LINK инициирует импорт через подключение (dblink) к удаленной базе данных. Это означает, что система, к которой подключен клиент impdp, связывается с базой данных-источником, на которую указывает ссылка source_database_link, извлекает из нее данные и записывает данные в базу данных на подключенном экземпляре. Файлы дампа не используются.

Дополнительные параметры для импорта или экспорта в Oracle

Ознакомиться подробнее с параметрами импорта и экспорта в Oracle Data Pump можно вызвав справку, запустив утилиту expdp или impdp с параметром help=y. Вы увидите дополнительные параметры импорта и экспорта.
  • CONTENT — нужен для фильтрации данных, помещаемых в дамп при экспорте.
  • EXCLUDE и INCLUDE — исключает или включает отдельные типы объектов БД при импорте / экспорте.
  • REMAP_TABLE — при переносе табличных пространств позволяет переименовывать таблицу.
  • REMAP_SCHEMA — нужен для перемещения объектов между схемами.
  • REMAP_TABLESPACE — нужен для перемещения объектом между табличными пространствами.
  • REMAP_DATAFIE — приводит к единообразию названия файлов при перемещении БД между платформами с разными форматами названий.
  • TRASNSFORM — нужен для исключать из импорта отдельные атрибуты хранения и атрибуты других видов.

Когда мы используем импорт / экспорт в Oracle?

Технология Oracle Data Pump применяется для создания , сохранения и восстановления копий данных в БД Oracle. Другое назначение импорта и экспорта в Oracle — миграция данных между серверами, базами данных и схемами, которая осуществляется посредством дампов или сетевого подключения типа dblink.

Хотя Oracle — качественное и хорошо масштабируемое решение, на сегодняшний момент в России прекращена его официальная поддержка, что усложняет дальнейшее использование этой СУБД. В этой связи мы в «ДБ-сервис» предлагаем услуги по миграции с Oracle на PostgreSQL с предварительным аудитом и последующей поддержкой.

Эксперт ДБ-сервис