В прошлый раз мы несколько углубились в теорию связанную с командной строкой экспорта. А сейчас, давайте попробуем, поработать с экспортом БД практически. Следует сразу заметить как вы уже, наверное, поняли файл экспорта 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"! Если что-то еще будет не ясно, я наверное сделаю еще пару отдельных шагов на эту тему! Так что не путайтесь и будьте внимательны при работе с экспортом! Удачи!!! :)