簡體   English   中英

如何直接讀取Oracle數據泵二進制轉儲文件?

[英]How to read Oracle data pump binary dump file directly?

出於性能和其他原因,我正在尋找一種直接解析數據泵轉儲文件的二進制文件格式的方法。

數據泵實用程序“ impdp”僅在數據庫服務器主機上有效,而在DB客戶端主機上無效。 為了運行它,您必須將整個轉儲文件從數據庫客戶端發送到數據庫服務器主機,然后使用SSH運行“ impdp”。

有時,例如,如果您只想獲取轉儲文件中包含的架構或表的列表,則將大型文件發送到遠程主機是沒有意義的。

我正在尋找一個描述轉儲文件的庫(在Java中首選)或一種格式說明,以便編寫代碼以在本地解析該文件,而無需借助官方的“ impdp”實用程序。

謝謝。

更新:

我使用以下正則表達式來過濾轉儲文件以查找表名稱:

^[\\x32-\\x7e\\s]{4,}.*</OWNER_NAME><NAME>([^<]*)</NAME>.*

表達式[\\\\x32-\\\\x7e\\\\s]表示可打印的ASCII字符,包括空格。 這將濾除二進制行。

表達式{4,}表示至少4個字符。

由於我正在處理XML,因此我提取了緊接在“ OWNER_NAME”元素之后的“ NAME”元素。 也許這種方式不是那么優雅,但似乎可行。

如果這種方式對您有所幫助,請發表評論。

  • impdp數據格式是專有的
  • 您還可以使用舊版的工具imp / exp,它也可以遠程運行。 但這由於網絡往返而沒有那么快
  • 您還可以通過我們自己的工具將數據導出到平面文件中,然后使用sqlldr(帶有直接路徑插入)
  • 您還可以將轉儲文件放在NFS共享上,然后讓Oracle通過NFS訪問它

使用Java / JDBC進行大量數據操作不是一個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM