Программирование >>  Oracle 

1 ... 119 120 121 [ 122 ] 123 124 125 ... 469



Импорт и экспорт

Утилиты импорта (IMP) и экспорта (ЕХР) можно отнести к старейшим инструментальным средствам Oracle. Это утилиты командной строки, используемые для извлечения таблиц, схем или всей базы данных из одного экземпляра Oracle для дальнейшего импортирования в другой экземпляр или схему.

Традиционно утилиты импорта и экспорта принято относить к сфере интересов администратора базы данных. Я же считаю, что они полезнее как инструмент разработчика, а не средство администрирования. Поскольку изменился как размер, так и значение баз данных, изменились и средства управления ими. В прошлом было вполне разумно использовать утилиты импорта и экспорта для пересоздания базы данных (скажем, с целью изменения размера блока или переноса базы данных на другую платформу) или в качестве средства резервного копирования. Сегодня, когда маленькими считаются базы данных размером порядка гигабайт, простые средства, выполняющие обработку последовательно (как утилиты импорта и экспорта), просто недостаточно масштабируемы. Хотя эти средства и не бесполезны для администратора базы данных, их применимость сейчас значительно меньше. На смену им пришли другие средства и методы. Например, сейчас для выполнения инкрементного резервного копирования больших баз данных используется диспетчер восстановления (Recovery Manager - RMAN), а не утилита ЕХР. Но эти утилиты по-прежнему используются для решения других задач, например для выявления логического и физического повреждения данных, для переноса файлов данных из базы и т.д.

Утилиты ЕХР и IMP вам придется использовать рано или поздно. Если необходимо скопировать схему одного пользователя другому, проще всего это сделать с помощью утилит ЕХР и IMP. Если необходимо получить операторы ЯОД, образующие схему, -



Глава 8

используйте ЕХР и IMP. Если нужно разбить существующую таблицу на несколько физических фрагментов (что требует пересоздания таблицы), утилиты ЕХР и IMP вполне подойдут для этой цели. В этой главе мы рассмотрим, как:

выделять подмножества данных;

получить операторы ЯОД, использованные для создания объектов схемы базы дан-

ных;

импортировать небольшие и средние объемы данных в другие структуры (отлич-

ные от тех, где они находились);

клонировать схему в базе данных; это кажется несложным, но есть ряд тонкостей,

о которых следует знать.

Утилиты ЕХР и IMP будут рассматриваться с точки зрения разработчика. Я предполагаю ответить на множество часто задаваемых вопросов о практическом использовании утилит ЕХР и IMP. Я сам использую эти средства и вынужден был решать различные проблемы, возникающие при их использовании.

Простой пример

Чтобы продемонстрировать значимость утилит IMP и ЕХР и простоту их использования, получим с их помощью оператор ЯОД, который позволит воссоздать таблицу в схеме SCOTT/TIGER. Множество пользователей ищут утилиты для решения такой задачи или пытаются создать собственные средства извлечения операторов ЯОД, - они не знают, что такая утилита поставляется вместе с сервером. Вот как просто это делается:

C:\ImpExp>exp userid=scott/tiger tables=emp C:\ImpExp>imp userid=scott/tiger full=y indexfile=emp.sql C:\ImpExp>type emp.sql

REM CREATE TABLE SCOTT . EMP ( EMPNO NUMBER(4, 0) КОТ NULL ENABLE, REM ENAME VARCHAR2(10) , JOB VARCHAR2 (9) , MGR NUMBER(4, 0), REM HIREDATE DATE, SAL NUMBER (7, 2), COMM NUMBER (7, 2), DEPTNO REM NUMBER(2, 0)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING

REM STORAGE (INITIAL 32768 NEXT 32768 MINEXTENTS 1 MAXEXTENTS 4096 REM PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER POOL DEFAULT) REM TABLESPACE TOOLS ;

REM 14 rows

CONNECT SCOTT;

CREATE UNIQUE INDEX SCOTT . EMP PK ON EMP ( EMPNO ) PCTFREE 10

INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 32768 NEXT 32768 MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER POOL DEFAULT) TABLESPACE TOOLS LOGGING ;

REM ALTER TABLE SCOTT . EMP ADD CONSTRAINT EMP PK PRIMARY KEY

REM ( EMPNO ) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 REM STORAGE (INITIAL 32768 NEXT 32768 MINEXTENTS 1 MAXEXTENTS 4096



Импорт и экспорт 397

REM PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER POOL DEFAULT)

REM TABLESPACE TOOLS ENABLE ;

REM ALTER TABLE SCOTT . EMP ADD CONSTRAINT EMP FK DEPT FOREIGN KEY

REM ( DEPTNO ) REFERENCES DEPT ( DEPTNO ) ENABLE NOVALIDATE;

REM ALTER TABLE SCOTT . EMP ADD CONSTRAINT EMP FK EMP FOREIGN KEY

REM ( MGR ) REFERENCES EMP ( EMPNO ) ENABLE NOVALIDATE ;

REM ALTER TABLE SCOTT . EMP ENABLE CONSTRAINT EMP PK ;

REM ALTER TABLE SCOTT . EMP ENABLE CONSTRAINT EMP FK DEPT ;

REM ALTER TABLE SCOTT . EMP ENABLE CONSTRAINT EMP FK EMP ;

Вот оно, со всей пресловутой многословностью (у вас результат может отличаться, поскольку здесь использованы улучшения , сделанные мной в таблице SCO.EMP по ходу написания книги). Получился оператор ЯОД, позволяющий пересоздать таблицу ЕМР в текущем состоянии. Немного позже мы рассмотрим ряд особенностей использования утилит IMP и ЕХР для успешного извлечения операторов ЯОД из базы данных (а также сценарии, которые пригодятся, если возможностей IMP/EXP окажется недостаточно).

Полная документация поутилитамЕХРиIMPвключена вруководство Oracle Server Utilities Guide . Считая бессмысленным повторять представленную там информацию, я рекомендую прочитать соответствующие разделы этого руководства в качестве дополнения к данной главе.

Утилита ЕХР создает двоичный файл специфического формата, который также называют файлом дампа (и часто сокращенно сстлаются на него как на DMP). Этот формат допускает перенос в разные операционные системы - его можно перенести с ОС Windows 2000 на Sun Solaris, с Sun на MVS, и он везде будет работать.

Это также означает, что нельзя использовать утилиту ЕХР для выгрузки данных из Oracle с целью дальнейшего импортирования в SQL Server - она для этого не подходит. Если это необходимо сделать, можно использовать команду сору утилиты SQL*Plus в сочетании либо со шлюзом Transparent Gateway to SQL Server, либо, что намного проще, с драйверами Net8 для ODBC, входящими в состав Oracle Developer/2000 (эти драйверы позволяют утилите SQL*Plus подключаться к источнику данных ODBC). При этом нет надобности редактировать файл DMP с помощью текстового (да и любого другого) редактора. Файл DMP имеет одно единственное назначение - он предназначен для чтения и обработки утилитой IMP.

Когда могут пригодиться утилиты IMP и

ЕХР?

Утилиту ЕХР можно использовать для многих целей, некоторые из них упоминались. Ниже я перечислю ряд ситуаций, когда она оказалась особенно полезной.

Выявление повреждений

Я использую утилиту ЕХР в качестве средства для выявления повреждений базы данных, физических или логических. Если с помощью утилиты ЕХР выполнить полное эк-



1 ... 119 120 121 [ 122 ] 123 124 125 ... 469

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика