1、創(chuàng)建邏輯目錄
首先在服務(wù)器上創(chuàng)建真實(shí)的目錄tableStruct;(注意:第三步創(chuàng)建邏輯目錄的命令不會(huì)在OS上創(chuàng)建真正的目錄,所以要先在服務(wù)器上創(chuàng)建真實(shí)的目錄。如下圖:)

- 創(chuàng)建邏輯目錄,別名
data_dir
SQL> create directory data_dir as 'D:\tableStruct';
Directory created.
- 查看管理員目錄,檢查是否存在
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME
------------------------------ ------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
SYS DATA_DIR
/home/oracle/dmp/user
- 用sys管理員給你的指定用戶賦予在該目錄的操作權(quán)限
SQL> grant read,write on directory data_dir to user;
Grant succeeded.
2、導(dǎo)出數(shù)據(jù)庫(kù)
expdp system/123456@orcl schemas=jwuser dumpfile=jwuser_tables.dmp directory=data_dir logfile=jwuser_tables.log;
system // 賬號(hào)
123456 // 密碼
orcl // 服務(wù)名
jwuser //數(shù)據(jù)庫(kù)名稱
jwuser_tables.dmp // 導(dǎo)出的文件名
data_dir // 導(dǎo)出的路徑【設(shè)置的數(shù)據(jù)庫(kù)文件夾變量】
jwuser_tables.log // 日志輸出文件
3、導(dǎo)入數(shù)據(jù)庫(kù)
impdp ggs/123456 remap_tablespace=JW_USER:TEST remap_schema=jwuser:IMPJW directory=data_dir dumpfile=JWUSER_TABLES.DMP logfile=impdp_test.log
ggs // 賬號(hào)
123456 // 密碼
JW_USER:TEST // 表空間名映射,JW_USER 導(dǎo)出的數(shù)據(jù)庫(kù)表空間,TEST 導(dǎo)入的數(shù)據(jù)庫(kù)表空間
jwuser:IMPJW //數(shù)據(jù)庫(kù)名映射,jwuser 導(dǎo)出的數(shù)據(jù)庫(kù)名,IMPJW 導(dǎo)入的數(shù)據(jù)庫(kù)表名
JWUSER_TABLES.DMP // 導(dǎo)入的文件名
data_dir // 導(dǎo)出的路徑【設(shè)置的數(shù)據(jù)庫(kù)文件夾變量】
impdp_test.log // 日志輸出文件
相關(guān)閱讀
1、用expdp導(dǎo)出dmp,有五種導(dǎo)出方式:
- 第一種:“full=y”,全量導(dǎo)出數(shù)據(jù)庫(kù);
expdp user/passwd@orcl dumpfile=expdp.dmp directory=data_dir full=y logfile=expdp.log; - 第二種:schemas按用戶導(dǎo)出;
expdp user/passwd@orcl schemas=user dumpfile=expdp.dmp directory=data_dir logfile=expdp.log; - 第三種:按表空間導(dǎo)出;
expdp sys/passwd@orcl tablespace=tbs1,tbs2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log; - 第四種:導(dǎo)出表;
expdp user/passwd@orcl tables=table1,table2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log; - 第五種:按查詢條件導(dǎo);
expdp user/passwd@orcl tables=table1='where number=1234' dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
2、用impdp命令導(dǎo)入,對(duì)應(yīng)五種方式:
- 第一種:“full=y”,全量導(dǎo)入數(shù)據(jù)庫(kù);
impdp user/passwd directory=data_dir dumpfile=expdp.dmp full=y; - 第二種:同名用戶導(dǎo)入,從用戶A導(dǎo)入到用戶A;
impdp A/passwd schemas=A directory=data_dir dumpfile=expdp.dmp logfile=impdp.log; - 第三種:
①?gòu)腁用戶中把表table1和table2導(dǎo)入到B用戶中;
impdp B/passwdtables=A.table1,A.table2 remap_schema=A:B directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
②將表空間TBS01、TBS02、TBS03導(dǎo)入到表空間A_TBS,將用戶B的數(shù)據(jù)導(dǎo)入到A,并生成新的oid防止沖突;
impdp A/passwd remap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS remap_schema=B:A FULL=Y transform=oid:n directory=data_dir dumpfile=expdp.dmp logfile=impdp.log - 第四種:導(dǎo)入表空間;
impdp sys/passwd tablespaces=tbs1 directory=data_dir dumpfile=expdp.dmp logfile=impdp.log; - 第五種:追加數(shù)據(jù);
impdp sys/passwd directory=data_dir dumpfile=expdp.dmp schemas=system table_exists_action=replace logfile=impdp.log;
-- table_exists_action:導(dǎo)入對(duì)象已存在時(shí)執(zhí)行的操作。有效關(guān)鍵字:SKIP,APPEND,REPLACE和TRUNCATE
-
expdp關(guān)鍵字與命令
| 關(guān)鍵字 | 說(shuō)明 (默認(rèn)) |
|---|---|
| ATTACH | 連接到現(xiàn)有作業(yè), 例如 ATTACH [=作業(yè)名]。 |
| COMPRESSION | 減小轉(zhuǎn)儲(chǔ)文件內(nèi)容的大小, 其中有效關(guān)鍵字 值為: ALL, (METADATA_ONLY), DATA_ONLY 和 NONE。 |
| CONTENT | 指定要卸載的數(shù)據(jù), 其中有效關(guān)鍵字 值為: (ALL), DATA_ONLY 和 METADATA_ONLY。 |
| DATA_OPTIONS | 數(shù)據(jù)層標(biāo)記, 其中唯一有效的值為: 使用CLOB格式的 XML_CLOBS-write XML 數(shù)據(jù)類(lèi)型。 |
| DIRECTORY | 供轉(zhuǎn)儲(chǔ)文件和日志文件使用的目錄對(duì)象,即邏輯目錄。 |
| DUMPFILE | 目標(biāo)轉(zhuǎn)儲(chǔ)文件 (expdp.dmp) 的列表,例如 DUMPFILE=expdp1.dmp, expdp2.dmp。 |
| ENCRYPTION | 加密部分或全部轉(zhuǎn)儲(chǔ)文件, 其中有效關(guān)鍵字值為: ALL, DATA_ONLY, METADATA_ONLY,ENCRYPTED_COLUMNS_ONLY 或 NONE。 |
| ENCRYPTION_ALGORITHM | 指定應(yīng)如何完成加密, 其中有效關(guān)鍵字值為: (AES128), AES192 和 AES256。 |
| ENCRYPTION_MODE | 生成加密密鑰的方法, 其中有效關(guān)鍵字值為: DUAL, PASSWORD 和 (TRANSPARENT)。 |
| ENCRYPTION_PASSWORD | 用于創(chuàng)建加密列數(shù)據(jù)的口令關(guān)鍵字。 |
| ESTIMATE | 計(jì)算作業(yè)估計(jì)值, 其中有效關(guān)鍵字值為: (BLOCKS) 和 STATISTICS。 |
| ESTIMATE_ONLY | 在不執(zhí)行導(dǎo)出的情況下計(jì)算作業(yè)估計(jì)值。 |
| EXCLUDE | 排除特定的對(duì)象類(lèi)型, 例如 EXCLUDE=TABLE:EMP。例:EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] 。 |
| FILESIZE | 以字節(jié)為單位指定每個(gè)轉(zhuǎn)儲(chǔ)文件的大小。 |
| FLASHBACK_SCN | 用于將會(huì)話快照設(shè)置回以前狀態(tài)的 SCN。 -- 指定導(dǎo)出特定SCN時(shí)刻的表數(shù)據(jù)。 |
| FLASHBACK_TIME | 用于獲取最接近指定時(shí)間的 SCN 的時(shí)間。-- 定導(dǎo)出特定時(shí)間點(diǎn)的表數(shù)據(jù),注意FLASHBACK_SCN和FLASHBACK_TIME不能同時(shí)使用。 |
| FULL | 導(dǎo)出整個(gè)數(shù)據(jù)庫(kù) (N)。 |
| HELP | 顯示幫助消息 (N)。 |
| INCLUDE | 包括特定的對(duì)象類(lèi)型, 例如 INCLUDE=TABLE_DATA。 |
| JOB_NAME | 要?jiǎng)?chuàng)建的導(dǎo)出作業(yè)的名稱。 |
| LOGFILE | 日志文件名 (export.log)。 |
| NETWORK_LINK | 鏈接到源系統(tǒng)的遠(yuǎn)程數(shù)據(jù)庫(kù)的名稱。 |
| NOLOGFILE | 不寫(xiě)入日志文件 (N)。 |
| PARALLEL | 更改當(dāng)前作業(yè)的活動(dòng) worker 的數(shù)目。 |
| PARFILE | 指定參數(shù)文件。 |
| QUERY | 用于導(dǎo)出表的子集的謂詞子句。--QUERY = [schema.][table_name:] query_clause。 |
| REMAP_DATA | 指定數(shù)據(jù)轉(zhuǎn)換函數(shù),例如 REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。 |
| REUSE_DUMPFILES | 覆蓋目標(biāo)轉(zhuǎn)儲(chǔ)文件 (如果文件存在) (N)。 |
| SAMPLE | 要導(dǎo)出的數(shù)據(jù)的百分比。 |
| SCHEMAS | 要導(dǎo)出的方案的列表 (登錄方案)。 |
| STATUS | 在默認(rèn)值 (0) 將顯示可用時(shí)的新?tīng)顟B(tài)的情況下,要監(jiān)視的頻率 (以秒計(jì)) 作業(yè)狀態(tài)。 |
| TABLES | 標(biāo)識(shí)要導(dǎo)出的表的列表 - 只有一個(gè)方案。--[schema_name.]table_name[:partition_name][,…] |
| TABLESPACES | 標(biāo)識(shí)要導(dǎo)出的表空間的列表。 |
| TRANSPORTABLE | 指定是否可以使用可傳輸方法, 其中有效關(guān)鍵字值為: ALWAYS, (NEVER)。 |
| TRANSPORT_FULL_CHECK | 驗(yàn)證所有表的存儲(chǔ)段 (N)。 |
| TRANSPORT_TABLESPACES | 要從中卸載元數(shù)據(jù)的表空間的列表。 |
| VERSION | 要導(dǎo)出的對(duì)象的版本, 其中有效關(guān)鍵字為:(COMPATIBLE), LATEST 或任何有效的數(shù)據(jù)庫(kù)版本。 |
| ADD_FILE | 向轉(zhuǎn)儲(chǔ)文件集中添加轉(zhuǎn)儲(chǔ)文件。 |
| CONTINUE_CLIENT | 返回到記錄模式。如果處于空閑狀態(tài), 將重新啟動(dòng)作業(yè)。 |
| EXIT_CLIENT | 退出客戶機(jī)會(huì)話并使作業(yè)處于運(yùn)行狀態(tài)。 |
| FILESIZE | 后續(xù) ADD_FILE 命令的默認(rèn)文件大小 (字節(jié))。 |
| HELP | 總結(jié)交互命令。 |
| KILL_JOB | 分離和刪除作業(yè)。 |
| PARALLEL | 更改當(dāng)前作業(yè)的活動(dòng) worker 的數(shù)目。PARALLEL=<worker 的數(shù)目>。 |
| _DUMPFILES | 覆蓋目標(biāo)轉(zhuǎn)儲(chǔ)文件 (如果文件存在) (N)。 |
| START_JOB | 啟動(dòng)/恢復(fù)當(dāng)前作業(yè)。 |
| STATUS | 在默認(rèn)值 (0) 將顯示可用時(shí)的新?tīng)顟B(tài)的情況下,要監(jiān)視的頻率 (以秒計(jì)) 作業(yè)狀態(tài)。STATUS[=interval]。 |
| STOP_JOB | 順序關(guān)閉執(zhí)行的作業(yè)并退出客戶機(jī)。STOP_JOB=IMMEDIATE 將立即關(guān)閉數(shù)據(jù)泵作業(yè)。 |
-
impdp關(guān)鍵字與命令
| 關(guān)鍵字 | 說(shuō)明 (默認(rèn)) |
|---|---|
| ATTACH | 連接到現(xiàn)有作業(yè), 例如 ATTACH [=作業(yè)名]。 |
| CONTENT | 指定要卸載的數(shù)據(jù), 其中有效關(guān)鍵字 值為: (ALL), DATA_ONLY 和 METADATA_ONLY。 |
| DATA_OPTIONS | 數(shù)據(jù)層標(biāo)記,其中唯一有效的值為:SKIP_CONSTRAINT_ERRORS-約束條件錯(cuò)誤不嚴(yán)重。 |
| DIRECTORY | 供轉(zhuǎn)儲(chǔ)文件,日志文件和sql文件使用的目錄對(duì)象,即邏輯目錄。 |
| DUMPFILE | 要從(expdp.dmp)中導(dǎo)入的轉(zhuǎn)儲(chǔ)文件的列表,例如 DUMPFILE=expdp1.dmp, expdp2.dmp。 |
| ENCRYPTION_PASSWORD | 用于訪問(wèn)加密列數(shù)據(jù)的口令關(guān)鍵字。此參數(shù)對(duì)網(wǎng)絡(luò)導(dǎo)入作業(yè)無(wú)效。 |
| ESTIMATE | 計(jì)算作業(yè)估計(jì)值, 其中有效關(guān)鍵字為:(BLOCKS)和STATISTICS。 |
| EXCLUDE | 排除特定的對(duì)象類(lèi)型, 例如 EXCLUDE=TABLE:EMP。 |
| FLASHBACK_SCN | 用于將會(huì)話快照設(shè)置回以前狀態(tài)的 SCN。 |
| FLASHBACK_TIME | 用于獲取最接近指定時(shí)間的 SCN 的時(shí)間。 |
| FULL | 從源導(dǎo)入全部對(duì)象(Y)。 |
| HELP | 顯示幫助消息(N)。 |
| INCLUDE | 包括特定的對(duì)象類(lèi)型, 例如 INCLUDE=TABLE_DATA。 |
| JOB_NAME | 要?jiǎng)?chuàng)建的導(dǎo)入作業(yè)的名稱。 |
| LOGFILE | 日志文件名(import.log)。 |
| NETWORK_LINK | 鏈接到源系統(tǒng)的遠(yuǎn)程數(shù)據(jù)庫(kù)的名稱。 |
| NOLOGFILE | 不寫(xiě)入日志文件。 |
| PARALLEL | 更改當(dāng)前作業(yè)的活動(dòng)worker的數(shù)目。 |
| PARFILE | 指定參數(shù)文件。 |
| PARTITION_OPTIONS | 指定應(yīng)如何轉(zhuǎn)換分區(qū),其中有效關(guān)鍵字為:DEPARTITION,MERGE和(NONE)。 |
| QUERY | 用于導(dǎo)入表的子集的謂詞子句。 |
| REMAP_DATA | 指定數(shù)據(jù)轉(zhuǎn)換函數(shù),例如REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。 |
| REMAP_DATAFILE | 在所有DDL語(yǔ)句中重新定義數(shù)據(jù)文件引用。 |
| REMAP_SCHEMA | 將一個(gè)方案中的對(duì)象加載到另一個(gè)方案。 |
| REMAP_TABLE | 表名重新映射到另一個(gè)表,例如 REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。 |
| REMAP_TABLESPACE | 將表空間對(duì)象重新映射到另一個(gè)表空間。 |
| REUSE_DATAFILES | 如果表空間已存在, 則將其初始化 (N)。 |
| SCHEMAS | 要導(dǎo)入的方案的列表。 |
| SKIP_UNUSABLE_INDEXES | 跳過(guò)設(shè)置為無(wú)用索引狀態(tài)的索引。 |
| SQLFILE | 將所有的 SQL DDL 寫(xiě)入指定的文件。 |
| STATUS | 在默認(rèn)值(0)將顯示可用時(shí)的新?tīng)顟B(tài)的情況下,要監(jiān)視的頻率(以秒計(jì))作業(yè)狀態(tài)。 |
| STREAMS_CONFIGURATION | 啟用流元數(shù)據(jù)的加載。 |
| TABLE_EXISTS_ACTION | 導(dǎo)入對(duì)象已存在時(shí)執(zhí)行的操作。有效關(guān)鍵字:(SKIP),APPEND,REPLACE和TRUNCATE。 |
| TABLES | 標(biāo)識(shí)要導(dǎo)入的表的列表。 |
| TABLESPACES | 標(biāo)識(shí)要導(dǎo)入的表空間的列表。 |
| TRANSFORM | 要應(yīng)用于適用對(duì)象的元數(shù)據(jù)轉(zhuǎn)換。有效轉(zhuǎn)換關(guān)鍵字為:SEGMENT_ATTRIBUTES,STORAGE,OID和PCTSPACE。 |
| TRANSPORTABLE | 用于選擇可傳輸數(shù)據(jù)移動(dòng)的選項(xiàng)。有效關(guān)鍵字為: ALWAYS 和 (NEVER)。僅在 NETWORK_LINK 模式導(dǎo)入操作中有效。 |
| TRANSPORT_DATAFILES | 按可傳輸模式導(dǎo)入的數(shù)據(jù)文件的列表。 |
| TRANSPORT_FULL_CHECK | 驗(yàn)證所有表的存儲(chǔ)段 (N)。 |
| TRANSPORT_TABLESPACES | 要從中加載元數(shù)據(jù)的表空間的列表。僅在 NETWORK_LINK 模式導(dǎo)入操作中有效。 |
| VERSION | 要導(dǎo)出的對(duì)象的版本, 其中有效關(guān)鍵字為:(COMPATIBLE), LATEST 或任何有效的數(shù)據(jù)庫(kù)版本。僅對(duì) NETWORK_LINK 和 SQLFILE 有效。 |
| CONTINUE_CLIENT | 返回到記錄模式。如果處于空閑狀態(tài), 將重新啟動(dòng)作業(yè)。 |
| EXIT_CLIENT | 退出客戶機(jī)會(huì)話并使作業(yè)處于運(yùn)行狀態(tài)。 |
| HELP | 總結(jié)交互命令。 |
| KILL_JOB | 分離和刪除作業(yè)。 |
| PARALLEL | 更改當(dāng)前作業(yè)的活動(dòng) worker 的數(shù)目。PARALLEL=<worker 的數(shù)目>。 |
| START_JOB | 啟動(dòng)/恢復(fù)當(dāng)前作業(yè)。START_JOB=SKIP_CURRENT 在開(kāi)始作業(yè)之前將跳過(guò)作業(yè)停止時(shí)執(zhí)行的任意操作。 |
| STATUS | 在默認(rèn)值 (0) 將顯示可用時(shí)的新?tīng)顟B(tài)的情況下,要監(jiān)視的頻率 (以秒計(jì)) 作業(yè)狀態(tài)。STATUS[=interval]。 |
| STOP_JOB | 順序關(guān)閉執(zhí)行的作業(yè)并退出客戶機(jī)。STOP_JOB=IMMEDIATE 將立即關(guān)閉數(shù)據(jù)泵作業(yè)。 |