Меню

Пример создания дампа базы данных Oracle с помощью expdp



Экспорт и импорт дампа базы данных Oracle с помощью утилит expdp и impdp

Привет, сейчас мы с Вами рассмотрим технологию Oracle Data Pump, с помощью которой мы можем экспортировать данные в дамп и импортировать данные из дампа в СУБД Oracle. Эта технология подразумевает использование утилит expdp и impdp, которые заменяют традиционные exp и imp, и сегодня мы с Вами научимся использовать их для создания дампа базы данных и импорта данных из этого дампа.

Как Вы, наверное, уже догадались, сейчас речь пойдет о СУБД Oracle, а именно о технологии Oracle Data Pump и начнем мы, конечно же, с обзора данной технологии.

  1. Что такое Oracle Data Pump?
  2. Пример создания дампа базы данных Oracle с помощью expdp
  3. Создание дампа всей базы данных
  4. Создание дампа на основе отдельной схемы базы данных
  5. Создание дампа на основе отдельных таблиц базы данных
  6. Пример импорта данных из дампа Oracle с помощью impdp
  7. Импорт схемы из дампа
  8. Импорт таблиц из дампа

Что такое Oracle Data Pump?

Скриншот 1

Oracle Data Pump – это технология позволяющая экспортировать и импортировать данные и метаданные в СУБД Oracle Database в специальный формат файлов дампа.

Данная технология впервые появилась в версии 10g и включается во все последующие версии Oracle Database. Для экспорта и импорта данных до Oracle Data Pump, т.е. до версии 10g, использовались традиционные утилиты exp и imp, возможности которых в 10 и выше версиях сохранены в целях совместимости. Особенностью Oracle Data Pump является то, что экспорт и импорт данных происходит на стороне сервера, dmp-файл формируется на файловой системе сервера, а также главным преимуществом Oracle Data Pump перед традиционным способом экспорта и импорта данных является более быстрая выгрузка и загрузка данных.

В Oracle Data Pump для экспорта и импорта данных созданы новые серверные утилиты expdp и impdp. Формат файлов дампа (dmp) используемый в этих утилитах, несовместим с форматом, который используется в exp и imp.

Expdp – утилита для экспорта данных в СУБД Oracle Database в дамп.

Impdp – утилита для импорта данных в СУБД Oracle Database из дампа.

Утилиты expdp и impdp поддерживают несколько режимов работы:

  • Full – экспорт и импорт всей БД;
  • Schema — экспорт и импорт выбранных схем;
  • Table — экспорт и импорт выбранных таблиц;
  • Tablespace — экспорт и импорт выбранных табличных пространств;
  • Transportable Tablespace — экспорт и импорт табличных пространств для переноса на другой сервер.

Для того чтобы посмотреть подробную справку (описание параметров) по этим утилитам запустите их с параметром help=y, например

Примечание! Запуск утилит в операционной системе Windows запускается из командной строки. В случае если системный каталог bin СУБД Oracle не добавлен в переменную среды Path, то запускать утилиты нужно из данного каталога, т.е. предварительно перейдя в него (например, с помощью команды cd). Для демонстрации примеров ниже я использую Oracle Database Express Edition 11g Release 2 установленный на операционной системе Windows 7.

Пример создания дампа базы данных Oracle с помощью expdp

Для того чтобы создавать дампы в Oracle с помощью утилиты expdp предварительно необходимо определится с логической директорией, в которую Вы будете экспортировать дампы, т.е. где они будут храниться. Можно использовать стандартную директорию DATA_PUMP_DIR, но Вы, если хотите, можете создать новую, конкретно для Ваших целей отдельную директорию. Давайте создадим отдельный каталог для наших задач с экспортом и импортом данных, заодно и научимся создавать такие директории.

Сначала создаем каталог в файловой системе, например, я создал D:\OracleEX\ExportImport.

Затем уже создаем директорию в Oracle, для этого открываем SQL*Plus или SQLDeveloper и запускаем следующую команду (я запустил в SQL*Plus и директорию назвал ExportImport).

Скриншот 2

Чтобы посмотреть, какие директории уже созданы, можете использовать следующий запрос.

Теперь давайте перейдем непосредственно к экспорту. Я все действия выполнял от имени системного пользователя Oracle.

Создание дампа всей базы данных

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

Читайте также:  Google Sheets QUERY Function Tutorial SELECT WHERE LIKE AND OR LIMIT statements Part 1 Июль 2021

Скриншот 3

  • system/Pa$$w0rd – это логин и пароль пользователя в СУБД;
  • FULL=Y – параметр, который указывает, что мы делаем полный экспорт базы данных;
  • directory=ExportImport – параметр указывает директорию, в которую мы будем выгружать дамп файл;
  • dumpfile=DumpFull.dmp – параметр для указания названия дамп файла;
  • logfile=ExportFull.log – параметр для указания названия лог файла экспорта данных.

Создание дампа на основе отдельной схемы базы данных

В большинстве случае все-таки, наверное, понадобится экспортировать отдельную, выбранную схему базы данных, а не всю БД. Для того чтобы выгрузить схему, указываем параметр SCHEMAS.

Скриншот 4

SCHEMAS=OracleUser – параметр, в котором мы указываем схему для экспорта, в нашем случае OracleUser.

Создание дампа на основе отдельных таблиц базы данных

Иногда нужно экспортировать только одну или несколько таблиц, для этого мы можем использовать параметр TABLES. В примере ниже мы экспортируем таблицу OracleTable в схеме OracleUser.

Скриншот 5

TABLES=OracleUser.OracleTable – это параметр, в котором мы указываем таблицу для экспорта (или несколько таблиц через запятую).

Пример импорта данных из дампа Oracle с помощью impdp

Сейчас давайте перейдем к импорту данных из дампа. Как Вы помните, для этих целей у нас существует утилита impdp.

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

Для импорта всей схемы запускаем утилиту impdp с параметром SCHEMAS. В случае если у Вас уже создана схема, которую Вы собираетесь импортировать, то ее предварительно нужно удалить. Для удаления схемы используйте следующий запрос в SQL*Plus или SQLDeveloper

Скриншот 6

После этого, для того чтобы импортировать схему, запускаем утилиту impdp со следующими параметрами

Скриншот 7

  • system/Pa$$w0rd – это логин и пароль пользователя в СУБД;
  • SCHEMAS=OracleUser – параметр, который указывает, что мы хотим импортировать конкретную схему (в нашем случае OracleUser);
  • directory=ExportImport – параметр указывает директорию, в которой расположен файл дампа данных;
  • dumpfile=DumpSCHEMAS.dmp – параметр для указания названия дамп файла;
  • logfile=ImportSCHEMAS.log – параметр для указания названия лог файла импорта данных.

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

Если Вы хотите импортировать одну или несколько таблиц, то можете использовать параметр TABLES, также как и при экспорте. В случае если таблица или таблицы уже созданы, т.е. существуют, то их необходимо или удалить вручную (DROP TABLE) или указать параметр TABLE_EXISTS_ACTION, который может принимать следующие значения:

  • SKIP — оставить существующую таблицу как есть, и переходить к следующей таблице;
  • APPEND — добавить строки в таблицу;
  • TRUNCATE — удалить все строки и добавить новые из дампа;
  • REPLACE — удалить таблицу и создать ее с данными из дампа.

Для примера давайте запустим impdp с параметром TABLE_EXISTS_ACTION=REPLACE, для того чтобы перезаписать существующую таблицу.

Скриншот 8

Заметка! Для изучения языка SQL как стандарта, чтобы его можно было использовать в любой СУБД, рекомендую почитать книгу «SQL код», в ней рассматриваются конструкции SQL, которые будут работать везде и не привязаны к какой-то конкретной СУБД.

На этом у меня все, надеюсь, материал был Вам полезен, пока!

Источник

Русские Блоги

Три способа экспорта структуры таблицы и данных с помощью pl / sql developer (воспроизведено)

Если вы экспортируете только структуру таблицы (оператор таблицы) и не экспортируете данные таблицы, вы можете использовать Инструменты — Экспорт пользовательских объектов.
Выберите таблицу для экспорта, задайте путь экспорта и различные параметры и нажмите «Экспорт в OK». PS: Этот метод может экспортировать только таблицы, принадлежащие этому пользователю, таблицы других пользователей не могут быть экспортированы, для экспорта рекомендуется использовать командную строку (exp, )
Если вы хотите экспортировать всю структуру таблицы, данные таблицы, триггеры, функции и т.п., вы можете использовать Инструменты — Экспорт таблиц.

После завершения добавления нажмите кнопку «Отправить» (галочка), чтобы отправить изменения. (Www.zdh1909.com) Подробная ссылка на источник (перепечатайте, пожалуйста, эту ссылку):http://www.zdh1909.com/html/sql/11666.html

Интеллектуальная рекомендация

Возникли проблемы с Maven

основное содержание 1. Описание проблемы 2. Решение 2.1 Удалить _remote.repositories 2.2 Единый источник загрузки 1. Описание проблемы Поскольку рабочая среда не подключена к внешней сети, каждый раз.

Читайте также:  Как понять проанализируйте таблицу

Решите проблему, что запросы установлены, но не могут быть импортированы

У меня есть запросы на установку pip, но я не могу импортировать запросы позже в pycharm, Было исключено, что это не проблема конфигурации переменной среды. Запросы на импорт в консоли Python, Traceba.

Сводка ExceptionMappingInterceptor

This interceptor forms the core functionality of the exception handling feature. Exception handling allows you to map an exception to a result code, just as if the action returned a result code instea.

codeforces E. Orac and Game of Life

тема Значение: Для каждого сиденья, если есть одна из этой решетки с тем же цветом, то после переворачивания, то окружающий цвет может перевернуть, дать вам t t tЗапрос, у каждого есть i , j , p i,j,p.

hdu5414 (поисковый набор объединений + минимальное остовное дерево)

ack likes to travel around the world, but he doesn’t like to wait. Now, he is traveling in the Undirected Kingdom. There are nn cities and mm bidirectional roads connecting t.

Вам также может понравиться

sqlmap

оглавление Sqlmap Простое использование Sqlmap Определить, существует ли указанный URL в WAF, и обойти Определить, есть ли уязвимость SQL-инъекций в указанном URL Просмотр всех пользователей базы данн.

Конфигурация IP ядра Xilinx, пошаговая проверка Xilinx Serdes GTX до 8,0 Гбит / с

Конфигурация IP ядра Xilinx, пошаговая проверка Xilinx Serdes GTX до 8,0 Гбит / с Раньше я использовал serdes для запуска относительно низкоскоростных приложений, 3,125 Гбит / с. Согласно официальным .

spring-boot-data-jdbc

pom.xml application.properties department.sql HelloController.

Как получить случайные числа, которые не повторяются в определенном диапазоне

Краткое введение Генерация случайного числа часто требуется, и часто используется функция rand, как показано ниже. Этот метод прямого использования функции rand для получения случайного числа использу.

Источник

Oracle Data Pump в Oracle Database 10g

Перевод

Oracle Data Pump — новая, более быстрая и гибкая альтернатива утилитам «exp» и «imp», использовавшимся в предыдущих версиях Oracle. В дополнение к основным функциям импорта и экспорта, Data Pump предоставляет PL/SQL API и поддержку внешних таблиц.

Начало

Чтобы получить возможность работы с примерами, необходимо, для начала, разблокировать учётную запись SCOTT и создать объект-директорию, с которым нам предстоит работать:

Экспорт/импорт таблиц

Параметр «TABLES» используется для указания таблицы или таблиц, которые должны быть экспортированы. В следующем примере показан синтаксис экспорта и импорта таблиц:

Добавление параметра «TABLE_EXISTS_ACTION=APPEND» позволяет импортировать данные путём добавления в уже существующие таблицы.

Экспорт/импорт схем

Параеметр «OWNER», имевший место быть в exp, заменён на параметр «SCHEMAS», который используется для указания экспортируемой схемы. В следующем примере приведён синтаксис экспорта/импорта схемы:

Экспорт/импорт баз данных

Параметр «FULL» указывает, что требуется экспортировать базу данных полностью. Следующий пример демонстрирует синтаксис экспорта и импорта:

Дополнительная информация

В отличии от утилит exp и imp, все файлы Data Pump: и «.dmp», и «.log», — создаются на Oracle-сервере, а не на клиентском компьютере.

Все действия Data Pump выполняются множественными задачами (jobs) (server processes not DBMS_JOB jobs). Эти задачи управляются главным управляюшим процессом, который использует расширенную очередь (Advanced Queuing). Во время выполнения, создаётся и используется главным управляющим процессом таблица очереди, которая называется по имени задания. Таблица удаляется после успешного выполнения задания Data Pump. Задание и очередь могут быть названы на Ваше усмотрение с использованием параметра «JOB_NAME». Остановка клиентского процесса не останавливает связанное с ним Data Pump задание. Передача клиенту комбинации клавиш «Ctrl+C» во время выполнения задания остановит вывод на стандартное устройство вывода и переведёт в командную строку. Ввод «status» в этой командной строке позволить проследить за состоянием текущего задания:

Производительность Data Pump может быть улучшена использованием параметра «PARALLEL». Этот параметр следует использовать совместно с шаблоном «%U» в параметре «DUMPFILE» для разрешения создания или чтения множественных dump-файлов:

Параметры «INCLUDE» и «EXCLUDE» могут быть использованы для ограничения импорта/экспорта указанных объектов. Когда используется параметр «INCLUDE», в экспорт будут включены только указанные объекты:

Читайте также:  Развитие двойни по неделям беременности

При использовании параметра «EXCLUDE», все объекты, кроме указанных в параметре, будут включены в экспорт:

Кроме всего прочего, нужно учитывать особенности реализации среды. Например, в bash строка может выглядеть так:

Data Pump API

Как только задание запущено, его статус можно проверить используя следующий запрос:

Внешние таблицы

У Oracle появилась поддержка технологий Data Pump, с помощью которых можно преносить данные во внешние таблицы. Драйвер доступа ORACLE_DATAPUMP может быть использован для выгрузки данных в экспорт-файл и последующей перезагрузке их. Выгрузка данных происходит, когда внешняя таблица создана с использованием кляузы «AS»:

Затем данные могут быть запрошены так:

Синтаксис создания указателя на внешнюю таблицу в существующем файле аналогичен, но без кляузы «AS»:

Опция «HELP=Y» заставит отобразить описание всех доступных параметров:

Дополнительную информацию можно посмотреть здесь:

Источник

импорт и экспорт в ORACLE (imp и exp)

Поэтому решил описать в примерах, как это реализовано у меня, на реальной системе.

Итак,у меня стоит Oracle XE11 на Debian 7.

Начну я издалека. С создания пользователей и табличных пространств.
далее станет понятно, почему это важно.
у меня в системе два пользователя, которые являются собственниками объектов БД.
и для каждого пользователя свой tablespace.

* пользователь inventory отвечает за объекты, хранящие конфигурации сети.
эта информация модифицируется в режиме реального времени человеками.
и потерять ее будет крайне неприятно. Поэтому она каждую ночь в час наименьшей
нагрузки отправляется в экспорт. хранятся все экспорты за каждый день с момента запуска системы.

* пользователь alarm отвечает за объекты хранящие данные аварийной статистики сети.
потеря этой информации будет неприятна, но не критична. экспорт выполняется каждый день,
но хранятся файлы лишь 7 последних дней.

Создание пользоватей

запускаем
sqlplus /nolog
и последовательно даем команды :

SET LINESIZE 120 сделает ширину экрана 120 символов

connect system/technic@127.0.0.1;

подключиться к локальному Oracle от пользователя system с паролем technic
вам вместо technic нужно написать тот пароль который указвался при установке

create tablespace inventory datafile ‘/u01/app/oracle/oradata/XE/inventory.dbf’ size 512M
autoextend on next 128M maxsize 1024M
/

создает табличное пространство с именем inventory, файлом данных /u01/app/oracle/oradata/XE/inventory.dbf
первоначальным размером 512мб и авторасширением по 128мб вплоть до 1024мб

create tablespace alarms datafile ‘/u01/app/oracle/oradata/XE/alarms.dbf’ size 512M autoextend on next 512M maxsize 4096M
/

строки 1-7:
создаем пользователя inventory
c паролем inventory_p
в табличном пространстве inventory,
временное табл. пространство TEMP
с профилем DEFAULT
и неограниченной квотой в пространстве inventory

строки 9-24:
выдаем права пользователю inventory
у меня так, а вы свои права внимательно выдавайте,
по принципу минимальных привилегий.
например SELECT ANY TABLE возможно и не нужен.
——————————————————-
аналогично для пользователя alarms:

вводим quit и выходим из sqlplus.

ЭКСПОРТ
существует несколько режимов экспорта.

я использую режим, в котором экспортируются все объекты пользователя
от имени которого запущен экспорт.

USERID= login/password@dbname — идентификатор подключения
FEEDBACK=1000 выводит на экран подобие индикатора прогресса.
COMPRESS=Y включает сжатие данных в файле
FILE=inventory.dat имя файла, куда записывать данные экспорта
LOG=inventory-exp.LOG имя файла, куда записывать лог экспорта

ИМПОРТ

параметры импорта аналогичны параметрам экспорта, но есть один подводный камень :
поскольку импорт в данном случае запускается от имени определенного пользователя,
то этот пользователь должен существовать, и иметь необходимые прививилегии.
например если при импорте у пользователя inventory не будет привилегии create sequence
импорт не сможет импортировать последовательности, т.к. у пользователя нет соответсвующей
привилегии. В лог будет записана ошибка «недостаточно привилегий».

Поэтому если мы собираемся импортировать данные на только что установленную БД,
то нужно создать пользователей и выдать им привилегии не меньше тех, что были
при экспорте — иначе некоторые объекты могут не быть импортированы по причине недостатка привилегий.

У меня была ситуация, когда приходилось восстанавливать данные после экспериментов с БД.
В этом случае я выполнял экспорт данных,
а перед восстановлением удалял пользователей и их табличные пространства:

затем создаем по-новому табличные пространства,
пользователей, и назначаем им привилегии как рассказано в начале статьи.

Источник