Как экспортировать схему и ее данные с TOAD - PullRequest
0 голосов
/ 03 февраля 2019

В TOAD есть много опций для экспорта данных.enter image description here Что я хочу сделать, это экспортировать схему / пользователя и связанный с ним объект ( табличное пространство, последовательности и т. Д. ), чтобы импортировать его вустановка другого оракула на другую машину.

Есть ли конкретная опция, подходящая для моей цели?

Спасибо

1 Ответ

0 голосов
/ 03 февраля 2019

Я бы не делал это с TOAD, но из командной строки, используя Data Pump Export и Import в командной строке.Вот пример.

Во-первых, как SYS, создайте каталог (объект Oracle), который указывает на каталог (папку) на моем жестком диске.Предоставьте необходимые привилегии пользователю, который будет его использовать.

SQL> show user
USER is "SYS"
SQL> create directory my_dir as 'c:\temp';

Directory created.

SQL> grant read, write on directory my_dir to mdp;

Grant succeeded.

Как MDP (это пользователь, которого я создал, отвечая на другой ваш вопрос, здесь: Какие роли и привилегии дать пользователючтобы выполнить CRUD (в Oracle 12) ), создайте несколько объектов:

SQL> connect mdp/pdm@xe
Connected.
SQL> create table test (id number);

Table created.

SQL> create view v_test as select * From test;

View created.

SQL> insert into test
  2    select level from dual
  3    connect by level <= 5;

5 rows created.

SQL> commit;

Commit complete.

OK, уровень операционной системы, командная строка: экспорт пользователя:

C:\>expdp mdp/pdm@xe directory=my_dir file=mdp.dmp log=mdp_exp.log

Export: Release 11.2.0.2.0 - Production on Ned Vel 3 18:00:54 2019

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
Legacy Mode Active due to the following parameters:
Legacy Mode Parameter: "file=mdp.dmp" Location: Command Line, Replaced with: "dumpfile=mdp.dmp"
Legacy Mode Parameter: "log=mdp_exp.log" Location: Command Line, Replaced with: "logfile=mdp_exp.log"
Legacy Mode has set reuse_dumpfiles=true parameter.
Starting "MDP"."SYS_EXPORT_SCHEMA_01":  mdp/********@xe directory=my_dir dumpfile=mdp.dmp logfile=mdp_exp.log reuse_dumpfiles=true
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/VIEW/VIEW
. . exported "MDP"."TEST"                                5.031 KB       5 rows
Master table "MDP"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for MDP.SYS_EXPORT_SCHEMA_01 is:
  C:\TEMP\MDP.DMP
Job "MDP"."SYS_EXPORT_SCHEMA_01" successfully completed at 18:01:24


C:\>

Ницца;успешно экспортирован.

Теперь, используя пользователя Oracle SYS, я исключу пользователя MDP;CASCADE используется потому, что у пользователя есть некоторые объекты, которые тоже нужно отбросить.Почему я бросаю это?Чтобы смоделировать ваш случай, т.е. переместить файл DMP на другой компьютер / базу данных, в которой нет этого пользователя.

C:\>sqlplus sys@xe as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Ned Vel 3 18:02:32 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Enter password:

Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> drop user mdp cascade;

User dropped.

SQL>

Представьте, что мы сейчас на другом компьютере;во-первых, я собираюсь создать пользователя MDP:

SQL> show user
USER is "SYS"
SQL> create user mdp identified by test
  2  default tablespace users
  3  temporary tablespace temp
  4  quota unlimited on users;

User created.

SQL> grant create session to mdp;

Grant succeeded.

SQL>

Вернуться к командной строке операционной системы, поскольку сейчас я собираюсь импортировать содержимое файла DMP.

C:\>impdp system@xe directory=my_dir dumpfile=mdp.dmp logfile=mdp_imp.log

Import: Release 11.2.0.2.0 - Production on Ned Vel 3 18:09:47 2019

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
Password:

Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01":  system/********@xe directory=my_dir dumpfile=mdp.dmp logfile=mdp_imp.log
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "MDP"."TEST"                                5.031 KB       5 rows
Processing object type SCHEMA_EXPORT/VIEW/VIEW
Job "SYSTEM"."SYS_IMPORT_FULL_01" successfully completed at 18:09:51


C:\>

Импорт имеетзакончил успешно.Теперь я могу использовать пользователя MDP со всеми его объектами, например,

C:\>sqlplus mdp/test@xe

SQL*Plus: Release 11.2.0.2.0 Production on Ned Vel 3 18:12:52 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> select * from v_test;

        ID
----------
         1
         2
         3
         4
         5

SQL>

Не забывайте, что я сказал в другой теме: предоставьте MPD только те привилегии, которые ему необходимы.В настоящее время он может только создавать сеанс и использовать существующие объекты, но не может создавать что-либо.

Вот так, более или менее.Не слишком полагайтесь на GUI (вы знаете, как это; те, кто живет с GUI, умирают от GUI ), нажимая здесь и нажимая там надеясь, что произойдет что-то хорошее.Скорее всего, нет.Хотя, как только вы узнаете, что делаете, GUI действительно очень поможет.

...