ORACLE 10G以上 在同一資料庫中複製使用者下的所有表

germany006發表於2015-10-22
1、使用者USER01,對DIRECTORY有讀寫許可權,資料庫與作業系統分別設定與建立好對應的路徑及目錄
2、授權,例如臨時授予DBA許可權,用完再收回
3、匯出USER01例子:

expdp USER01/USER01  DIRECTORY=DUMP_TEST DUMPFILE=USER01.dmp SCHEMAS=USER01
注:如果是用sys使用者匯出的使用者資料,包括使用者建立、授權部分,用自身使用者匯出則不含這些內容

可以查詢使用者使用的預設表空間
select username,default_tablespace from dba_users where username='USER01';
查到USER01使用的預設表空間是DATA01

4、建立使用者USER02,授權
create user USER02 identified by USER02;
grant connect,resource to USER02;
grant dba to USER02; 
grant read,write on directory DUMP_TEST to USER02;

5、建立USER02預設表空間
create tablespace DATA02 add datafile '/oradata/USER02.dbf' size 5M autoextend on next 5M maxsize 50M; 
alter user USER02 default tablespace DATA02;

6、將USER01使用者下的資料全部匯入到表空間DATA02(原來為DATA01表空間下)下
impdp USER02/USER02 DIRECTORY=DUMP_TEST DUMPFILE=USER01.dmp  remap_schema=USER01:USER02



如果是在WINDOWS環境下,需要注意環境變數,或者直接在bin目錄下執行命令。
而如果要在CMD上使用SYSDBA使用者來執行命令,需以以下格式執行:
expdp \"/ as sysdba\"  DIRECTORY=DUMP_TEST DUMPFILE=USER01.dmp SCHEMAS=user01
impdp \"/ as sysdba\"  DIRECTORY=DUMP_TEST DUMPFILE=USER01.dmp remap_tablespace=user01:user02




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-1815566/,如需轉載,請註明出處,否則將追究法律責任。

相關文章