Шаг 133 - БД Oracle - Импорт данных - параметры импорта

Раз существует экспорт - разумно предположить, что должен быть и импорт данных в БД Oracle. Давайте разберемся теперь с этим вопросом. Итак, мы экспортировали данные получили двоичный(!) файл с данными, который невозможно подпихнуть в какую-либо БД отличную от Oracle. Что ж, хорошо! А, вот теперь давайте попробуем импортировать данные в БД из нашего двоичного файла! В данном конкретном случае утилита импорта считывает файл дампа экспорта и запускает находящиеся в нем команды на исполнение. Кроме всего прочего импорт можно применять для селективного восстановления объектов или пользователей из файла дампа экспорта. При этом учтите тот момент, что импортируя данные из инкрементального или кумулятивного экспорта, нужно сначала импортировать результаты самого последнего инкрементального экспорта, а затем самого последнего полного экспорта. После этого можно импортировать файл самого последнего кумулятивного экспорта и все результаты инкрементальных экспортов, имевших место после него. Витиеватая формулировочка! Но, если прочитать пару раз, то все понятно! Давайте сразу определимся с параметрами импорта для полного понимания, как он работает (которые кстати схожи с параметрами экспорта, но и имеют, кое какие отличия от последнего!). Итак вот они:

Ключевое словоОписание
useridИмя пользователя и пароль учетной записи, выполняющей импорт. Если он следует первым в командной строке imp.exe, то userid писать не обязательно!
bufferРазмер буфера используемого для считывания строк данных. Значение по умолчанию зависит от системы. Обычно < 100000.
fileИмя импортируемого файла для дампа экспорта.
showФлаг Y/N, определяющий нужно ли отображать или исполнять содержание файла дампа экспорта.
ignoreФлаг Y/N, определяющий должна ли утилита импорта игнорировать ошибки, возникающие при выполнении команды CREATE. Он используется, если импортируемые объекты уже существуют.
grantsФлаг Y/N, показывающий будут ли импортироваться полномочия (GRANTS - привилегии) на объекты БД.
indexesФлаг Y/N, показывающий будут ли импортироваться индексы таблиц.
constraintsФлаг Y/N, показывающий будут ли импортироваться ограничения на таблицы.
rowsФлаг Y/N, показывающий будут ли импортироваться строки. Если значение этого параметра равно N будут выполнены только операторы DDL для объектов базы данных.
fullЕсли значение этого параметра равно Y, импортируется файл дампа полного экспорта БД.
fromuserСписок учетных записей БД, объекты которых должны быть считаны из файла дампа экспорта. (при этом full = N)
touserСписок учетных записей БД, в которые следует импортировать объекты из файла дампа экспорта. Параметры fromuser и touser не обязательно должны иметь одно и тоже значение. (full = N при этом)
tablesСписок импортируемых таблиц БД.
recordlengthДлина в байтах записи файла дампа экспорта. Обычно оставляет значение по умолчанию, если вы не собираетесь передавать файл экспорта между различными операционными системами.
inctypeТип выполняемого импорта. Допустимы значения COMPLETE(по умолчанию), COMULATIVE и INCREMENTAL.
commitФлаг Y/N, показывающий должен ли импорт завершаться командой COMMIT после ввода каждого массива (размер которого определяется в параметре BUFFER). Если он равен N, то импорт будет завершаться командой COMMIT после ввода каждой таблицы. Для больших таблиц значение COMMIT = N будет требовать такого же по размеру сегмента отката!
parfileИмя файла параметров передаваемого утилите импорта. В этом файле могут содержаться все описанные ранее и позже параметры.
indexfileОчень мощное средство, (К стати очень полезное!) позволяющее записывать все команды CREATE TABLE, CREATE CLUSTER, CREATE INDEX в файл, а не выполнять их! Все команды кроме CREATE INDEX, будут закомментированы. Затем (внеся незначительные изменения) этот файл можно запустить после завершения импорта с параметром indexes = N. Средство очень полезно для изолирования таблиц и индексов по различным табличным пространствам.
charsetНабор символов, используемы при импорте данных для v5 и v6 (данный параметр больше не употребляется, но сохранен)
point_in_time_recoverФлаг Y/N, показывающий входит ли импорт в состав процесса восстановления табличного пространства с привязкой ко времени. Далее будет рассматриваться в разделе "Архивация и восстановление" (если у меня хватит сил на все это! :).
destroyФлаг Y/N, показывающий будут ли выполняться команды CREATE TABLESPACE, обнаруженные в файлах дампа полных экспортов. (Это приведет к уничтожению файла данных в БД, в которую осуществляется импорт или проще сказать он будет полностью переписан!)
logИмя файла, в который будет записан журнал импорта.
skip_unusable_indexesФлаг Y/N, показывающий следует ли в процессе импорта пропускать индексы разделов, помеченные, как неиспользуемые. Чтобы повысить производительность создания индексов, можно пропустить этот этап и создать индексы в последствии в ручную.
analyzeФлаг Y/N, показывающий следует ли в процессе импорта выполнять команды analyze, обнаруженные в файлах дампа экспорта.
feedbackКоличество строк, по достижению которого на экране будет отображаться процесс импорта таблицы. Значение по умолчанию, равно 0, означает, что никакой обратной связи не предусматривается, пока вся таблица не будет полностью импортирована.
tiod_novalidateПозволяет в процессе импорта пропустить проверку указанных типов обьектов на допустимость. используется при установке картриджей (cartridge installs). Можно указать один или несколько типов объектов.
filesizeМаксимальный размер дампа указанный для экспорта. Если в ходе экспорта использовался параметр FILESIZE.
recalculate_statisticsФлаг Y/N, показывающий следует ли генерировать статистику оптимизатора.
transport_tablespaceФлаг Y/N, показывающий следует ли импортировать в БД метаданные транспортируемых табличных пространств.
tablespacesИмя табличного пространства или список имен таковых транспортируемых в БД.
datafilesСписок файлов данных транспортируемых в БД.
tts_ownerИмя или список имен владельцев данных транспортируемых табличных пространствах.

Здесь достаточно много интересных моментов, взять хотя бы параметр - indexfile! Далее давайте попробуем немного поработать с утилитой imp.exe. А пока можете более внимательно почитать все вышеизложенное.


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