среда, 6 июля 2016 г.

Рестор дампа из нескольких файлов

Впервые пришлось ресторить дамп, который расположен в двух файлах, а не в одном. Такой дамп нужно ресторить, перечислив названия его файлов через запятую в параметре "DUMPFILE" (спасибо Снытко А.), пример:
impdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp,demo02.dmp,demo03.dmp logfile=log01.log SCHEMAS=SCOTT

Правда были свои нюансы:
почти сразу стала появляться ошибка:
ORA-00959: tablespace 'AZK2016' does not exist
Т.к. на моем сервере только "USERS", поэтому в строку команды рестора я добавил
REMAP_TABLESPACE=AZK2016:USERS

После этого рестор закончился, но с двумя ошибками, не создались 2 таблицы:

ORA-39083: Object type TABLE:"NEWBASE"."USERCERT" failed to create with error:
ORA-01847: day of month must be between 1 and last day of month
...
ORA-39083: Object type TABLE:"NEWBASE"."NOTIFYMSG" failed to create with error:
ORA-01861: literal does not match format string

Все из-за разности параметров
NLS_LANG
NLS_DATE_FORMAT
между сервером БД откуда дамп пришел и моим сервером. Стоило их уравнять и рестор выполнился успешно.

Дополнение:
Согласно описания параметра DUMPFILE вместо записи
impdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp,demo02.dmp,demo03.dmp logfile=log01.log SCHEMAS=SCOTT
можно использовать переменную "%U", диапазон значений которой варьируется от 01 до 99:
impdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo%U.dmp logfile=log01.log SCHEMAS=SCOTT

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

Архив