研究 - IMPDP [TRANSFORM=segment_attributes:n] [remap_tablespace] 2引數間影響關係
註釋:
相信一些公司習慣將真實的表資料和索引不在一個表空間;
(例如:伺服器'編號:59' TEST 使用者 T1表資料在 DATA表空間,索引在 IDX表空間)
那怎麼實現導到 其他伺服器'編號:69' TEST使用者 T1表資料在 USERS 表空間,索引在 USER01 表空間;
方案:
1)
手動 其他伺服器 TEST使用者下建立表和索引分別指向;---表少可以這樣做
2)
設定目標 TEST使用者 預設表空間 USER01,impdp 時加引數TRANSFORM ,索引 透過 remap_tablespace引數更改到自己想指定的表空間;
3)
是否可以有這樣的引數,來實現 如果物件的表空間=data 改成USER01,表空間=ind 改成USER01 ;
|
簡單說下2個引數意義:
TARGET_EDITION:用於載入後設資料的版本。
TRANSFORM=segment_attributes:n 使用TRANSFORM選項可以完成去掉表空間和儲存子句的目的,這樣我們便可以控制匯入時按照目標預設的引數
REMAP_TABLESPACE:將表空間物件重新對映到另一個表空間。
|
帶著方案/思想去實驗下哈~
方案一)create table ..tablespace ..;create index ..tablespace ..;在這就不說明了....
方案二)
步驟:
搭建環境:
1)在 伺服器'編號:59 ' 上建立使用者/表/索引
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0
Connected as sys@192.168.0.59/testdb AS SYSDBA
SQL>
SQL> create user test identified by test ;
User created
SQL> grant dba to test;
Grant succeeded
SQL> conn test/test@192.168.0.59:1521/testdb
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0
Connected as test@192.168.0.59:1521/testdb
SQL> create table t1 tablespace FWS_BUSINESS_DATA as select * from sinotest.cs_order ;
Table created
SQL> SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_tables C WHERE C.TABLE_NAME='T1';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
T1 FWS_BUSINESS_DATA
SQL> create index ind_t1 on T1 (con_id) tablespace FWS_BUSINESS_IDX;
Index created
SQL> SELECT TABLE_NAME,INDEX_NAME,TABLESPACE_NAME FROM USER_INDEXES C WHERE C.TABLE_NAME='T1';
TABLE_NAME INDEX_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
T1 IND_T1 FWS_BUSINESS_IDX
SQL> SELECT COUNT(1) FROM t1;
COUNT(1)
----------
103402
SQL>
|
2)在 伺服器'編號:69 ' 上建立 59的dblink
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0
Connected as sys@192.168.0.69/testdb AS SYSDBA
SQL> create public database link db_test connect to test identified by test using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.59)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = testdb)))';
Database link created
SQL> 檢驗dblink是否正常:
SQL> SELECT COUNT(1) FROM t1@db_test;
COUNT(1)
----------
103402
SQL> 由於伺服器'編號:69 有test使用者' 檢視下預設表空間 及 要測試的2個表空間存在情況:
SQL> SELECT username,default_tablespace FROM user_users;
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
TEST USERS
SQL> select * from v$tablespace s where s.NAME in ('USER01','USERS','FWS_BUSINESS_DATA','FWS_BUSINESS_IDX');
TS# NAME INCLUDED_IN_DATABASE_BACKUP BIGFILE FLASHBACK_ON ENCRYPT_IN_BACKUP
---------- ------------------------------ --------------------------- ------- ------------ -----------------
4 USERS YES NO YES
5 USER01 YES NO YES
SQL> 可以看出 69伺服器只有users,user01 2個表空間...
|
測試:
命令:impdp test/test@192.168.0.69:1521/sinodb network_link=db_test tables=test.t1 remap_schema=test:test TRANSFORM=segment_attributes:n remap_tablespace=FWS_BUSINESS_IDX:user01 table_exists_action=replace
是否會按照之前的想法 :伺服器'編號:69 ' T1表 表資料應該在預設表空間,索引應該在user01表空間
E:>impdp test/test@192.168.0.69:1521/sinodb network_link=db_test tables=test.t1 remap_schema=test:test TRANSFORM=segment_attributes:n remap_tablespace=FWS_BUSINESS_IDX:user01 table_exists_action=replace
Import: Release 10.2.0.1.0 - Production on 星期五, 22 8月, 2014 16:25:26 Copyright (c) 2003, 2005, Oracle. All rights reserved. 連線到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 啟動 "TEST"."SYS_IMPORT_TABLE_01": test/********@192.168.0.69:1521/sinodb network_link=db_test tables=test.t1 remap_schema=test:test TRANSFORM=segment_attributes:n remap_tablespace=FWS_BUSINESS_IDX:user01 table_exists_action=replace
正在使用 BLOCKS 方法進行估計...
處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA 使用 BLOCKS 方法的總估計: 32 MB 處理物件型別 TABLE_EXPORT/TABLE/TABLE . . 匯入了 "TEST"."T1" 103402 行 處理物件型別 TABLE_EXPORT/TABLE/INDEX/INDEX 處理物件型別 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS 作業 "TEST"."SYS_IMPORT_TABLE_01" 已於 16:20:34 成功完成
E:>
--校驗...是否按照理想的表空間匯入
|
方案三)
步驟:
是否可以有這樣的引數,來實現 如果物件的表空間=data 改成users,表空間=ind 改成user01;
...果真有啊... 設想寫為(remap_tablespace=FWS_BUSINESS_DATA:users remap_tablespace=FWS_BUSINESS_idx:user01)是否可以都生效
測試:
E:\oracle>impdp test/test@192.168.0.69:1521/sinodb network_link=db_test tables=test.t1 remap_schema=test:test remap_tablespace=FWS_BUSINESS_DATA:users remap_tablespace=FWS_BUSINESS_IDX:user01 table_exists_action=replace Import: Release 10.2.0.1.0 - Production on 星期五, 22 8月, 2014 17:18:38 Copyright (c) 2003, 2005, Oracle. All rights reserved. 連線到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 啟動 "TEST"."SYS_IMPORT_TABLE_01": test/********@192.168.0.69:1521/sinodb network_link=db_test tables=test.t1 remap_schema=test:test remap_tablespace=FWS_BUSINESS_DATA:users remap_tablespace=FWS_BUSINESS_IDX:user01 table_exists_action=replace 正在使用 BLOCKS 方法進行估計... 處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA 使用 BLOCKS 方法的總估計: 32 MB 處理物件型別 TABLE_EXPORT/TABLE/TABLE . . 匯入了 "TEST"."T1" 103402 行 處理物件型別 TABLE_EXPORT/TABLE/INDEX/INDEX 處理物件型別 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS 作業 "TEST"."SYS_IMPORT_TABLE_01" 已於 17:13:45 成功完成 E:\oracle> |
校驗:
SQL> SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_tables C WHERE C.TABLE_NAME='T1';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
T1 USERS
SQL> SELECT TABLE_NAME,INDEX_NAME,TABLESPACE_NAME FROM USER_INDEXES C WHERE C.TABLE_NAME='T1';
TABLE_NAME INDEX_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
T1 IND_T1 USER01
SQL>
|
結論:
引數都生效了,也就是說它識別成2個引數了,且2個remap_tablespace沒有順序情況;
所有測試結論:
1) 測試:引數TRANSFORM、remap_tablespace都存在,匯入測試 ,看引數生效情況結論:TRANSFORM=segment_attributes:n 引數,導致remap_tablespace引數失效,會匯入到使用者預設表空間2) 測試:去掉 TRANSFORM=segment_attributes:n 引數後正常測試 remap_tablespace=FWS_BUSINESS_DATA:users users表空間真是存在,看索引FWS_BUSINESS_IDX是否報錯?結論:索引報錯沒有FWS_BUSINESS_IDX表空間,remap_tablespace=FWS_BUSINESS_DATA:user01只生效了表;(正常不過)3) 測試:想將索引轉換為users ,設想寫為(remap_tablespace=FWS_BUSINESS_DATA:users remap_tablespace=FWS_BUSINESS_idx:user01)是否可以都生效結論:引數都生效了,也就是說它識別成2個引數了,且2個remap_tablespace沒有順序情況;
祝好~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28602568/viewspace-1256223/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- “影響者研究”系列(四):從關係和表達的角度發現影響者
- expdp / impdp 之 remap_schema remap_tablespaceREM
- expdp / impdp 之 remap_schema remap_tablespaceREM
- 每一秒都很重要:響應時間與資料洩露影響之間的密切關係
- 【IMPDP】使用 TRANSFORM選項去掉表空間和儲存子句ORM
- 從矩陣與空間操作的關係理解CSS3的transform矩陣CSSS3ORM
- 社交網路如何影響了人際交往的關係?
- TPS和響應時間之間是什麼關係
- Remap_table、remap_tablespace、tables在impdp關於只導特定表的注意事項REM
- 效能分析之使用者數(執行緒數)/響應時間/TPS的關係執行緒
- CSS3 transform 對HTML文件流帶來的影響CSSS3ORMHTML
- 關於LOL成就係統對玩家影響的簡略分析
- 深入Spring Boot:ClassLoader的繼承關係和影響Spring Boot繼承
- Dynamics CRM實體系列之1:N、N:1以及N:N關係
- 【impdp】IMPDP中的TRANSFORM引數--【資料泵】EXPDP匯出表結構(真實案例)後傳ORM
- IMPDP匯入沒有某個表空間的處理方法__加上引數TRANSFORM就可以了ORM
- impdp匯入時remap_*引數與table_exists_action的關係REM
- 核間遷移的影響
- Oracle Lob型別相關引數以及效能影響Oracle型別
- “影響者研究”系列(一):社會網路化時代影響者對營銷創新的影響
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- “影響者研究”系列(三):如何藉助網路影響者做營銷?
- 統計學三大相關係數之Pearson相關係數、Spearman相關係數
- 【匯入匯出】compress 值為n對匯入物件所佔空間的影響物件
- 類之間的關係
- remap_tablespaceREM
- 影響網頁渲染的關鍵!網頁
- 網際網路如何影響人類學研究?
- 第二關係式:一元n次通式
- 阿里研究院:空氣汙染對網購行為影響研究阿里
- impdp hangs,慎用impdp parallel引數Parallel
- 數百萬臺操作技術裝置受影響,研究人員披露INFRA:HALT漏洞
- 資料庫 - 關係代數與關係運算資料庫
- 【java】類之間的關係Java
- TLS與SSL之間關係TLS
- ps 與 svmon之間關係
- 修改系統時間對oracle的影響Oracle
- 《死亡迴圈》設計思考-玩家能力和關卡之間的相互影響