Проект

Общее

Профиль

Экспорт БД


Настраивается под конкретный сервер CWMS3000. Пример сценария:

del /Q "D:\backup\dump\*" 
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=% 
set NLS_LANG=.CL8MSWIN1251
exp.EXE USERID=system/<пароль>@<строка соединен> LOG=D:\backup\dump\%_my_datetime%_mi.log FILE=D:\backup\dump\%_my_datetime%_mi.dmp owner=<login> consistent=y
copy "D:\backup\rar\*" "\\192.168.60.13\backup\Oracle_ed" 

и второй пример:

@echo off
for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do set dt=%%i%%j%%k%%l
for /f "Tokens=1" %%i in ('time /t') do set tm=%%i 
set tm=%tm% 
set dtt=%dt%%tm-st.dmp%
set tape_label="%computername%-%dtt%" 
set set_label="%computername% export %dtt%" 
set NLS_LANG=.CL8MSWIN1251
exp.EXE USERID=system/<пароль>@<строка соединения> LOG=f:\IDE_BACKUP\BOX\%dtt%.log FILE=f:\IDE_BACKUP\BOX\%dtt%.dmp owner=<строка соединения> consistent=y

Необходимо задать строку соединения, нужные директории.


Внимание
При импорте БД необходимо настроить системные задачи БД. Это выполняется нашими специалистами.

Новые рекомендации к "Экспорт", "Импорт"
Cоздать объект-директорию, с которым нам предстоит работать:

CREATE OR REPLACE DIRECTORY <объект>AS '/u01/app/oracle/oradata/';
GRANT READ, WRITE ON DIRECTORY <объект> TO <логин>;

Дополнительная информация
В отличии от утилит 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" в этой командной строке позволить проследить за состоянием текущего задания:

Export> status
Worker 1 Status:
 State: EXECUTING
 Object Schema: SYSMAN
 Object Name: MGMT_CONTAINER_CRED_ARRAY
 Object Type: DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC
 Completed Objects: 261
 Total Objects: 261
Job: SYS_EXPORT_FULL_01
 Operation: EXPORT
 Mode: FULL
 State: EXECUTING
 Bytes Processed: 0
 Current Parallelism: 1
 Job Error Count: 0
 Dump File: D:TEMPDB10G.DMP
   bytes written: 4,096
Worker 1 Status:
 State: EXECUTING
 Object Schema: SYSMAN
 Object Name: MGMT_CONTAINER_CRED_ARRAY
 Object Type: DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC
 Completed Objects: 261
 Total Objects: 261

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

expdp <user>/<пароль>@<схема> schemas=<имя схемы> directory=<имя директории> parallel=4 dumpfile=<имя дампа>.dmp logfile=<имя лога>.log

Вьюшка (view) "DBA_DATAPUMP_JOBS" может быть использована для контроля состояния задания:

<user>@<схема>> select * from dba_datapump_jobs;
OWNER_NAME                     JOB_NAME                       OPERATION
------------------------------ ------------------------------ ------------------------------
JOB_MODE                       STATE                              DEGREE ATTACHED_SESSIONS
------------------------------ ------------------------------ ---------- -----------------
<user>                         SYS_EXPORT_FULL_01             EXPORT
FULL                           EXECUTING                               1                 1

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

expdp <user>/<пароль>@<схема> schemas=<имя схемы> include=TABLE:"IN ('EMP', 'DEPT')" directory=<имя директории> dumpfile=<имя дампа>.dmp logfile=<имя лога>.log

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

expdp <user>/<пароль>@<схема> schemas=<имя схемы> exclude=TABLE:"= 'BONUS'" directory=<имя директории> dumpfile=<имя дампа>.dmp logfile=<имя лога>.log

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

expdp <user>/<пароль>@<схема> schemas=<имя схемы> exclude=TABLE:\"like \'USER%\'\" directory=<имя директории> dumpfile=<имя дампа>.dmp logfile=<имя лога>.log

Data Pump API
Вместе с утилитами Data Pump, Oracle предоставляет PL/SQL API. Следующий пример показывает, как API может быть использован для выполнения экспорта:

SET SERVEROUTPUT ON SIZE 1000000
 DECLARE
   l_dp_handle       NUMBER;
   l_last_job_state  VARCHAR2(30) := 'UNDEFINED';
   l_job_state       VARCHAR2(30) := 'UNDEFINED';
   l_sts             KU$_STATUS;
 BEGIN
   l_dp_handle := DBMS_DATAPUMP.open(
     operation   => 'EXPORT',
     job_mode    => 'SCHEMA',
     remote_link => NULL,
     job_name    => 'EMP_EXPORT',
     version     => 'LATEST');
DBMS_DATAPUMP.add_file(
   handle    => l_dp_handle,
   filename  => 'SCOTT.dmp',
   directory => 'TEST_DIR');
DBMS_DATAPUMP.add_file(
   handle    => l_dp_handle,
   filename  => 'SCOTT.log',
   directory => 'TEST_DIR',
   filetype  => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
DBMS_DATAPUMP.metadata_filter(
   handle => l_dp_handle,
   name   => 'SCHEMA_EXPR',
   value  => '= SCOTT');
DBMS_DATAPUMP.start_job(l_dp_handle);
DBMS_DATAPUMP.detach(l_dp_handle);
END;
/

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

system@db10g> select * from dba_datapump_jobs;

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

CREATE TABLE emp_xt
 ORGANIZATION EXTERNAL
  (
    TYPE ORACLE_DATAPUMP
    DEFAULT DIRECTORY test_dir
    LOCATION ('emp_xt.dmp')
  )
  AS SELECT * FROM emp;

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

SELECT * FROM emp_xt;

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

DROP TABLE emp_xt;
CREATE TABLE emp_xt (
 EMPNO     NUMBER(4),
 ENAME     VARCHAR2(10),
 JOB       VARCHAR2(9),
 MGR       NUMBER(4),
 HIREDATE  DATE,
 SAL       NUMBER(7,2),
 COMM      NUMBER(7,2),
 DEPTNO    NUMBER(2))
 ORGANIZATION EXTERNAL (
    TYPE ORACLE_DATAPUMP
    DEFAULT DIRECTORY test_dir
    LOCATION ('emp_xt.dmp')
 );
SELECT * FROM emp_xt;

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

expdp help=y
Export: Release 10.2.0.3.0 - 64bit Production on Среда, 20 Февраль, 2008 13:57:18                                                  
 Copyright (c) 2003, 2005, Oracle.  All rights reserved.
 Утилита экспорта насоса данных предоставляет механизм для передачи объектов данных
 между базами данных Oracle. Эта утилита вызывается следующей командой:
    Пример: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
 Управление выполнением экспорта может осуществляться вводом команды 'expdp' с заданием после нее
 различных параметров. Для задания параметров служат ключевые слова:
    Формат:  expdp КЛЮЧЕВОЕ СЛОВО=значение или КЛЮЧЕВОЕ СЛОВО=(значение1,значение2,...,значениеN)
    Пример: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
                или TABLES=(T1:P1,T1:P2), если T1 является секционированной таблицей
 USERID должно быть первым параметром в командной строке.
 Ключевое слово        Описание (Знач. по умолчанию)
 ------------------------------------------------------------------------------
 ATTACH                Служит для присоединения к существующему заданию, например, ATTACH [=имя задания].
 COMPRESSION           Уменьшение размера содержимого файла дампа, если допустимо
                       значения ключевого слова: (METADATA_ONLY) и NONE.
 CONTENT               Служит для задания данных для выгрузки. Разрешаются ключевые слова:
                       (ALL), DATA_ONLY и METADATA_ONLY.
 DIRECTORY             Объект 'каталог' для файлов дампов и файлов журналов.
 DUMPFILE              Список результирующих файлов дампов (expdat.dmp),
                       например, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.
 ENCRYPTION_PASSWORD   Ключ пароля для создания столбца зашифрованных данных.
 ESTIMATE              Служит для вычисления оценочных данных заданий. Допускаются следующие ключевые слова:
                       (BLOCKS) и STATISTICS.
 ESTIMATE_ONLY         Служит для вычисления оценочных данных заданий без выполнения экспорта.
 EXCLUDE               Служит для исключения определенных типов объектов, например, EXCLUDE=TABLE:EMP.
 FILESIZE              Служит для задания размера каждого файла дампа в байтах.
 FLASHBACK_SCN        SCN, используемый для установки мгновенного снимка сеанса назад.
 FLASHBACK_TIME        Время, используемое на получение SCN, ближайшее к заданному времени.
 FULL                  Служит для экспорта всей базы данных (N).
 HELP                  Служит для отображения сообщений Справки (N).
 INCLUDE               Служит для включения определенных типов объектов, например, INCLUDE=TABLE_DATA.
 JOB_NAME              Имя создаваемого задания экспорта.
 LOGFILE               Имя файла журнала (export.log).
 NETWORK_LINK          Имя канала связи удаленной базы данных с исходной системой.
 NOLOGFILE             Не записывать файл журнала (N).
 PARALLEL              Служит для изменения числа активных рабочих процессов для текущего задания.
 PARFILE               Служит для задания файла параметров.
 QUERY                 Фраза предиката, используемая для экспорта подмножества таблицы.
 SAMPLE                Процент данных для экспорта;
 SCHEMAS               Служит для перечисления схем экспорта (схема при регистрации).
 STATUS                Частота (сек) с которой должно отслеживаться состояние задания, где
                       значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
 TABLES                Служит для указания списка таблиц для экспорта - только для одной схемы.
 TABLESPACES           Служит для указания списка табличных пространств для экспорта.
 TRANSPORT_FULL_CHECK  Служит для проверки сегментов хранения для всех таблиц (N).
 TRANSPORT_TABLESPACES Список табличных пространств, из которых будут выгружены метаданные.
 VERSION               Версия объектов для экспорта. Могут использоваться следующие ключевые слова:
                       (COMPATIBLE), LATEST или любой действительный номер версии базы данных.
 Следующие команды могут использоваться в интерактивном режиме.
 Примечание. Допускается использование сокращений
 Команда               Описание
 ------------------------------------------------------------------------------
 ADD_FILE              Служит для добавления файла дампа в набор файлов дампов.
 CONTINUE_CLIENT       Служит для возврата в режим протоколирования. В случае простоя задание будет запущено заново.
 EXIT_CLIENT           Служит для выхода из сеанса клиента без прекращения выполнения задания.
 FILESIZE              Размер файла по умолчанию (байт) для последующих команд ADD_FILE.
 HELP                  Отображает сводку по интерактивным командам.
 KILL_JOB              Служит для отсоединения и удаления задания.
 PARALLEL              Служит для изменения числа активных рабочих процессов для текущего задания.
                       PARALLEL=<число рабочих процессов>.
 START_JOB             Служит для запуска/возобновления текущего задания.
 STATUS                Частота (сек) с которой должно отслеживаться состояние задания, где
                       значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
                       STATUS[=interval]
 STOP_JOB              Служит для нормального завершения выполнения задания и выхода из клиента.
                       STOP_JOB=IMMEDIATE выполняет немедленное завершение
                       задания насоса данных.
impdp help=y
Import: Release 10.2.0.3.0 - 64bit Production on Среда, 20 Февраль, 2008 13:57:18
 Copyright (c) 2003, 2005, Oracle.  All rights reserved.
 Утилита импорта насоса данных предоставляет механизм для передачи объектов данных
 между базами данных Oracle. Эта утилита вызывается следующей командой:
      Пример: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
 Управление выполнением импорта может осуществляться вводом команды 'impdp' с заданием после нее
 различных параметров. Для задания параметров служат ключевые слова:
      Формат:  impdp КЛЮЧЕВОЕ СЛОВО=значение или КЛЮЧЕВОЕ СЛОВО=(значение1,значение2,...,значениеN)
      Пример: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
 USERID должно быть первым параметром в командной строке.
 Ключевое слово        Описание (Знач. по умолчанию)
 ------------------------------------------------------------------------------
 ATTACH                Служит для присоединения к существующему заданию, например, ATTACH [=имя задания].
 CONTENT               Служит для задания данных для загрузки. Разрешаются ключевые слова:
                       (ALL), DATA_ONLY и METADATA_ONLY.
 DIRECTORY             Объект 'каталог', который должен использоваться для файлов дампов, журналов и sql.
 DUMPFILE              Список файлов дампов для выполнения импорта из них (expdat.dmp),
                       например, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.
 ENCRYPTION_PASSWORD   Ключ пароля для доступа к столбцу зашифрованных данных.
                       Этот параметр недействителен для заданий импорта по сети.
 ESTIMATE              Служит для вычисления оценочных данных заданий. Допускаются следующие ключевые слова:
                       (BLOCKS) и STATISTICS.
 EXCLUDE               Служит для исключения определенных типов объектов, например, EXCLUDE=TABLE:EMP.
 FLASHBACK_SCN        SCN, используемый для установки мгновенного снимка сеанса назад.
 FLASHBACK_TIME        Время, используемое на получение SCN, ближайшее к заданному времени.
 FULL                  Служит для выполнения импорта всех данных из источника (Y).
 HELP                  Служит для отображения сообщения Справки (N).
 INCLUDE               Служит для включения определенных типов объектов, например, INCLUDE=TABLE_DATA.
 JOB_NAME              Имя создаваемого задания импорта.
 LOGFILE               Имя файла журнала (import.log).
 NETWORK_LINK          Имя канала связи удаленной базы данных с исходной системой.
 NOLOGFILE             Не записывать файл журнала.
 PARALLEL              Служит для изменения числа активных рабочих процессов для текущего задания.
 PARFILE               Служит для задания файла параметров.
 QUERY                 фраза предиката, используемая для импорта подмножества таблицы.
 REMAP_DATAFILE        Служит для переопределения ссылок на файлы данных во всех операторах DDL.
 REMAP_SCHEMA          Объекты из одной схемы загружаются в другую схему.
 REMAP_TABLESPACE      Объект табличного пространства повторно отображается в другое табличное пространство.
 REUSE_DATAFILES       Табличное пространство будет инициализировано, если оно уже существует (N).
 SCHEMAS               Список схем для импорта.
 SKIP_UNUSABLE_INDEXES Служит для пропуска индексов, для которых было установлено состояние 'Индекс не применим'.
 SQLFILE               Служит для записи всех DDL SQL в указанный файл.
 STATUS                Частота (сек) с которой должно отслеживаться состояние задания, где
                       значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
 STREAMS_CONFIGURATION включает загрузку метаданных потоков
 TABLE_EXISTS_ACTION   Действие, которое выполняется, если импортируемый объект уже существует.
                       Допустимые ключевые слова: (SKIP), APPEND, REPLACE и TRUNCATE.
 TABLES                Служит для задания списка таблиц для импорта.
 TABLESPACES           Служит для задания списка табличных пространств для импорта.
 TRANSFORM             Преобразование метаданных, которое должно применяться к соответствующим объектам.
                       Допустимые ключевые слова для преобразований: SEGMENT_ATTRIBUTES, STORAGE
                       OID и PCTSPACE.
 TRANSPORT_DATAFILES   Список файлов данных для импорта в режиме, допускающем транспортировку.
 TRANSPORT_FULL_CHECK  Служит для проверки сегментов хранения для всех таблиц (N).
 TRANSPORT_TABLESPACES Список табличных пространств, из которых будут загружаться метаданные.
                       Действительно только для операций в режиме импорта NETWORK_LINK.
 VERSION               Версия объектов для экспорта. Могут использоваться следующие ключевые слова:
                       (COMPATIBLE), LATEST или любой действительный номер версии базы данных.
                       Действительно только для NETWORK_LINK и SQLFILE.
 Следующие команды могут использоваться в интерактивном режиме.
 Примечание. Допускается использование сокращений
 Команда               Описание (Значение по умолчанию)
 ------------------------------------------------------------------------------
 CONTINUE_CLIENT       Служит для возврата в режим протоколирования. В случае простоя задание будет запущено заново.
 EXIT_CLIENT           Служит для выхода из сеанса клиента без прекращения выполнения задания.
 HELP                  Отображает сводку по интерактивным командам.
 KILL_JOB              Служит для отсоединения и удаления задания.
 PARALLEL              Служит для изменения числа активных рабочих процессов для текущего задания.
                       PARALLEL=<число рабочих процессов>.
 START_JOB             Служит для запуска/возобновления текущего задания.
                       START_JOB=SKIP_CURRENT служит для запуска задания после пропуска
                       всех действий, которые выполнялись, когда задание было остановлено.
 STATUS                Частота (сек) с которой должно отслеживаться состояние задания, где
                       значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
                       STATUS[=interval]
 STOP_JOB              Служит для нормального завершения выполнения задания и выхода из клиента.
                       STOP_JOB=IMMEDIATE выполняет немедленное завершение
                       задания насоса данных.

Экспортировать в PDF HTML TXT