2011-11-18 44 views
10

我有一個oracle完整轉儲。我知道我必須把這個轉儲與fromusertouser條款。但是我不知道轉儲中包含的模式的名稱。列出Oracle導出轉儲文件的內容

如何打開使用Oracle 10g創建的轉儲以檢查和分析內容?

回答

11

只需使用SHOW=Y參數

IMP SCOTT/TIGER SHOW=Y FILE=import_file.dmp 
+0

就是用這種方式導入模擬並且沒有對數據庫進行實際操作? – Kerby82

+0

是的,沒有真正的操作在數據庫上完成。 @ Kerby82 – Sathya

2
imp SCOTT/tiger show=Y fiLE=IMPORT_FILE.DMP log=**logfile.log** fromuser=scott touser=scott 

如果你只在對象名和模式的名稱感興趣,這是很好的對象中表中沒有的內容列表。

一旦您的命令成功完成,請使用您喜歡的文本編輯器(如notepad/vim)通過添加參數LOG = logfile.log來打開由imp命令生成的日誌文件。 在這個文件中,imp命令將輸出它將執行的所有動作作爲真實情況。 現在在每個位置上搜索「」文本「」,您將獲得SCHEMA NAMES,然後是該模式中包含的object_names。

後面是創建/更改對象的命令,因爲它們在原始數據庫中。
之後,數據插入將被模擬,您可能會知道每個模式中有多少條記錄。

但它不會列出它們。導入只是一個表EMP

---------開始小鬼命令的輸出

導入示例文件--------

Export file created by EXPORT:V10.02.01 via conventional path 
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set 

**. importing SCOTT's objects into SCOTT** 
"ALTER SESSION SET CURRENT_SCHEMA= "SCOTT"" 
"CREATE TABLE "EMP" ("EMPNO" NUMBER(4, 0), "ENAME" VARCHAR2(10), "JOB" VARCH" 
"AR2(9), "MGR" NUMBER(4, 0), "HIREDATE" DATE, "SAL" NUMBER(7, 2), "COMM" NUM" 
"BER(7, 2), "DEPTNO" NUMBER(2, 0)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRAN" 
"S 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAU" 
"LT) TABLESPACE "USERS" LOGGING NOCOMPRESS" 
. . skipping table "EMP"         

"CREATE UNIQUE INDEX "PK_EMP" ON "EMP" ("EMPNO") PCTFREE 10 INITRANS 2 MAX" 
"TRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL D" 
"EFAULT) TABLESPACE "USERS" LOGGING" 
"ALTER SESSION SET CURRENT_SCHEMA= "SCOTT"" 
"ALTER TABLE "EMP" ADD CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO") USING INDE" 
"X PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREE" 
"LIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING ENABLE " 

"ALTER TABLE "EMP" ADD CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO") REFEREN" 
"CES "DEPT" ("DEPTNO") ENABLE NOVALIDATE" 
"ALTER TABLE "EMP" ENABLE CONSTRAINT "FK_DEPTNO"" 

Import terminated successfully without warnings. 

- -------出小鬼命令結束---------

Look here

這個工具的權利要求,並提供你採取轉儲文件,並把d ata轉換成Excel/Access/CSV格式的文件。這可能是你正在尋找的。

它表明什麼用了導入的表到真正的數據庫內

以防萬一有人想找到它轉儲文件包含所需的數據。

而不是通過所有舊的轉儲,你應該保持一個日誌文件與每個DUMPFILE後綴的相同名稱附加它的日期和時間。
FULL_DB_DUMP_15012014_1240pm.DMP

,讓您只需打開相關日誌文件,以獲得該文件包含您的需要或興趣是什麼模式的想法。

[2]:關於第二個想法:如果您的轉儲文件高達2GB,並且您可以識別ORACLE SQL。
以只讀模式使用像HxD,Hexor,HexEdit這樣的十六進制編輯器打開轉儲文件。一旦打開,您可以瀏覽二進制/ ASCII形式的轉儲文件的內容。這可能是一個粗略的方法,但它會給你一個模式和對象名稱的DDL的一部分視圖與一些內容的視圖/觸發器/函數/程序等。雖然,你將無法閱讀&瞭解整個內容。但它服務於此目的。也許相對較快。

0

如果您在UNIX環境中工作,則可以使用命令字符串來顯示轉儲文件中的可讀信息。

strings test.dmp | grep CREATE。* TABLE