我有一个oracle完全转储。我知道我必须使用fromuser
touser
子句来阻止转储。但是我不知道转储中包含的模式的名称。
如何打开使用Oracle 10g创建的转储只是为了检查和分析内容?
答案 0 :(得分:14)
只需使用SHOW=Y
参数
IMP SCOTT/TIGER SHOW=Y FILE=import_file.dmp
答案 1 :(得分: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。
后跟命令创建/更改原始数据库中的对象 之后将模拟数据插入,您可能会知道每个模式中有多少条记录。
但它不会列出它们。
SAMPLE导入文件只导入一个表EMP
---------开始输出imp命令--------
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.
---------结束imp命令---------
此工具声明并提供您转储文件并将数据放入Excel / Access / CSV格式文件。也许你在寻找什么。
它显示了表格中的内容,而没有导入到真实数据库
以防万一有人想要找到哪个转储文件包含所需的数据。
而不是遍历所有旧转储,您应该保留一个日志文件,其中每个DUMPFILE后缀的名称都附加了日期和时间。
喜欢 FULL_DB_DUMP_15012014_1240pm.DMP
这样您就可以打开相关的日志文件,以了解哪些文件包含您需要或感兴趣的模式。
[2]:第二个想法:如果您的转储文件高达2GB,您可以识别ORACLE SQL。
在只读模式下使用十六进制编辑器(如HxD,Hexor,HexEdit)打开转储文件。打开后,您可以以二进制/ ascii格式浏览转储文件的内容。这可能是一个粗略的方法,但它会给你一个局部视图的模式和对象名称DDL与视图/触发器/函数/过程等的一些内容。虽然,你将无法阅读&了解全部内容。但它服务于目的。也许比较快。
答案 2 :(得分:0)
如果您在UNIX环境中工作,则可以使用命令字符串显示转储文件中的可读信息。
strings test.dmp | grep CREATE。* TABLE