betacode

Импорт и экспорт базы данных Oracle

1- Import и Export в Oracle 11g

Начиная с Oracle 11 и далее Oracle использует синтаксис отличающийся от предыдущей версии Oracle чтобы импортировать (import) и экспортировать (export) данные. В целом есть 2 варианта для импорта/экспорта (import/export):
  1. Import/Export некоторые таблицы CHEMA.
  2. Import/Export полностью SCHEMA (включая объекты: table, view, function,...)

1.1- Import/Export SCHEMA (11g)

Для начала вам нужно определить DBA Directory (Папку DBA, можно сказать папку управленияị DB) она прикрепляется к реальному пути к вашему диску. На самом деле вам нужно объявить один раз и можете использовать дальше.
Например я определю DBA Directory (Папку DBA) с названием MY_BACKUP_DIR прикрепляя к файлу C:/oraclebackup
Войти в SQL Plus используя user system:
- Create a directory named DBA MY_BACKUP_DIR attached to the actual directory on your hard drive
- Make sure that the C:/oraclebackup exist.

create directory MY_BACKUP_DIR AS 'C:/oraclebackup';
DBA Directory создан с помощью user system. Только user с авторизацией DBA могут ее использовать. Вы так же можете дать авторизацию для использования этой DBA Directory другим пользователям.
-- Grant read,write on directory to some user.

grant read,write on directory MY_BACKUP_DIR to Some_User;
Можете так же сделать запрос чтобы увидеть созданные до этого объекты DBA Directory и имеющиеся в Oracle.
- Query all DBA directory in ORACLE
- By querying the view DBA_DIRECTORIES.

Select Directory_Name,Directory_Path From Dba_Directories;
Результат:

1.1.1- Expdp

Использовать expdp чтобы экспортировать (export) полностью SCHEMA в файл dump.
Чтобы экспортировать (export) вам нужно открыть CMD и CD к папке BIN в Oracle.

cd C:\DevPrograms\db11g\product\11.2.0\dbhome_1\BIN
@rem DBA Directory: MY_BACKUP_DIR has been created in the previous step.
@rem SCHEMA export: learningsql


expdp system/admin DIRECTORY=MY_BACKUP_DIR DUMPFILE= learningsql.dmp SCHEMAS=learningsql LOGFILE=learningsql.log
Результат:
Заметка: Вы можете экспортировать (export) несколько Schema одновременно в 1 файл dump. Например:

expdp system/admin DIRECTORY=MY_BACKUP_DIR DUMPFILE= multi.dmp SCHEMAS=learningsql,simplehr LOGFILE= multi.log

1.1.2- Impdp

Для начала вам нужно создать user learningsql2. Войти в SQL Plus:
Дать кoманду создать user:
-- User: learningsql2
-- Password: 1234

create user learningsql2 identified by 1234;
В принципе вы только что создали пустую SCHEMA.
Далее мы импортируем (import ) из файла dump в только что созданную Schema. На самом деле в файле dump может быть одна или несколько SCHEMA. Когда вы импортируете (import) файл dump в определенную Schema, вам нужно указать источник SCHEMA в файле dump, и целевую SCHEMA.
Заметьте, что в ORACLE название SCHEMA так же является названием User.
Откройте CMD и CD в папку bin в Oracle:

cd C:\DevPrograms\db11g\product\11.2.0\dbhome_1\BIN
Объявите команду impdp:

impdp system/admin DIRECTORY=MY_BACKUP_DIR DUMPFILE=learningsql.DMP REMAP_SCHEMA=learningsql:learingsql2 LOGFILE=learningsql_imp.log
Объяснение:
  • Импорт из файла learningsql.DMP
  • Из источника Schema: learningsql (В файле dump)
  • К целевой Schema: learningsql2
Заметка: Вы можете не создавать до этого user learningsql2, команда impdb сама создаст этот user, но пароль не определен, вам нужно самим установить пароль.
Успешный запуск результата: