Вы находитесь на странице: 1из 3

Использование expdp / impdp в Oracle 11 | elmisery's blog 17.12.

2014

elmisery's blog
Главная
Menu

Вы здесь
Главная » Использование expdp / impdp в Oracle 11

Использование expdp / impdp в Oracle 11


Posted on: 25 April 2014
By: misery
На прошедшей недели стояла задача перенести базы данных с Oracle 11.1 на Oracle 11.2, при этом общий объем баз данных
порядка 26 Gb (не много, но и не мало). Т.к. от других рабочих процессов отрываться было нельзя (а если все базы
сворачивать локально старыми утилитами exp / imp было бы невозможно работать) решили изучить и воспользоваться
новыми утилитами expdp / impdp.
Главная особенность данных утилит, что они не нагружают локальную станцию, а запускают job на сервере, и используют
непосредственно ресурсы сервера БД.
А теперь поделюсь собственным опытом по их использованию.
Главный, на мой взгляд, недостаток данных утилит, это необходимость прав доступа на папки указанной в параметре
DIRECTORY=data_pump_dir (по умолчанию параметр задается именно data_pump_dir). Также при переносе баз с сервера на
другой сервер, приходится дампы руками копировать с одного сервера на другой.
Вот общий вид командной строки сворачивания БД, которую я использовал для выполнения собственной задачи:
expdp %1/%2@%3 SCHEMAS=%4 DIRECTORY=data_pump_dir DUMPFILE=%4.expdp LOGFILE=%4_exp.log
EXCLUDE=GRANT COMPRESSION=NONE FULL=N JOB_NAME=backup
Теперь более подробно разберем входные параметры приведенной строки:
%1 - имя пользователя Oracle, под которым будет производиться сворачивание БД
%2 - пароль пользователя
%3 - TNS имя сервера
%4 - сворачиваемая БД
Т.к. мне необходимо было переносить данных с одного сервера на другой, то у меня стоит EXCLUDE=GRANT.
COMPRESSION=NONE поставил по привычке использования exp/imp.
JOB_NAME=backup данный параметр поставил по многочисленным советам в интернете. Оказывается данные утилиты не
всегда правильно определяют job, под которым производить процессы сворачивания/разворачивания БД.
Остальное я думаю понятно интуитивно.
А теперь приведем командую строку для разворачивания БД (не забудьте назначить права тому пользователю, под которым
собираетесь делать импорт):
impdp %1/%2@%3 DUMPFILE=%4.expdp SCHEMAS=%4 REMAP_SCHEMA=%4:%5 LOGFILE=%4_imp.log
DIRECTORY=data_pump_dir JOB_NAME=backup
Входные параметры:
%1 - имя пользователя Oracle, под которым будет разворачиваться БД
%2 - пароль пользователя
%3 - имя сервера
%4 - имя дампа. В моем случае данный параметр совпадает с именем БД, которую мы свернули.
%5 - имя новой БД
В данном импорте у меня имя свернутой БД не совпадает с именнем БД, в которую разворачиваем. Если этого не
требуется, то достаточно удалить часть строки REMAP_SCHEMA=%4:%5. Остальные параметры, описаны выше.
Хотелось бы отметить несколько нюансов:
Если в expdp указано EXCLUDE=GRANT(при чем не обязательное GRANT), то если вы тоже самое укажете в строке для
impdp, то вы получите ошибку.
Для пользователя под которым вы собираетесь сворачивать/разворачивать БД должны быть права на папку указанную в
параметре DIRECTORY.
Заходим:
set nls_lang=russian_cis.ru8pc866
sqlplus /nolog
conn
SYS /AS SYSDBA

http://elmisery.ru/blog/ru/expimporacle11 1/3
Использование expdp / impdp в Oracle 11 | elmisery's blog 17.12.2014

enter passwd
Мне не нравится каталог по умолчанию. Предпочитаю его удалить
DROP DIRECTORY DATA_PUMP_DIR;
Создаю директории
CREATE DIRECTORY dpdumps as '/u03/oradata/datapump/dumps';
CREATE DIRECTORY dplogs as '/u03/oradata/datapump/logs';
Делегирую права на запись в данную директорию пользователю scott
GRANT READ, WRITE ON DIRECTORY dpdumps TO scott;
GRANT READ, WRITE ON DIRECTORY dplogs TO scott;
Если необходимо предоставить возможность экспорта данных в указанные каталоги для любых схем:
GRANT READ, WRITE ON DIRECTORY dpdumps TO PUBLIC;
GRANT READ, WRITE ON DIRECTORY dplogs TO PUBLIC;

Источник1: http://lev-ponomarev.blogspot.ru/2011/04/expdp-impdp-oracle.html
Источник2: http://oracle-dba.ru/oracle_data_pump.php

Tags:
oracle
expdp
impdp
Войдите, чтобы оставлять комментарии

Языки
Русский
English

Вход на сайт
Имя пользователя *
Пароль *
Забыли пароль?

Последние материалы
Проверяем доступность TCP / UDP портов
misery
Скрипт преобразования lossless аудио 24/96 (24/192) в 16/44
misery
Pure-FTPd установка и настройка на Ubuntu 12.04 LTS
misery
KVIrc + QMMP NowPlaying-скрипт модуль mediaplayer в IRC
misery
KDE disabling the Recently-Used Feature
misery
Настройка ProFTPd анонимный FTP Server
misery
Too many open files in system Ubuntu Server 12.04
misery
Отключить AppArmor в Ubuntu 12.04 Server
misery
Настройка Samba Ubuntu 12.04 анонимный доступ
misery
Oracle 11g ORA-28001: the password has expired / срок действия пароля истек
misery

Сейчас на сайте
Пользователей онлайн: 0.

Облако тегов
terminal
console

http://elmisery.ru/blog/ru/expimporacle11 2/3
Использование expdp / impdp в Oracle 11 | elmisery's blog 17.12.2014

linux
ubuntu
kde
wine
lossless
oracle
ftp
usb
memory stick
storage volume
More tags
Copyright © elmisery.ru 2013-2014
загрузка

http://elmisery.ru/blog/ru/expimporacle11 3/3