пятница, 27 мая 2011 г.

Exp/Imp Экспорт и Импорт базы данных в ORACLE

В базе данных oracle как я понял специальной таблицы нету а есть объекты принадлежащие тому или иному пользователю. И как и всегда необходимо снимать дамп и распаковать дамп на другом сервере. Я это делаю через команды EXP/IMP в $ORACLE_HOME/bin;

Чтобы к примеру снять дамп всех объектов пользователя orauser, через системного пользователя. Вы можете зайти через тот же orauser и его паролем, тогда нету необходимости указывать OWNER.
$> exp system/syspassword FILE=orauserdb.dmp LOG=orauserdb.log OWNER=orauser

Перед тем как импортировать данные на другой сервер сначала на ней необходимо удалить объекты данного пользователя. Для этого в Command Window PLSQLDEVELOPER'a или внутри команды sqlplus необходимо выгрузить sql команды удаляющие объекты пользователя в отдельный файл и запустить sql команды внутри файла
SQL> spool on
SQL> spool c:\temp\sqldropcommands.sql
SQL> SELECT 'drop '||object_type||' '||object_name|| DECODE(OBJECT_TYPE,'table',' cascade constraints;',';') FROM USER_OBJECTS;
SQL> start d:\temp\sqldropcommands.sql
Перед тем как запускать команды внутри d:\temp\sqldropcommands.sql необходимо отформатировать и удалить заголовки оставляя только команды.

Далее на импортируемом, к примеру я хочу импортировать все объекты orauser из дампа на этот сервер на пользователя oranewuser. Тогда
$> imp oranewuser/oranewuserpwd FILE=orauserdb.dmp FROMUSER=orauser TOUSER=oranewuser

Комментариев нет:

Отправить комментарий