转储文件内容1:数据文件
转储数据文件、重做日志等文件的内容也是优化中经常用到的技术,因此DBA必须掌握。在优化项目中,有时候为了分析表和索引等的碎片、行迁移等情况,需要对数据文件进行转储。把数据库文件(数据文件、日志文件、控制文件等)的内容取出有助于对Oracle数据库内部结构展开分析。使用操作系统的转储工具可以导出数据库文件中的内容,不过这种方式相对比较麻烦。Oracle提供的ALTER SYSTEM DUMP 命令就可以把数据导出到Trace文件中,这一命令是以数据块为单位的。
对于普通的数据文件,通过下面的命令可以导出数据文件中的数据块:
ALTER SYSTEM DUMP DATAFILE [<file_id>|<file_name>] block <block_no>;
或者:
ALTER SYSTEM DUMP <tablespace_name> block <block_no>;
或者:
ALTER SYSTEM DUMP DATAFILE [<file_id>|<file_name>] block min <block_no_min> block max <block_no_max>;
第一条命令导出一个数据块,第二条命令可以导出多个连续的数据块。以上命令不能转储 LMT的临时表空间文件。如果用ALTER SYSTEM DUMP DATAFILE命令去导出一个LMT的临时表空间文件,会报ORA-1205错误。
要转储 LMT的临时文件,需要使用DUMP TEMPFILE命令:
ALTER SYSTEM DUMP TEMPFILE 'E:\ORACLE\ORADATA\ORC9\sk_TEMP.DBF' BLOCK 1;
转储文件内容2:转储对象的段头
比如:
- SELECT SEGMENT_NAME, HEADER_FILE, HEADER_BLOCK
-
FROM DBA_SEGMENTS
-
WHERE OWNER = 'SCOTT' AND SEGMENT_NAME = 'EMP';
-
-
SEGMENT_NAME HEADER_FILE HEADER_BLOCK
-
-------------------------- ----------------- ---------------
- EMP 8 7411
ALTER SYSTEM DUMP DATAFILE 8 BLOCK 7411;
产生的Trace文件会存放在USER_DUMP_DEST参数指定的位置,如果没有设置这个参数,那么默认的位置是$Oracle_BASE/admin/<sid>/udump。 如果要转储回退段,那么可以这样操作:
-
SELECT SEGMENT_NAME, HEADER_FILE, HEADER_BLOCK
- FROM DBA_SEGMENTS
-
WHERE SEGMENT_NAME = 'RBS01';
-
-
- SEGMENT_NAME HEADER_FILE HEADER_BLOCK
- -------------------- ----------- ------------
- RBS01 2 514
-
-
- alter system dump datafile 2 block 514;
或者直接用下面的命令转储:
ALTER SYSTEM DUMP UNDO HEADER RBS01;
这个例子说明EMP的段头在8号文件的7411数据块。使用下面的命令,可以把段头转储出来;
在Oracle中,每个段都包含一个段头。段头一般来说是某个段第一个扩展的第一个块,包含段的信息(段的扩展情况、FREE LIST的数量等)。要转储段头的信息,首先需要定位某个段的段头所在的位置。通过下面的查询可以查看到段头的相关信息:
SELECT SEGMENT_NAME, HEADER_FILE, HEADER_BLOCK FROM DBA_SEGMENTS WHERE OWNER = '<SEGMENT OWNER>' AND SEGMENT_NAME = '<SEGMENT NAME>';
转储文件内容3:转储控制文件
通过设置系统事件,可以把控制文件转储到Trace文件:
ALTER SESSION SET EVENTS 'immediate trace name controlf level <level>';
<level>的取值如下表所示。
Level
|
转储的内容
|
1
|
文件头信息
|
2
|
文件头信息,数据库信息记录和检查点进程记录
|
3
|
所有的记录,仅仅包含最新和最老的循环使用类型的记录
|
4
|
类似3,不过包含4条最新的循环使用类型的记录
|
5+
|
类似3,循环使用类型的记录是每个级别的双倍
|
转储文件内容4:转储控制文件
使用ALTER SYSTEM DUMP LOGFILE可以转储在线日志文件。也可以使用ALTER SESSION命令去转储重做日志头的信息。在数据库处于NOMOUNT、MOUNT或者OPEN状态时,就可以使用上面的命令。当操作系统相同的情况下,可以通过客户端去转储另外一个数据库的重做日志。重做日志的信息会被写入一个Trace文件。
可以用下面的方法转储在线日志。
根据DBA(Data Block Address)转储记录。
根据RBA(Redo Block Address)转储记录。
根据时间点去转储记录。
根据层次和操作码转储记录。
转储文件头信息
转储整个重做日志文件
http://book.51cto.com/art/201006/204540.htm
分享到:
相关推荐
Oracle 11g数据库转储文件(dump files)是数据库管理员和开发人员在进行故障排查、数据恢复或学习数据库结构时的重要工具。这些文件包含了数据库的原始数据和元数据,通常用于导出和导入数据,或者在不同环境之间...
- **dumpfile**: 指定了导出文件的路径和文件名,本例中为`D:\nc56mgsdn.dmp`。 - **logfile**: 指定了记录导出过程中日志信息的文件,这里为`D:\ncadmin.log`。 - **version**: 设置了导出数据的兼容版本,这里为`...
- `dumpfile`: 指定导出文件的名称,可以包含多个文件,用逗号分隔。 - ` logfile`: 可选,用于记录导出过程的日志文件。 - `schemas`: 指定要导出的模式或用户。 - `tables`: 指定要导出的表,多个表用逗号分隔...
Oracle 提供了数据导出实用工具(也称为 EXP 或 EXPDP),使得我们可以将数据库中的数据导出到转储文件中,以便于备份、迁移或恢复。当面对大规模的数据库时,单个转储文件可能无法满足需求,这时就需要利用多个转储...
### Oracle常用dump命令详解 #### 一、Memory Dumps **Memory Dumps** 主要用于获取Oracle内存区域的详细信息,这些信息对于诊断系统性能问题非常有用。下面将详细介绍几个常用的Memory Dump命令。 ##### 1\. ...
- **background_core_dump**:控制是否允许后台进程创建核心转储文件。 ### 如何查看 Alert 日志文件位置 #### 步骤一:查询 DIAGNOSTIC_DEST 参数 首先,需要确认`DIAGNOSTIC_DEST`参数的值。可以通过执行以下...
【标题】"dump.zip" 提供的文件是一个包含数据库故障转储(dump)的压缩包。这类文件通常在数据库系统遇到问题时生成,用于后期分析和故障排查。 【描述】"dump.zip" 的描述非常简洁,没有提供具体的故障或事件信息...
标题中的“idea git提交内存溢出后dump文件”指的是在使用IntelliJ IDEA(简称IDEA)这款流行的Java集成开发环境进行Git操作时遇到了内存溢出的问题,导致系统生成了一个名为`heapDump.hprof`的堆转储文件。...
该事件可以将 Oracle 各类内部结构中所包含的信息转储(dump)到跟踪文件中,以便用户能根据文件内容来解决各种故障。 Oracle 跟踪文件分为三种类型: 1. 后台报警日志文件:记录数据库在启动、关闭和运行期间后台...
- `core_dump_dest`:设置核心转储文件的目标路径。 - `db_block_size`:设置数据块大小。 - `db_domain`:设置数据库域名。 - `db_file_multiblock_read_count`:设置多数据块读取计数。 - `dispatchers`:设置调度...
- `$ORACLE_BASE/admin/mydb/bdump`: 存放后台进程产生的错误转储文件(background dump files)。 - `$ORACLE_BASE/admin/mydb/cdump`: 存放核心转储文件(core dump files)。 - `$ORACLE_BASE/admin/mydb/udump`: ...
oracle10g导入11g导出数据时报版本号错误,如果直接用UE修改,又是数据较大且不能保证修改成功,网上搜集到神器,可以快捷修改dmp版本号:各版本对应版本号: 11g R2:V11.02.00 11g R1:V11.01.00 10g:V10.02.01 ...
1. 转储文件(Dump File):转储文件是Oracle在处理日志文件时生成的中间文件,它们通常包含内存中的数据结构和内存中发生的数据改变信息。通过对转储文件的分析,可以更深入地理解Oracle 8i日志文件的内部结构和...
- `E:\app\oracle\admin\mydb\adump`:审计跟踪文件目录。 - `E:\app\oracle\admin\mydb\bdump`:后台转储文件目录。 - `E:\app\oracle\admin\mydb\cdump`:核心转储文件目录。 - `E:\app\oracle\admin\mydb\...
Oracle 到 PostgreSQL 转储 此实用程序来自需要以合理的速度将 Oracle 数据转换为 PostgreSQL 数据。 这个项目相当实用,但它是一个开始。 它不创建表; 目标表必须已经存在。 目标列名称必须与查询列名称匹配(列...
Oracle Dump Viewer是一款开源的数据库转储分析工具,专门设计用于帮助数据库管理员和开发人员解析、浏览和理解Oracle数据库的转储文件(DMP文件)。在IT行业中,数据转储是备份或迁移数据库的一种常见方法,而...
- `BACKGROUND_DUMP_DEST='/LCdisk/oradata/bill/admin/bdump'`: 背景转储文件的存放路径。 - `CORE_DUMP_DEST=/LCdisk/oradata/bill/admin/cdump`: 核心转储文件的存放路径。 - `USER_DUMP_DEST='/LCdisk/...
Oracle2Mysql 可以将oracle sql dump转换为与mysql兼容的sql的软件该软件帮助您轻松快速地从oracle迁移到myslq运作方式它会读取由oracle制成的sql文件寻找所有“创建表”并将它们放在第一个sql文件中(这是为了避免...
- **dumpfile**:设定转储文件的名称,可以指定多个文件以处理大型转储。 - **logfile**:定义日志文件的名称,用于记录导入过程中的详细信息。 - **exclude/include**:分别用于排除或包含特定类型的对象,如表、...
- `ALTER SYSTEM DUMP`语句可以用来转储特定数据文件或块。 - `DBMS_SYSTEM.SET_EV`包中的过程可以为特定会话设置事件。 - `OracleDebug`也可用于设置诊断事件,需要指定进程ID(SPID)。 3. 10053事件: - ...