关于Dump redo log 的示例,MOS 上的文档:[ID 1031381.6] 有详细说明。Dump 有两种方式:
(1)使用'alter session' 命令dumpredo header。
(2)使用'alter system dump logfile' 命令dump logfile contents。
可以在mount,nomout和open状态下使用如上命令,并且使用以上命令需要'alter system' 的权限。 可以使用该命令dump onlie redo log 或者归档文件。 当操作系统系统相同的情况下,还可以dump其他db的log 文件。
有如下dump 方法:
1.To dump records based in DBA (Data Block Address)
2.To dump records based on RBA (Redo Block Address)
3.To dump records based on SCN
4.To dump records based on time
5.To dump records based on layer and opcode
6.Dump the file header information
7.Dump an entire log file:
关于DBA的说明,参考:
根据DBA进行dump,主要是根据file和block 号来进行dump。 这个的block 是一个范围值。
11g命令格式如下:
ALTER SYSTEM DUMP LOGFILE 'filename' DBA MIN fileno . blockno DBA MAX fileno . blockno;
如果是Oracle 10g,需要省略'.',即格式如下:
ALTER SYSTEM DUMP LOGFILE 'filename' DBA MIN fileno blockno DBA MAX fileno blockno;
否则会报: ORA-01963: Must specify a block number 错误。
如:
SYS@anqing1(rac1)> select * fromv$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - Prod
SQL>select distinct dbms_rowid.rowid_relative_fno(rowid) rel_fno,
dbms_rowid.rowid_block_number(rowid)blockno from ta;
REL_FNO BLOCKNO
---------- ----------
1 294608
1 294609
1 294612
1 294614
1 294621
1 294635
1 294643
1 294654
1 294656
1 294657
6 10385
REL_FNO BLOCKNO
---------- ----------
6 10393
6 10410
6 10411
6 10415
6 10416
6 10458
6 10461
6 10464
6 10465
6 10468
6 10472
确定log file 位置:
SYS@anqing1(rac1)> selecta.group#,a.status,b.member from v$log a,v$logfile b where a.group#=b.group#;
GROUP# STATUS MEMBER
---------- --------------------------------------------------------------------
3 INACTIVE +DATA/anqing/onlinelog/redo03.log
2 INACTIVE +DATA/anqing/onlinelog/redo02.log
1 CURRENT +DATA/anqing/onlinelog/group_1.277.751552735
1 CURRENT +FRA/anqing/onlinelog/group_1.426.751552739
4 CURRENT +DATA/anqing/onlinelog/group_4.282.751560131
5 INACTIVE +DATA/anqing/onlinelog/group_5.283.751560139
6 rows selected.
SYS@anqing1(rac1)> alter system dump logfile'+data/anqing/onlinelog/redo02.log' dbamin 6 10458 dba max 6 10472;
System altered.
SYS@anqing1(rac1)> oradebug setmypid
Statement processed.
SYS@anqing1(rac1)> oradebug tracefile_name
/u01/app/oracle/admin/anqing/udump/anqing1_ora_30373.trc
SYS@anqing1(rac1)>
[oracle@rac1 ~]$cat /u01/app/oracle/admin/anqing/udump/anqing1_ora_30373.trc
/u01/app/oracle/admin/anqing/udump/anqing1_ora_30373.trc
Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - Production
With the Partitioning, Real ApplicationClusters, OLAP, Data Mining
and Real Application Testing options
ORACLE_HOME =/u01/app/oracle/product/10.2.0/db_1
System name: Linux
Node name: