Шаг 131 - БД Oracle - Экспорт - на примерах

В прошлый раз мы несколько углубились в теорию связанную с командной строкой экспорта. А сейчас, давайте попробуем, поработать с экспортом БД практически. Следует сразу заметить как вы уже, наверное, поняли файл экспорта Oracle нельзя использовать для последующего импорта скажем в MS SQL сервер! (Да, хотел бы я посмотреть на лицо Гейтса, если бы это было возможно!) Так, что файл экспорта Oracle работает только с Oracle! Вот такие подробности! Итак, в прошлый раз мы с вами выполняли полный экспорт вашей БД с содержимым исполняемого (.bat) файла примерно следующего содержания:

..\.bat->

set nls_lang=russian_cis.ru8pc866
exp.EXE USERID=sys/manager@proba FULL=Y FILE=c:\ORACLE\full.dat LOG=C:\ORACLE\full.LOG

Для большей наглядности я бы сделал некоторые изменения в строке экспорта вот так:

..\.bat->

set nls_lang=russian_cis.ru8pc866
exp.EXE USERID=sys/manager@proba FULL=Y FEEDBACK=1000 FILE=c:\ORACLE\full.dat LOG=C:\ORACLE\full.LOG

В этом случае после экспорта 1000 строк таблички будут появляться точки. Так более понятно, что происходит! А, вот так можно "слить" конкретного пользователя скажем нашего MILLER-а:

..\.bat->

set nls_lang=russian_cis.ru8pc866
exp.EXE USERID=miller/kolobok@proba  COMPRESS=Y FILE=c:\ORACLE\miller.dat LOG=C:\ORACLE\miller.LOG

А, за одно объединить его разорванные экстенты. Вот фрагмент log-файла после экспорта:

.
.
. . экспорт таблицы                      SALESREPSЭкспортировано          11 строк
. . экспорт таблицы                          SPEEDЭкспортировано           0 строк
. . экспорт таблицы                           TBLAЭкспортировано           0 строк
. . экспорт таблицы                          TSTSVЭкспортировано           6 строк
. . экспорт таблицы                        TSTTRIGЭкспортировано           6 строк
. экспорт синонимов
. экспорт представлений
. экспорт хранимых процедур
. экспортируются операторы
. экспорт ссылочных ограничений целостности
. экспорт триггеров
. экспортируются индексные типы
. экспортируются битовые, функциональные и расширяемые индексы
. экспорт посттабличных действий
. экспорт материализованных представлений
. экспорт журналов снимков
. экспорт очередей заданий
. экспорт обновл.групп и потомков
. экспортируются размерности
. экспортируются post-schema процедурные объекты и действия
. экспорт статистики
Экспорт завершился успешно без предупреждений.

Все вроде прошло гладко! Или вот, например, слить таблички CUSTOMERS и SALESREPS из схемы MILLER:

..\.bat->

set nls_lang=russian_cis.ru8pc866
exp.EXE USERID=miller/kolobok@proba  TABLES=(CUSTOMERS, SALESREPS) FILE=c:\ORACLE\Tmiller.dat 
LOG=C:\ORACLE\Tmiller.LOG

Вот еще фрагмент log-файла, после экспорта в табличном режиме:

Экспорт сделан с код.таблицами RU8PC866 и AL16UTF16 NCHAR
сервер использует кодировку CL8MSWIN1251 (возможно перекодирование)

Готовиться экспорт указанных таблиц через обычный маpшpут ...
. . экспорт таблицы                      CUSTOMERSЭкспортировано          22 строк
. . экспорт таблицы                      SALESREPSЭкспортировано          11 строк
EXP-00091: Экспортируется недостоверная статистика
EXP-00091: Экспортируется недостоверная статистика
Экспорт завершен успешно с предупреждениями.

Последняя строка свидетельствует о том, что все прошло удачно!!! А, вот теперь благодаря прежде всего вашему терпению, мы с вами и дошли, до повторения пройденного! Вспомните "Шаг 8 - Пересоздаем пользователя miller"! Там были файлики, как раз с дампом экспорта! Которые я подготовил, для вас! В табличках кстати много недочетов по части русского языка! Я уже потом заметил! Очень извиняюсь! Ну не могу я никак великий и могучий понять до конца!!! :))) Так вот, там был еще .bat файлик такого содержания:

..\miller.bat->

set nls_lang=russian_cis.ru8pc866
imp.EXE USERID=MILLER/KOLOBOK@PROBA FILE=MILLER.DAT FROMUSER=MILLER TOUSER=MILLER

Здесь как вы уже наверное догадались я провожу уже импорт данных в вашу БД из файла дампа miller.dat от пользователя miller пользователю miller! Не совсем ясная ситуация, но я позже все поясню! Один интересный момент я бы хотел отметить особенно! Мне уже много раз приходили письма с вопросом откуда, закачать эти три файла! И, что самое смешное некоторые даже спрашивали: - Может Вы за плату их отсылаете? Странно! :) Но я подумаю! Так вот! Еще раз обращу внимание - внизу HTML странички есть ссылка "Загрузить проект"! Нажмите ее и получите файлы совершенно бесплатно!!! :) Еще немного дополню, многие как я понял при создании сетевой службы при установке Oracle (TNS Names - в нашем случае proba) используют отличное имя от нашего - proba! И при импорте получают ошибку! Так вот, если вы производите импорт непосредственно на сервере, а как правило так и происходит, то имя сетевой службы можно вообще не писать - сервер вас поймет! Вот так:

set nls_lang=russian_cis.ru8pc866
imp.EXE USERID=MILLER/KOLOBOK FILE=MILLER.DAT FROMUSER=MILLER TOUSER=MILLER

Если вы проводите импорт с клиентской машины, то имя сетевой службы нужно записывать и именно, то которое у вас в системе! Дело все в том, что при инсталляции по умолчанию, имя сетевой службы совпадает с SID вашего экземпляра БД, но и может быть отличным от него! Как создавать сетевую службу смотрите внимательнее "Шаг 4 - Настройка с помощью Net8 Easy Config"! Если что-то еще будет не ясно, я наверное сделаю еще пару отдельных шагов на эту тему! Так что не путайтесь и будьте внимательны при работе с экспортом! Удачи!!! :)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Летучий Сергей - 10.05.2004