使用dbms_schema_copy 進行不同使用者間資料複製
dbms_schema_copy 這個包出現在10G,消失在11G,實際上是一個undocumnet 的功能。只是大家在偶爾維護系統使用,切不可在實際程式中使用。
SQL> conn / as sysdba
已連線
SQL> create user abc identified by abc default tablespace users ;
使用者已建立。
SQL> create user def identified by def default tablespace users ;
使用者已建立。
SQL> grant dba to abc ,def
2 ;
授權成功。
SQL> conn abc/abc
已連線。
SQL> create or replace view abc_view
2 as
3 select * from all_tables ;
檢視已建立。
SQL> conn / as sysdba
已連線。
SQL> exec dbms_schema_copy.clone('ABC','DEF'); -- 複製function ,package,procedure, synonym, type and view
PL/SQL 過程已成功完成。
SQL> exec dbms_schema_copy.clean_up('ABC','DEF');
PL/SQL 過程已成功完成。
SQL> conn def/def
已連線。
SQL> desc abc_view
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
TABLESPACE_NAME VARCHAR2(30)
CLUSTER_NAME VARCHAR2(30)
IOT_NAME VARCHAR2(30)
STATUS VARCHAR2(8)
PCT_FREE NUMBER
PCT_USED NUMBER
INI_TRANS NUMBER
MAX_TRANS NUMBER
INITIAL_EXTENT NUMBER
NEXT_EXTENT NUMBER
MIN_EXTENTS NUMBER
MAX_EXTENTS NUMBER
PCT_INCREASE NUMBER
FREELISTS NUMBER
FREELIST_GROUPS NUMBER
LOGGING VARCHAR2(3)
BACKED_UP VARCHAR2(1)
NUM_ROWS NUMBER
BLOCKS NUMBER
EMPTY_BLOCKS NUMBER
AVG_SPACE NUMBER
CHAIN_CNT NUMBER
AVG_ROW_LEN NUMBER
AVG_SPACE_FREELIST_BLOCKS NUMBER
NUM_FREELIST_BLOCKS NUMBER
DEGREE VARCHAR2(20)
INSTANCES VARCHAR2(20)
CACHE VARCHAR2(10)
TABLE_LOCK VARCHAR2(8)
SAMPLE_SIZE NUMBER
LAST_ANALYZED DATE
PARTITIONED VARCHAR2(3)
IOT_TYPE VARCHAR2(12)
TEMPORARY VARCHAR2(1)
SECONDARY VARCHAR2(1)
NESTED VARCHAR2(3)
BUFFER_POOL VARCHAR2(7)
ROW_MOVEMENT VARCHAR2(8)
GLOBAL_STATS VARCHAR2(3)
USER_STATS VARCHAR2(3)
DURATION VARCHAR2(15)
SKIP_CORRUPT VARCHAR2(8)
MONITORING VARCHAR2(3)
CLUSTER_OWNER VARCHAR2(30)
DEPENDENCIES VARCHAR2(8)
COMPRESSION VARCHAR2(8)
DROPPED VARCHAR2(3)
SQL> drop view abc_view ;
檢視已刪除。
---- 交換物件
SQL> conn / as sysdba
已連線。
SQL> exec dbms_schema_copy.swap('ABC','DEF',true,true);
PL/SQL 過程已成功完成。
SQL> conn abc/abc
已連線。
SQL> desc abc_view
ERROR:
ORA-04043: 物件 abc_view 不存在
SQL> conn def/def
已連線。
SQL> desc abc_view
名稱 是否為空? 型別
----------------------------------------- -------- ---------------------
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
TABLESPACE_NAME VARCHAR2(30)
CLUSTER_NAME VARCHAR2(30)
IOT_NAME VARCHAR2(30)
STATUS VARCHAR2(8)
PCT_FREE NUMBER
PCT_USED NUMBER
INI_TRANS NUMBER
MAX_TRANS NUMBER
INITIAL_EXTENT NUMBER
NEXT_EXTENT NUMBER
MIN_EXTENTS NUMBER
MAX_EXTENTS NUMBER
PCT_INCREASE NUMBER
FREELISTS NUMBER
FREELIST_GROUPS NUMBER
LOGGING VARCHAR2(3)
BACKED_UP VARCHAR2(1)
NUM_ROWS NUMBER
BLOCKS NUMBER
EMPTY_BLOCKS NUMBER
AVG_SPACE NUMBER
CHAIN_CNT NUMBER
AVG_ROW_LEN NUMBER
AVG_SPACE_FREELIST_BLOCKS NUMBER
NUM_FREELIST_BLOCKS NUMBER
DEGREE VARCHAR2(20)
INSTANCES VARCHAR2(20)
CACHE VARCHAR2(10)
TABLE_LOCK VARCHAR2(8)
SAMPLE_SIZE NUMBER
LAST_ANALYZED DATE
PARTITIONED VARCHAR2(3)
IOT_TYPE VARCHAR2(12)
TEMPORARY VARCHAR2(1)
SECONDARY VARCHAR2(1)
NESTED VARCHAR2(3)
BUFFER_POOL VARCHAR2(7)
ROW_MOVEMENT VARCHAR2(8)
GLOBAL_STATS VARCHAR2(3)
USER_STATS VARCHAR2(3)
DURATION VARCHAR2(15)
SKIP_CORRUPT VARCHAR2(8)
MONITORING VARCHAR2(3)
CLUSTER_OWNER VARCHAR2(30)
DEPENDENCIES VARCHAR2(8)
COMPRESSION VARCHAR2(8)
DROPPED VARCHAR2(3)
其實,在11G中使用 impdp network_link 的方式複製不同schema 的資料,是很方便的,例如:
impdp system/oracle network_link=gpo schemas=(DEV_GIS2_BJDPTJY) REMAP_SCHEMA=DEV_GIS2_BJDPTJY:TRADE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9036/viewspace-720341/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用impdp實現資料在不同使用者、不同例項之間快速複製
- 同一資料間複製使用者
- 使用RMAN進行資料庫複製資料庫
- 【IMPDP】不同資料庫例項不同使用者間資料遷移複製——NETWORK_LINK引數資料庫
- MongoDB在不同主機間複製資料庫和集合MongoDB資料庫
- 【IMPDP】同一資料庫例項不同使用者間資料遷移複製——NETWORK_LINK引數資料庫
- 使用資料泵進行Oracle-Oracle的單向複製。Oracle
- 資料庫複製方式進行資料庫恢復資料庫
- 使用RMAN複製活動資料庫(檔案路徑不同)資料庫
- 使用檔案複製的方式進行資料庫版本升級資料庫
- 在不同機器之間使用rman複製資料庫例項,從非asm到asm資料庫ASM
- 克隆資料庫之使用者管理複製(三)資料庫
- 克隆資料庫之使用者管理複製(二)資料庫
- 克隆資料庫之使用者管理複製(一)資料庫
- 不同資料夾使用不同的Git使用者Git
- 複製建立已有資料庫使用者、表空間、許可權的指令碼資料庫指令碼
- 使用goldengate的資料泵進行Oracle-Oracle的單向複製GoOracle
- 關於在不同版本和平臺之間進行還原或複製的常見問題
- 使用RMAN複製資料庫資料庫
- 使用OEM複製資料庫資料庫
- 不同使用者,不同表空間遷移
- 使用者管理的熱備份方式複製資料庫資料庫
- 多級複製的資料不同步問題
- 使用scp命令在多個Linux系統間進行檔案複製Linux
- ORACLE使用者管理方式下備份資料和複製資料庫Oracle資料庫
- 【SqlServer】【Oracle】sql複製表定義及複製資料行SQLServerOracle
- 使用Docker進行Redis主從複製實踐DockerRedis
- 如何使用scp進行遠端複製檔案?
- 不同使用者,不同的session超時時間Session
- 複製使用者結構
- 使用RMAN在ASM和檔案系統之間複製資料ASM
- 不同使用者訪問資料--current schema
- 異構資料庫間批量表快速複製資料庫
- 使用RMAN複製資料庫 active database資料庫Database
- 【RMAN】使用duplicate本地複製資料庫資料庫
- DM7資料複製之資料庫級複製資料庫
- 資料共享(淺複製)與資料獨立(深複製)
- WINHEX使用技巧(從檔案中複製出十六進位制資料)