`

Oracle 从Dump 文件里提取 DDL 语句 方法说明

 
阅读更多



有关Dump 文件的命令有exp/imp 和 expdp/impdp。 这四个命令之前都有整理过相关的文章。

ORACLE EXP/IMP 说明

http://blog.csdn.net/tianlesoftware/article/details/4718366

exp/imp 与 expdp/impdp 对比 及使用中的一些优化事项

http://blog.csdn.net/tianlesoftware/article/details/6093973

Oracle expdp/impdp 使用示例

http://blog.csdn.net/tianlesoftware/article/details/6260138

Oracle 10g Data Pump Expdp/Impdp 详解

http://blog.csdn.net/tianlesoftware/article/details/4674224

Oracle expdp/impdp 从高版本 到 低版本 示例

http://blog.csdn.net/tianlesoftware/article/details/6533421

对于Dump 文件,我们不能直接提取出Data数据,但是我们可以通过相关的参数,从Dump文件中提取出对应的DDL 语句。

(1)如果是导出导入(exp/imp),那么是indexfile参数。

(2)如果是数据泵(expdp/impdp),那么是sqlfile 参数。

准备工作:

SYS@anqing1(rac1)> create user dvdidentified by dvd;

User created.

SYS@anqing1(rac1)> grant dba to dvd;

Grant succeeded.

SYS@anqing1(rac1)> conn dvd/dvd;

Connected.

DVD@anqing1(rac1)> create table t1(idnumber);

Table created.

DVD@anqing1(rac1)> insert into t1values(1);

1 row created.

DVD@anqing1(rac1)> commit;

Commit complete.

DVD@anqing1(rac1)> create index idx_t1on t1(id);

Index created.

DVD@anqing1(rac1)>

一.使用导出导入命令

1.1 导出dvd 用户的数据,生成dump文件

[oracle@rac1 ~]$ exp dvd/dvd file=dvd.dmpowner=dvd

Export: Release 10.2.0.4.0 - Production onWed Sep 21 19:50:14 2011

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10gEnterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, Real ApplicationClusters, OLAP, Data Mining

and Real Application Testing options

Export done in US7ASCII character set andAL16UTF16 NCHAR character set

server uses ZHS16GBK character set(possible charset conversion)

About to export specified users ...

. exporting pre-schema procedural objectsand actions

. exporting foreign function library namesfor user DVD

. exporting PUBLIC type synonyms

. exporting private type synonyms

. exporting object type definitions foruser DVD

About to export DVD's objects ...

. exporting database links

. exporting sequence numbers

. exporting cluster definitions

. about to export DVD's tables via ConventionalPath ...

. . exporting table T1 1 rows exported

EXP-00091: Exporting questionablestatistics.

. exporting synonyms

. exporting views

. exporting stored procedures

. exporting operators

. exporting referential integrityconstraints

. exporting triggers

. exporting indextypes

. exporting bitmap, functional andextensible indexes

. exporting posttables actions

. exporting materialized views

. exporting snapshot logs

. exporting job queues

. exporting refresh groups and children

. exporting dimensions

. exporting post-schema procedural objectsand actions

. exporting statistics

Export terminated successfully withwarnings.

1.2 从dump 文件里提取DDL语句

[oracle@rac1 ~]$ imp dvd/dvd file=dvd.dmpfromuser=dvd touser=dvd indexfile=dvd.sql

Import: Release 10.2.0.4.0 - Production onWed Sep 21 19:50:50 2011

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10gEnterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, Real ApplicationClusters, OLAP, Data Mining

and Real Application Testing options

Export file created by EXPORT:V10.02.01 viaconventional path

import done in US7ASCII character set andAL16UTF16 NCHAR character set

import server uses ZHS16GBK character set (possiblecharset conversion)

. . skipping table "T1"

Import terminated successfully withoutwarnings.

这里要注意2点:

(1) 该import 命令并没有真正的import data,而只是生成了我们对应用户下所有DDL的sql 语句。

(2) 对于表的DDL语句,用REM 进行了注释。

[oracle@rac1 ~]$ cat dvd.sql

REMCREATE TABLE "DVD"."T1" ("ID" NUMBER)PCTFREE 10 PCTUSED 40 INITRANS

REM1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1

REMBUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS ;

REM... 1 rows

CONNECT DVD;

CREATE INDEX "DVD"."IDX_T1"ON "T1" ("ID" ) PCTFREE 10 INITRANS 2 MAXTRANS

255 STORAGE(INITIAL 65536 FREELISTS 1FREELIST GROUPS 1 BUFFER_POOL

DEFAULT) TABLESPACE "USERS"LOGGING ;

如果只想看索引的DDL,那么可以用grep命令,讲REM 的不显示。

Linux Grep 命令说明

http://blog.csdn.net/tianlesoftware/article/details/6277193

[oracle@rac1 ~]$ cat dvd.sql|grep -v REM

CONNECT DVD;

CREATE INDEX"DVD"."IDX_T1" ON "T1" ("ID" ) PCTFREE10 INITRANS 2 MAXTRANS

255 STORAGE(INITIAL 65536 FREELISTS 1FREELIST GROUPS 1 BUFFER_POOL

DEFAULT) TABLESPACE "USERS"LOGGING ;

二.数据泵(expdp/impdp)

2.1 导出dvd用户的数据

[oracle@rac1 ~]$ expdp dvd/dvddirectory=backup dumpfile=dvd.dmp schemas=dvd

Export: Release 10.2.0.4.0 - Production onWednesday, 21 September, 2011 20:16:59

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10gEnterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, Real ApplicationClusters, OLAP, Data Mining

and Real Application Testing options

FLASHBACK automatically enabled to preservedatabase integrity.

Starting "DVD"."SYS_EXPORT_SCHEMA_01": dvd/******** directory=backupdumpfile=dvd.dmp schemas=dvd

Estimate in progress using BLOCKS method...

Processing object typeSCHEMA_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 64 KB

Processing object type SCHEMA_EXPORT/USER

Processing object typeSCHEMA_EXPORT/SYSTEM_GRANT

Processing object typeSCHEMA_EXPORT/ROLE_GRANT

Processing object typeSCHEMA_EXPORT/DEFAULT_ROLE

Processing object typeSCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

Processing object type SCHEMA_EXPORT/TABLE/TABLE

Processing object typeSCHEMA_EXPORT/TABLE/INDEX/INDEX

Processing object typeSCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object typeSCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type SCHEMA_EXPORT/TABLE/COMMENT

. . exported"DVD"."T1" 4.906 KB 1 rows

Master table"DVD"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded

******************************************************************************

Dump file set for DVD.SYS_EXPORT_SCHEMA_01is:

/u01/backup/dvd.dmp

Job"DVD"."SYS_EXPORT_SCHEMA_01" successfully completed at20:17:34

2.2 产生DDL

[oracle@rac1 ~]$ impdp dvd/dvddirectory=backup dumpfile=dvd.dmp sqlfile=dvd.sql

Import: Release 10.2.0.4.0 - Production onWednesday, 21 September, 2011 20:18:50

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10gEnterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, Real ApplicationClusters, OLAP, Data Mining

and Real Application Testing options

Master table"DVD"."SYS_SQL_FILE_FULL_01" successfully loaded/unloaded

Starting"DVD"."SYS_SQL_FILE_FULL_01": dvd/******** directory=backupdumpfile=dvd.dmp sqlfile=dvd.sql

Processing object type SCHEMA_EXPORT/USER

Processing object typeSCHEMA_EXPORT/SYSTEM_GRANT

Processing object typeSCHEMA_EXPORT/ROLE_GRANT

Processing object typeSCHEMA_EXPORT/DEFAULT_ROLE

Processing object typeSCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

Processing object typeSCHEMA_EXPORT/TABLE/TABLE

Processing object typeSCHEMA_EXPORT/TABLE/INDEX/INDEX

Processing object typeSCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Job"DVD"."SYS_SQL_FILE_FULL_01" successfully completed at20:18:54

2.3 查看DDL 文本

[oracle@rac1 backup]$ cat dvd.sql

-- CONNECT DVD

-- new object type path is:SCHEMA_EXPORT/USER

-- CONNECT SYSTEM

CREATE USER "DVD" IDENTIFIED BYVALUES '1111602792579CCE'

DEFAULT TABLESPACE "USERS"

TEMPORARY TABLESPACE "TEMP";

-- new object type path is:SCHEMA_EXPORT/SYSTEM_GRANT

GRANT UNLIMITED TABLESPACE TO"DVD";

-- new object type path is:SCHEMA_EXPORT/ROLE_GRANT

GRANT "DBA" TO "DVD";

-- new object type path is:SCHEMA_EXPORT/DEFAULT_ROLE

ALTER USER "DVD" DEFAULT ROLE ALL;

-- new object type path is: SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

-- CONNECT DVD

BEGIN

sys.dbms_logrep_imp.instantiate_schema(schema_name=>SYS_CONTEXT('USERENV','CURRENT_SCHEMA'),export_db_name=>'ANQING.REGRESS.RDBMS.DEV.US.ORACLE.COM',inst_scn=>'9530068');

COMMIT;

END;

/

-- new object type path is:SCHEMA_EXPORT/TABLE/TABLE

CREATE TABLE "DVD"."T1"

( "ID" NUMBER

)PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

TABLESPACE "USERS" ;

-- new object type path is:SCHEMA_EXPORT/TABLE/INDEX/INDEX

CREATE INDEX"DVD"."IDX_T1" ON "DVD"."T1"("ID")

PCTFREE 10 INITRANS 2 MAXTRANS 255

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

TABLESPACE "USERS" PARALLEL 1 ;

ALTER INDEX "DVD"."IDX_T1" NOPARALLEL;

-- new object type path is: SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

DECLARE IND_NAME VARCHAR2(60);

IND_OWNER VARCHAR2(60);

BEGIN

DELETE FROM "SYS"."IMPDP_STATS";

IND_NAME := 'IDX_T1'; IND_OWNER:= 'DVD';

INSERT INTO "SYS"."IMPDP_STATS" (type, version,flags, c1, c2, c3, c5,

n1, n2, n3, n4, n5, n6, n7, n8,n9, n10, n11, n12, d1)

VALUES ('I', 4, 0, IND_NAME, NULL, NULL, 'DVD', 1, 1, 1, 1, 1, 1, 0, 1,NULL, NULL, NULL, NULL, TO_DATE('2011-09-21 19:45:20','YYYY-MM-DD:HH24:MI:SS'));

DBMS_STATS.IMPORT_INDEX_STATS( '"' || ind_owner || '"','"' || ind_name || '"', NULL, '"IMPDP_STATS"', NULL,'"SYS"');

DELETE FROM "SYS"."IMPDP_STATS";

END;

/

从exp/imp 与 expdp/impdp 的DDL 结果进行对比,expdp/impdp 提取DDL 语句的更详细,可读性要好很多。

-------------------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/tianlesoftware

Weibo: http://weibo.com/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(满); DBA2 群:62697977(满)DBA3 群:62697850(满)

DBA 超级群:63306533(满); DBA4 群:83829929(满) DBA5群: 142216823(满)

DBA6 群:158654907(满) DBA7 群:69087192(满)DBA8 群:172855474

DBA 超级群2:151508914 DBA9群:102954821 聊天 群:40132017(满)

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请


分享到:
评论

相关推荐

    使用java连接数据库按需生成oracle卸数装数的control、selectSQL、建表ddl语句等文件

    总结来说,使用Java连接Oracle数据库并生成控制文件、SELECT SQL和建表DDL语句涉及的主要知识点有: 1. JDBC API的使用,包括连接数据库、执行SQL语句。 2. Oracle的DBMS_METADATA和DBMS_DATA_PUMP包,用于获取DDL和...

    OGG配置DDL数据同步

    3. **DDL语句长度限制**:OGG支持不超过2MB长度的DDL语句。 4. **单向DDL复制**:OGG仅支持从源端到目标端的单向DDL复制,不支持双向同步。 5. **源端和目标端结构一致性**:为了确保DDL同步的准确性,源端和目标端...

    oracle日志文件大全

    - **定义**:联机重做日志文件存储了所有数据修改的操作记录,包括DML(数据操纵语言)和DDL(数据定义语言)语句,以及管理员对数据所做的结构性更改等。 - **作用**: - 提供恢复机制:对于意外删除或系统故障,...

    数据库导入导出dump.txt

    这个文件可能是使用上述工具之一创建的SQL脚本文件,包含了创建数据库对象(如表、索引)的DDL(Data Definition Language)语句以及插入数据的DML(Data Manipulation Language)语句。 5. **实践步骤**: - **...

    ORACLE数据泵参数说明

    ORACLE 数据泵参数说明 ORACLE 数据泵是 ORACLE 数据库的逻辑备份工具,通过使用 expdp 命令可以完成数据的逻辑备份。下面将详细介绍 expdp 命令的参数说明: 1. ATTACH:该选项用于客户会话与已存在到的处作用...

    oracle dba宝典8

    当使用Oracle 8i的Export工具时,所提取的数据会被保存在一个被称为“dump文件”的文件中。这些dump文件包含了元数据和实际数据两部分。元数据是指创建被导出对象所需的DDL(Data Definition Language)语句。例如,...

    关于oracle日志文件.docx

    4. **Trace files (用户信息日志)**: 存储在`user_dump_dest`参数指定的位置,通常包含了数据库会话的详细跟踪信息,如SQL语句的执行计划、内存分配、等待事件等,这对于故障排查和性能优化非常有用。 5. **...

    oracle进程监控

    综上所述,以上SQL语句涵盖了Oracle数据库进程监控的主要方面,包括后台进程、会话、控制文件、数据文件和日志文件等多个方面的监控。通过这些语句,DBA或开发人员可以有效地监控和管理Oracle数据库的运行状态,确保...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    oracle与greenplum数据交互.docx

    - **出库**:使用SQL*Loader从Oracle导出数据到文件。 - **入库**:使用SQL*Loader将文件中的数据导入Oracle数据库。 #### 8. 总结 - 通过上述方法,可以在Oracle与Greenplum之间实现高效的数据交互,包括数据的...

    oracle不同用户名及表空间之间的数据导入

    4. **使用DBMS_METADATA和DBMS_DATA_MIGRATE**:对于复杂的数据迁移,包括索引、触发器、约束等,可以结合使用DBMS_METADATA获取对象的DDL,然后在目标环境中执行,再用DBMS_DATA_MIGRATE进行数据迁移。 在进行数据...

    数据库数据导出到insert 语句

    这个命令会生成一个只包含INSERT语句的SQL文件,不包括创建表的DDL语句。 同样,在PostgreSQL中,可以使用`pg_dump`命令: ```bash pg_dump -U 用户名 -d 数据库名 -t 表名 -a > insert_statements.sql ``` 这将...

    ORACLE9i_优化设计与系统调整

    第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1...

    oracle数据导入导出

    - **EXPDP**: 用于将数据从一个Oracle数据库导出到一个二进制文件中,该文件称为“转储文件”(dump file)。它可以用来导出整个数据库、特定的模式或表等。 - **IMPDP**: 用于将之前通过EXPDP导出的数据重新导入到...

    oracle数据库审计

    2. **自动审计**:对于某些特定类型的数据库操作,如DDL语句,Oracle 10g支持自动审计。这意味着无需手动配置审计规则即可记录这些操作。 3. **增强的安全性**:Oracle 10g还增强了安全性方面的审计功能,例如能够...

    Oracle EXP和IMP用法和介绍

    Import工具在处理dump文件时,会执行必要的DDL语句来创建对象,然后插入数据。 6. 导出的对象: Dump文件包括但不限于表定义、索引、约束、触发器、簇、数据库链接、作业队列等。在Full Database模式下,还会包含...

    Oracle10G LogMiner的配置

    Oracle 10G LogMiner 是Oracle数据库系统中一个强大的日志分析工具,它允许用户在不使用归档重做日志的情况下分析数据库的redo log files,获取对数据库更改历史的详细视图。LogMiner 提供了一种有效的方式来进行...

    常用Oracle数据库操作命令

    Oracle数据库是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据着重要地位。了解并熟练掌握Oracle数据库操作命令对于数据库管理员(DBA)来说至关重要。以下是一些常用的Oracle数据库操作命令和相关...

Global site tag (gtag.js) - Google Analytics