![]() |
|
Программирование >> Oracle
![]() Импорт и экспорт Утилиты импорта (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 и ЕХР? Утилиту ЕХР можно использовать для многих целей, некоторые из них упоминались. Ниже я перечислю ряд ситуаций, когда она оказалась особенно полезной. Выявление повреждений Я использую утилиту ЕХР в качестве средства для выявления повреждений базы данных, физических или логических. Если с помощью утилиты ЕХР выполнить полное эк-
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |