-- 1. OS 경로에 Directory를 생성하고 DB에서 해당 Directory를 사용하도록 지정합니다.
$ mkdir /home/oracle/datapump
SQL> create or replace directory datapump as '/home/oracle/datapump';
SQL> select * from dba_directories;
-- 2. Datapump 전용 계정을 생성합니다.
SQL> create user khyup
2 identified by 1234
3 default tablespace users
4 quota unlimited on users
5 quota 0m on system;
SQL> select username from dba_users where username='KHYUP';
SQL> grant connect, resource to khyup;
-- 3. Datapump 전용 계정에 권한을 부여합니다.
SQL> grant read, write on directory datapump to khyup;
SQL> grant datapump_exp_full_database, datapump_imp_full_database to khyup;
사정에 따라 Datapump 전용 계정에
dba
권한을 부여할 수도 있습니다.
datapump_exp_full_database, datapump_imp_full_database
: expdp/impdp를 위한 가장 강력한 Role입니다. datapump에는 여러 방법이 있고 과정을 수행하기 위해서는 Datapump 전용 계정이 다른 스키마의 오브젝트를 읽기/쓰기를 해야 할 수 있는데, 이런 Datapump를 위한 모든 권한을 두 개의 Role이 포함하고 있습니다. expdp/impdp 방식을 이용한다면 전용 계정에datapump_exp_full_database
,datapump_imp_full_database
를 부여하고, exp/imp 방식을 이용한다면exp_full_database
,imp_full_database
를 부여합니다. 가장 강력한 Role이기 때문에 꼭 필요한 곳에 최소한으로 부여해야 합니다.
이후에는 expdp/impdp를 수행하면 됩니다.
$ expdp khyup/1234 directory=<directory_name> dumpfile=<dumpfile_name> logfile=<logfile_name> ...
$ impdp khyup/1234 directory=<directory_name> dumpfile=<dumpfile_name> logfile=<logfile_name> ...