如何使用DUMP数据块与BBED查看BLOCK对比数据库修改时的SCN

实验思路:

先在数据库中对bys.a表的一行进行更新,查出此行对应的FILE# BLOCK#

然后DUMP此FILE# BLOCK#,查看SCN信息

使用BBED DUMP此FILE# BLOCK#,查看SCN信息

1.在数据库中对 bys.a表的一行进行更新,记录此行的ROWID。

19:55:13 BYS@ bys3>select * from a;

B

----------

55

7

3

19:55:15 BYS@ bys3>update a  set b=0 where b=7;

1 row updated.

19:55:38 BYS@ bys3>commit;

Commit complete.

19:55:40 BYS@ bys3>select rowid,b from a;     ---COMMIT的时间是19:55:40

ROWID              B

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

AAAFOzAAEAAAACSAAA 55

AAAFOzAAEAAAACZAAA 0

AAAFOzAAEAAAACbAAA 3

19:57:15 BYS@ bys3>col object_name for a10

20:01:04 BYS@ bys3>select a.rowid,a.object_id,a.file_id,a.block_id,a.row_id,b.object_name,b from (select rowid,dbms_rowid.rowid_object(rowid) object_id,dbms_rowid.rowid_relative_fno(rowid) file_id,dbms_rowid.rowid_block_number(rowid) block_id,dbms_rowid.rowid_row_number(rowid) row_id,b from bys.a) a,dba_objects b where a.object_id=b.object_id;                     ---如使用此语句,只需要修改标红出的表名,字段名即可。

ROWID               OBJECT_ID    FILE_ID   BLOCK_ID     ROW_ID OBJECT_NAM B

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

AAAFOzAAEAAAACbAAA      21427          4        155          0 A          3

AAAFOzAAEAAAACZAAA      21427          4        153          0 A          0

AAAFOzAAEAAAACSAAA      21427          4        146          0 A          55

通过上面的语句可以查询出update a  set b=0 where b=7;修改数据块是:file#4,block#153

###################################################################

2.使用DUMP  file#4,block#153数据块来查看此块相关信息---主要是修改时的SCN

20:01:36 BYS@ bys3>alter system dump datafile 4 block 153;

System altered.

查看TRACE文件位置方法有三个:

select value from v$diag_info where name like 'Default%';

SYS用户执行:oradebug setmypid;   oradebug tracefile_name

或者直接在user_dump_dest目录中使用 ls -alt 找最近生成的文件

20:05:32 BYS@ bys3>col name for a10

20:05:40 BYS@ bys3>col value for a50

20:05:49 BYS@ bys3>select * from v$diag_info where name like 'Default%';

  INST_ID NAME       VALUE

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

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/storage/

        1 Default Tr /u01/app/oracle/product/11.2.0/dbhome_1/log/diag/r

          ace File   dbms/bys3/bys3/trace/bys3_ora_17341.trc

从DUMP信息中查出修改时SCN为:scn: 0x0000.00197b75   ---详见下面的TRACE文件具体信息

转换为SCN为:

20:19:17 BYS@ bys3>select to_number('197b75','xxxxxxxxx') from dual;

TO_NUMBER('197B75','XXXXXXXXX')

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

                       1670005

20:19:38 BYS@ bys3>select scn_to_timestamp(1670005) from dual;    --把SCN转换为时间,验证此SCN与UPDATE语句提交时的相符。

SCN_TO_TIMESTAMP(1670005)

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

29-NOV-13 07.55.39.000000000 PM

查看bys3_ora_17341.trc中的详细信息如下:===截取块头部分信息:

Start dump data blocks tsn: 4 file#:4 minblk 153 maxblk 153

Block dump from cache:

Dump of buffer cache at level 4 for tsn=4 rdba=16777369

BH (0x22bfad14) file#: 4 rdba: 0x01000099 (4/153) class: 1 ba: 0x22b9e000

 set: 3 pool: 3 bsz: 8192 bsi: 0 sflg: 1 pwc: 0,0

 dbwrid: 0 obj: 21427 objn: 21427 tsn: 4 afn: 4 hint: f

 hash: [0x22bfba7c,0x2879bdd8] lru: [0x22bfaea4,0x22bfac10]

 ckptq: [NULL] fileq: [NULL] objq: [0x22bfaebc,0x25040784] objaq: [0x22bfbba8,0x22bfb9f0]

 st: XCURRENT md: NULL fpin: 'kdswh01: kdstgr' tch: 6

 flags: block_written_once redo_since_read

 LRBA: [0x0.0.0] LSCN: [0x0.0] HSCN: [0xffff.ffffffff] HSUB: [1]

BH (0x22bfb9f8) file#: 4 rdba: 0x01000099 (4/153) class: 1 ba: 0x22bbc000

 set: 3 pool: 3 bsz: 8192 bsi: 0 sflg: 1 pwc: 0,0

 dbwrid: 0 obj: 21427 objn: 21427 tsn: 4 afn: 4 hint: f

 hash: [0x2879bdd8,0x22bfad98] lru: [0x22bfacec,0x217e4bb8]

 lru-flags: hot_buffer

 ckptq: [NULL] fileq: [NULL] objq: [NULL] objaq: [NULL]

 st: CR md: NULL fpin: 'kdswh01: kdstgr' tch: 0

 cr: [scn: 0x0.197b72],[xid: 0x0.0.0],[uba: 0x0.0.0],[cls: 0x0.197b72],[sfl: 0x0],[lc: 0x0.14da6c]

 flags: only_sequential_access

Block dump from disk:

buffer tsn: 4 rdba: 0x01000099 (4/153)

scn: 0x0000.00197b75 seq: 0x02 flg: 0x06 tail: 0x7b750602

frmt: 0x02 chkval: 0xe52c type: 0x06=trans data

Hex dump of block: st=0, typ_found=1

Dump of memory from 0xB6C41600 to 0xB6C43600

##########################################################3

时间: 2024-12-30 22:15:30

如何使用DUMP数据块与BBED查看BLOCK对比数据库修改时的SCN的相关文章

mysql中数据库与数据表编码格式的查看、创建及修改_Mysql

一.查看数据库编码格式 mysql> show variables like 'character_set_database'; 二.查看数据表的编码格式 mysql> show create table <表名>; 三.创建数据库时指定数据库的字符集 mysql>create database <数据库名> character set utf8; 四.创建数据表时指定数据表的编码格式 create table tb_books ( name varchar(45

ORACLE空间管理实验(八)数据块格式分析--DUMP结合BBED

使用DUMP 数据块格式结合BBED进行查看. ####################实验准备步骤: BYS@ bys3>create table test6(aa int,bb varchar2(10)); Table created. BYS@ bys3>insert into test6 values(89,'bys'); 1 row created. BYS@ bys3>insert into test6 values(69,'hello'); 1 row created. B

[20150522]bbed与数据块检查和.txt

[20150522]bbed与数据块检查和.txt --我现在基本拿bbed学习,基本是拿bbed查看,而使用bvi修改数据.我感觉这种方便1写. --实际上使用bbed的好处就是修改数据块检查和不一致,而使用bbed修改很简单仅仅需要执行sum apply就ok了. --对比dbv与bbed确定检查和位置. 1.建立测试环境: SCOTT@test> @ &r/ver1 PORT_STRING                    VERSION        BANNER -------

[20150527]bbed与数据块检查和2.txt

[20150527]bbed与数据块检查和2.txt http://blog.itpub.net/267265/viewspace-1666781/ --我现在基本拿bbed学习,基本是拿bbed查看,而使用bvi修改数据.我感觉这种方便1写. --实际上使用bbed的好处就是修改数据块检查和不一致,而使用bbed修改很简单仅仅需要执行sum apply就ok了. --对比dbv与bbed确定检查和位置. --实际上既然检查和在16,17字节,只要清零,加上dbv就很容易确定要修改的内容. 1.

【体系结构】Oracle数据块详解

Oracle数据块详解 操作系统块是操作系统读写的最小操作单元,也是操作系统文件的属性之一.当创建一个Oracle数据库时,选择一个基于操作系统块的整数倍大小作为Oracle数据库块的大小.Oracle数据库读写操作则是以Oracle块为最小单位,而非操作系统块. 数据库块也称逻辑块或Oracle块,它对应磁盘上一个或多个物理块,它的大小由初始化参数DB_BLOCK_SIZE决定,可以定义数据块为2K.4K.8K.16K.32K甚至更大,默认Oracle块大小是8K.若一旦设置了Oracle数据

[20170611]关于数据块地址的计算.txt

[20170611]关于数据块地址的计算.txt --//如果数据库出现一些问题,会在alert或者跟踪文件,或者屏幕出现一些错误提示.例如: ORA-00600: internal error code, arguments: [2662], [3], [392066208], [3], [392066212], [4194825], [], [], [], [], [], [] ORA-600 [2662] [a] [b] {c} [d] [e] Arg [a] Current SCN WR

HDFS源码分析数据块之CorruptReplicasMap

        CorruptReplicasMap用于存储文件系统中所有损坏数据块的信息.仅当它的所有副本损坏时一个数据块才被认定为损坏.当汇报数据块的副本时,我们隐藏所有损坏副本.一旦一个数据块被发现完好副本达到预期,它将从CorruptReplicasMap中被移除.         我们先看下CorruptReplicasMap都有哪些成员变量,如下所示: // 存储损坏数据块Block与它对应每个数据节点与损坏原因集合映射关系的集合 private final SortedMap<Bl

HDFS源码分析数据块校验之DataBlockScanner

        DataBlockScanner是运行在数据节点DataNode上的一个后台线程.它为所有的块池管理块扫描.针对每个块池,一个BlockPoolSliceScanner对象将会被创建,其运行在一个单独的线程中,为该块池扫描.校验数据块.当一个BPOfferService服务变成活跃或死亡状态,该类中的blockPoolScannerMap将会更新.         我们先看下DataBlockScanner的成员变量,如下: // 所属数据节点DataNode实例 private

Oracle数据块实现原理深入解读_oracle

下午在学习oracle 10g r2 concepts 在这留一笔. Oracle对数据库数据文件(datafile)中的存储空间进行管理的单位是数据块(data block).数据块是数据库中最小的(逻辑)数据单位.与数据块对应的,所有数据在操作系统级的最小物理存储单位是字节(byte).每种操作系统都有一个被称为块容量(block size)的参数.Oracle每次获取数据时,总是访问整数个(Oracle)数据块,而不是按照操作系统块的容量访问数据. 数据库中标准的数据块(data bloc