Oracle 導入導出 dmp 數據文件實戰

一、DMP文件基礎知識??

1. ??DMP文件定義??

DMP(Data Pump Dump File)是Oracle數據庫專用的二進制格式文件,由expdp/impdp或舊版exp/imp工具生成。它包含數據庫對象的元數據(表結構、索引等)和實際數據,是數據備份、遷移和恢復的核心載體。

2. ??DMP文件結構??

  • ?? 文件頭??:記錄Oracle版本、字符集、導出時間等元信息。
  • ??數據段??:存儲表數據,按數據塊組織,支持并行讀寫。
  • ??索引段??:加速數據檢索的索引信息,包含校驗和等完整性標記。
  • ??數據字典??:定義表、視圖、存儲過程等對象的元數據。

3. ?核心功能??

  • ??全量備份??:導出整個數據庫或指定用戶的所有對象。
  • ??增量同步??:僅導出變更數據,減少傳輸量(需結合日志)。
  • ??跨平臺遷移??:支持不同Oracle版本、操作系統間的數據傳輸。

4. 生成工具??

  • ??傳統工具??:exp(導出)和imp(導入),適用于Oracle 10g及以下版本。
  • ??數據泵工具??:expdp和impdp,提供并行處理、壓縮等高級特性(Oracle 10g+推薦)

二、DMP文件導出實戰??

1. ??數據泵導出(expdp)??

(1)語法
expdp system/password@ORCL directory=DATA_PUMP_DIR dumpfile=20250520_full.dmp logfile=export.log schemas=HR,SCOTT parallel=4 compression=all encryption=password:oracle123

??關鍵參數??:

  • directory:預先創建的Oracle目錄對象(需關聯物理路徑)。
  • schemas:指定導出用戶,多用戶用逗號分隔。
  • parallel:并行線程數,提升大庫導出速度。
  • compression:減少文件體積(可選all/data/metadata)。
  • encryption:加密保護敏感數據(支持密碼或密鑰)。
  • log: 日志路徑
(2) 示例
  1. 查詢 Oracle 預先創建的Oracle目錄對象
select * from dba_directories;
  1. 創建指定的 Oracle 目錄對象(關聯物理路徑)
create directory testdir as 'D:\OracleDMP';
  1. 手動創建物理目錄 D:\OracleDMP
  2. 將這個目錄指給用戶(TEST_FORMAL)
SQL> grant read,write on directory testdir to TEST_FORMAL;
  1. 執行導出命令
--導出指定表 USER_TEMP,USER_TEMP2
expdp TEST_FORMAL/MyPassword@ORCL directory=testdir dumpfile=test.dmp logfile=exp.log  tables=USER_TEMP,USER_TEMP2
-- 導出整庫
expdp TEST_FORMAL/MyPassword@ORCL directory=testdir dumpfile=test.dmp logfile=exp.log 

2. ??傳統導出(exp)??

語法

exp system/password@ORCL file=/backup/legacy.dmp owner=HR buffer=102400 rows=y consistent=ylog= /backup/exp.log

示例:

--導出指定表 USER_TEMP,USER_TEMP2
exp TEST_FORMAL/MyPassword@ORCL file=D:\OracleDMP\test.dmp tables=(USER_TEMP,USER_TEMP2) log=D:\OracleDMP\exp.log --導出整庫
exp  TEST_FORMAL/MyPassword@ORCL file=D:\OracleDMP\test.dmp log=D:\OracleDMP\exp.log 

??適用場景??:低版本數據庫或簡單備份需求。

三、DMP文件導入實戰??

1. ??數據泵導入(impdp)??

impdp system/password@NEWDB directory=DATA_PUMP_DIR dumpfile=20250520_full.dmp remap_schema=HR:NEW_HR remap_tablespace=USERS:NEW_USERS transform=segment_attributes:n exclude=statistics

??關鍵參數??:

  • directory:預先創建的Oracle目錄對象(需關聯物理路徑)。
  • remap_schema:用戶重映射(原用戶→目標用戶)。
  • remap_tablespace:調整表空間分配49。
  • transform:忽略存儲參數沖突(如storage子句)。
  • exclude/include:過濾對象類型(如排除統計信息)。

2. ??傳統導入(imp)??

imp system/password@NEWDB file=/backup/legacy.dmp fromuser=HR touser=NEW_HR ignore=y commit=y

??注意事項??:需手動創建目標用戶和表空間。

1.核心參數說明

參數作用說明示例
USERID指定數據庫連接憑證(格式:用戶名/密碼@服務名USERID=system/oracle@ORCL
FILE指定要導入的DMP文件路徑FILE=/data/full.dmp
FULL全庫導入(需IMP_FULL_DATABASE權限)FULL=Y
FROMUSER/TOUSER用戶重定向(將原用戶數據導入目標用戶)FROMUSER=HR TOUSER=NEW_HR
TABLES指定導入的表(支持多表或分區表)TABLES=(EMP,DEPT)TABLES=(T1:P1,T1:P2)
ROWS是否導入數據行(默認Y導入數據,N僅導入結構)ROWS=N(僅導入DDL)
IGNORE忽略對象創建錯誤(如重復表/索引,默認N報錯)IGNORE=Y(跳過沖突繼續執行)
COMMIT提交頻率(默認N批量提交,Y逐行提交)COMMIT=Y(適用于大事務回滾控制)
LOG指定日志文件路徑LOG=/logs/imp.log
INDEXFILE將DDL語句寫入指定文件(用于調試)INDEXFILE=ddl.sql

2. 高級參數擴展

???

參數??適用場景
DESTROY=Y覆蓋已有表空間文件(慎用)
GRANTS=N跳過權限導入(如僅需數據)
RECORDLENGTH=65535調整I/O緩沖區大小(優化大數據量導入性能)
PARFILE從參數文件讀取配置(簡化復雜命令)

3.傳統導入(IMP)的三種模式??

1. 完全導入模式(FULL=Y)??

??定義??:導入整個DMP文件中的所有對象(用戶、表、索引等)。
??命令示例??:

imp system/oracle@ORCL FILE=full.dmp FULL=Y IGNORE=Y LOG=imp_full.log

??適用場景??:數據庫整體遷移或災難恢復。
??注意事項??:

需提前創建目標庫的表空間和用戶
目標庫字符集必須與DMP文件一致(通過NLS_LANG環境變量控制)

??2. 用戶模式導入(FROMUSER/TOUSER)??

??定義??:將指定用戶的數據導入到另一用戶(支持跨用戶映射)。
??命令示例??:

imp system/oracle@ORCL FILE=hr.dmp FROMUSER=HR TOUSER=NEW_HR LOG=imp_hr.log

適用場景??:用戶數據遷移或測試環境克隆。
??注意事項??:

目標用戶需提前創建分配權限
若表空間不同需配合REMAP_TABLESPACE(僅數據泵支持,傳統IMP需手動處理)

??3. 表模式導入(TABLES=)??

??定義??:選擇性導入特定表或分區。
??命令示例??:

imp scott/tiger@ORCL FILE=emp.dmp TABLES=(EMP,DEPT) IGNORE=Y LOG=imp_tables.log

??適用場景??:局部數據恢復或表結構同步。
??注意事項??:

支持通配符%(如TABLES=(EMP%)導入EMP開頭的表)
分區表需指定分區名(如TABLES=(SALES:Q1_2025))5

四、高級優化策略??

1. ??性能調優??

??并行處理??:parallel=8(建議不超過CPU核心數)。
??網絡壓縮??:network_link=… compression=data(遠程同步)。
??分段導出??:按表分區或日期范圍分批操作。

2. ??增量同步??

??策略選擇??:

  • ??全量同步??:首次遷移或數據一致性要求高時使用。
  • ??增量同步??:定期追加變更數據(需配合日志)。

??代碼示例??:

expdp system/password@ORCL directory=dpump_dir dumpfile=incr_%U.dmp schemas=HR content=data_only query="WHERE update_time>SYSDATE-1"

五、問題總結

1. 通過 exp 命令導出,使用 impdp 命令無法導入;

Oracle 中 因為版本問題或命令問題處理時,我們要 查看原始 導出日志文件,當使用的是 exp 模式導出的數據,應當用 imp 模式導入;
導出日志文件一般格式如下 ,例如 a.log:


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Tes
Export done in UTF8 character set and UTF8 NCHAR character set
server uses AL32UTF8 character set (possible charset conversion)About to export specified tables via Conventional Path ...
Current user changed to SYSTEM
. . exporting table           USER_EXPORT   19138328 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
Export terminated successfully with warnings.

從日志文件我們可以分析出,

  • 原始數據導出的 Oracle 版本為 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  • 原始數據導出的 Oracle character 為 AL32UTF8
  • 原始數據導出的 Oracle 命令為 EXP
  • 原始數據導出的表(exporting table )為 USER_EXPORT
  • 原始數據導出的用戶(Current user)為 SYSTEM

2. 源數據導出環境為 AL32UTF8 ,目標環境為 ZHS16GBK ,導致命令無法執行或數據亂碼;

導入數據時,必須保證兩個平臺的 字符集一致,若不一致,會導致出現導入失敗問題,解決方法為
設置 Oracle 環境變量的方式解決,具體可以參考博文 Oracle 字符集簡介及修改操作實戰

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/82869.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82869.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/82869.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Coursier:安裝sbt

命令 ./cs launch sbt -- --version 的含義是??通過 Coursier(cs)工具啟動 SBT(Scala 構建工具),并查詢其版本信息??。具體解析如下: ??1. 命令結構解析?? ??./cs??: 這是 Coursie…

【深度學習】12. VIT與GPT 模型與語言生成:從 GPT-1 到 GPT4

VIT與GPT 模型與語言生成:從 GPT-1 到 GPT4 本教程將介紹 GPT 系列模型的發展歷程、結構原理、訓練方式以及人類反饋強化學習(RLHF)對生成對齊的改進。內容涵蓋 GPT-1、GPT-2、GPT-3、GPT-3.5(InstructGPT)、ChatGPT …

項目更改權限后都被git標記為改變,怎么去除

?問題描述: 當你修改了項目中的文件權限(如使用 chmod 改了可執行權限),Git 會把這些文件標記為“已更改”,即使內容并沒有發生任何改變。 ? 解決方法: ? 方法一:告訴 Git 忽略權限變化&am…

openfeignFeign 客戶端禁用 SSL

要針對特定的 Feign 客戶端禁用 SSL 驗證,可以通過自定義配置類實現。以下是完整解決方案: 1. 創建自定義配置類(禁用 SSL 驗證) import feign.Client; import feign.httpclient.ApacheHttpClient; import org.apache.http.conn…

移動端 UI自動化測試學習之Appium框架(包含adb調試工具介紹)

文章目錄 前言adb調試工具adb組成常用命令獲取程序的包名和界面名文件傳輸發送文件到手機從手機中拉取文件 獲取app啟動時間獲取手機日志其他命令 Appium 簡介工作原理圖 環境搭建安裝客戶端庫(appium lib)安裝Appium Server安裝JDK(自行下載…

【論文解讀】DETR: 用Transformer實現真正的End2End目標檢測

1st authors: About me - Nicolas Carion?Francisco Massa? - ?Google Scholar? paper: [2005.12872] End-to-End Object Detection with Transformers ECCV 2020 code: facebookresearch/detr: End-to-End Object Detection with Transformers 1. 背景 目標檢測&#…

性能測試-jmeter實戰1

課程:B站大學 記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師 性能測試-jmeter實戰1 為什么需要性能測試呢?性能測試的作用?性能測試體系性能測試基礎性能測試工具性能監控…

HTML、XML、JSON 是什么?有什么區別?又是做什么的?

在學習前端開發或者理解互聯網工作原理的過程中,我們經常會遇到三個非常重要的概念:HTML、XML 和 JSON。它們看起來有點像,但其實干的事情完全不同。 🏁 一、他們是誰?什么時候誕生的? 名稱全稱誕生時間誰…

HTML5 全面知識點總結

一、HTML 基礎概念 HTML:超文本標記語言,用于創建網頁和 Web 應用的結構。 超文本:可以包含文字、圖片、音頻、視頻、鏈接等多種媒體。 標記語言:通過標簽標記網頁的各個部分。 二、HTML5 的新特性(區別于 HTML4&am…

記錄一個難崩的bug

1.后端配置了 Filter 過濾器,如果再配置了Configuration ,那么會出現沖突嗎? 過濾器與Configuration類本身無直接沖突,但需注意注冊機制、執行順序和依賴管理。通過顯式控制過濾器的注冊方式和優先級,結合Spring Security的鏈式配…

RabbitMQ 與其他 MQ 的對比分析:Kafka/RocketMQ 選型指南(二)

四、三者性能大比拼 4.1 吞吐量 吞吐量是衡量消息隊列處理能力的重要指標,它反映了在單位時間內消息隊列能夠處理的消息數量。在這方面,Kafka 表現最為出色,其獨特的設計使其能夠輕松處理每秒數百萬條消息 。Kafka 采用分布式架構和分區機制…

【C】箭頭運算符

在C語言中,p_tone->power_off 是一種通過指針訪問結構體成員的方法,稱為箭頭運算符(->)。它主要用于以下場景: 1. 語法解釋 p_tone:是一個指向結構體(或聯合體)的指針。powe…

【Unity】 HTFramework框架(六十六)缺省的運行時組件檢視器

更新日期:2025年5月29日。 Github 倉庫:https://github.com/SaiTingHu/HTFramework Gitee 倉庫:https://gitee.com/SaiTingHu/HTFramework 索引 一、缺省的運行時組件檢視器1.自定義運行時組件檢視器 二、使用缺省的運行時組件檢視器1.定義組…

AI和大數據:是工具,還是操控人心的“隱形之手”?

AI和大數據:是工具,還是操控人心的“隱形之手”? 開場白:聊點現實的 在這個數據至上的時代,我們的生活被AI和大數據悄然改變。從電商推薦、短視頻算法,到招聘篩選、智慧城市,它們像一個貼心的…

k8s部署ELK補充篇:kubernetes-event-exporter收集Kubernetes集群中的事件

k8s部署ELK補充篇:kubernetes-event-exporter收集Kubernetes集群中的事件 文章目錄 k8s部署ELK補充篇:kubernetes-event-exporter收集Kubernetes集群中的事件一、kubernetes-event-exporter簡介二、kubernetes-event-exporter實戰部署1. 創建Namespace&a…

Apache 高級配置實戰:從連接保持到日志分析的完整指南

Apache 高級配置實戰:從連接保持到日志分析的完整指南 前言 最近在深入學習 Apache 服務器配置時,發現很多朋友對 Apache 的高級功能還不夠了解。作為一個在運維路上摸爬滾打的技術人,我想把這些實用的配置技巧分享給大家。今天這篇文章會帶…

【Stable Diffusion 1.5 】在 Unet 中每個 Cross Attention 塊中的張量變化過程

系列文章目錄 文章目錄 系列文章目錄前言特征圖和注意力圖的尺寸差異原因在Break-a-Scene中的具體實現總結 前言 特征圖 (Latent) 尺寸和注意力圖(attention map)尺寸在擴散模型中有差異,是由于模型架構和注意力機制的特性決定的。 特征圖和注意力圖的尺寸差異原…

【監控】Prometheus+Grafana 構建可視化監控

在云原生和微服務架構盛行的今天,監控系統已成為保障業務穩定性的核心基礎設施。作為監控領域的標桿工具,Prometheus和Grafana憑借其高效的數據采集、靈活的可視化能力,成為運維和開發團隊的“標配”。 一、Prometheus Prometheus誕生于2012…

替代 WPS 的新思路?快速將 Word 轉為圖片 PDF

在這個數字化辦公日益普及的時代,越來越多的人開始關注文檔處理工具的功能與體驗。當我們習慣了某些便捷操作時,卻發現一些常用功能正逐漸變為付費項目——比如 WPS 中的一項實用功能也開始收費了。 這款工具最特別的地方在于,可以直接把 W…

CodeTop之數組中的第K個最大的元素

題目鏈接 215. 數組中的第K個最大元素 - 力扣(LeetCode) 題目解析 算法原理 解法一: 直接理由java內部的排序函數,Arrays.sort()進行排序, 然后我們直接返回第k個最大的元素 nums[nums.length-k] 解法二: 使用堆 我們先把所有元素丟到大根堆里面…