bbed(二)
-----------bbed x and f and changed file header----------- --寻找数据类型 select CASE DATA_TYPE WHEN 'NUMBER' THEN 'n' WHEN 'DATE' THEN 't' when 'VARCHAR2' then 'c' else 'c' end case from user_tab_columns where table_name = 'LIHJ'--打印数据 BBED> x /rnntnnccntntntnntnnnncnncntcrowdata[1243] @7890 -------------flag@7890: 0x2c (KDRHFL, KDRHFF, KDRHFH)lock@7891: 0x00cols@7892: 25col 0[2] @7893: 2 col 1[4]
bbed(一)
1 更新和删除数据1,查询所在文件的具体位置--------select dbms_rowid.rowid_relative_fno(t.rowid) || '_' || dbms_rowid.rowid_block_number(t.rowid), t.status from lihj t;2,确定修改--------修改lihjEM 为system ,也就是改成原来的3,登陆bbed blockedit-----bbed parfile=bbed.parshowBBED> show4,定位block-------set block 2365,bbed操作--------p kdbr --查看有几行p *kdbr[0] p *kdbr[1] --打印和定位第几行 2c 表示数据存在 3c 表示被删除x /r --16进制显示
oradebug(一)
sqlplus -prelim /nolog;sqlplus /nologSQL> conn / as sysdba SQL> oradebug setmypidSQL> oradebug setospid 3188 ------other processSQL> oradebug unlimitSQL> oradebug dump systemstate 10SQL> oradebug event 10046 trace name context forever,level 4 SQL> oradebug event 10046 trace name context offSQL> oradebug event 942 trace name errorstack level 3SQL> oradebug dump controlf 10SQL> oradebug dump file_hdrs 10SQL> oradebug dumplistSQL> oradebug tracefile_name[@mor
dbms_session.free_unused_user_memory; 可以释放 部分的PGA内存
--实验步骤【经常看才知道 这些数据的含义】--运行下面的程序很多次select * from tbak where rownum <&dd order by 1 desc;select * from tbak where rownum <&dd order by 1 ;select * from tbak where rownum <&dd order by 1 desc;....select * from tbak where rownum <&dd order by 1 desc;select * from tbak where rownum <&dd order by 1 ;select * from tbak where rownum <&dd order by 1 desc;--回话关键信息PGAselect * from v$sesstat a, v$statname b where a.statistic# = b.
一些X$表的小结
1.X$KTUXE——[K]ernel [T]ransaction [U]ndo Transa[x]tion [E]ntrysys@ORALOCAL(192.168.0.22)>descX$KTUXE##主要用来查看scn和smon正在清理的undo block Name Null? Type ----------------------------------------------------- -------- --------------------- ADDR RAW(4) INDX NUMBER INST_ID
bbed --暂时自己会的东东
1 创建配置bbed$ make -f ins_rdbms.mk $ORACLE_HOME/bin/bbedmake: 1254-002 Cannot find a rule to create target /cadrasu01/app/oracle/product/9.2.0/bin/bbed from dependencies.Stop.$ make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed$ pwd/cadrasu01/app/oracle/product/9.2.0/bin$ cat filelist.txt1 /dras11/oradata/astca/system01.dbf 125 /dras21/astca/system02.dbf 133 /dras20/astca/test01.dbf $ cat par.bbdblocksize=8192listfile=filelist.txtmode=edit bb
坏块快速恢复
使用10231诊断事件,在做全表扫描的时候跳过坏块 可以在session级别设定: ALTER SESSION SET EVENTS '10231 TRACE NAME CONTEXT FOREVER, LEVEL 10'; 也可以在数据库级别上设定,在初始化参数中加入:event="10231 trace name context forever, level 10" , 然后重启数据库。 然后从存在坏块的表中取出不存在坏块的数据,执行以下的语句: CREATE TABLE salvage_emp AS SELECT * FROM corrupt_table; 最后rename生成的corrupt_table为原来表的名字,并重建表上的索引和限制。使用dbms_repair包进行
db2 内存结构
DB2 内存结构概述 图 1中说明了 DB2 内存结构。这种内存结构在所有平台上都是一致的。 注意:在多分区环境中,下面的图适用于多分区实例中的每个分区。 图 1 - DB2 内存结构 DB2 在 4 种不同的内存集(memory set)内拆分和管理内存。这 4 种内存集分别是: 实例共享内存(instance shared memory) 数据库共享内存(database shared memory) 应用程序组共享内存(application group shared memory) 代理私有内存(agent private memory) 每种内存集由各种不同的内存池(亦称堆)组成。图 1 也给出了各内存池的名称。例如, lo
DB2的体系结构简图
DB2 UDB 体系结构和结构。图 1. DB2 UDB 体系结构498)this.style.width=498;" border="0" /> DB2 UDB 内存结构包缓存 —— 为存储静态和动态 SQL 语句而分配的内存。 缓冲池 —— 在将数据刷新到磁盘之前,为存储数据而分配的内存。 日志缓冲区 —— 在将所有对数据库的更改刷新到磁盘上的日志之前,用来存储这些更改的内存。图 2. DB2 UDB 数据库结构498)this.style.width=498;" xmlns:dw="http://www.ibm.com/developerworks/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" /> 驱动器/目录 —— 在 CREATE DATABASE 命
Oracle 10G R2 RAC 日常管理
Oracle 10G R2 RAC 日常管理 一、使用srvctl管理RAC数据库 [root@NODE01 bin]# pwd/orac/crs/bin # srvctl在$CRS_HOME/bin目录下,它可以在任何节点上维护。[root@NODE01 bin]# ./srvctlUsage: srvctl <command> <object> [<options>] command: enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config objects: database|instance|service|nodeapps|asm|listenerFor detailed help on each command and object and its options use: srvctl <command> <obje
v$session_wait 相关
v$session_waitSID: session标识EVENT: session当前等待的事件,或者最后一次等待事件。WAIT_TIME: session等待事件的时间(单位,百分之一秒)如果本列为0,说明session当前session还未有任何等待。SEQ#: session等待事件将触发其值自增长P1, P2, P3: 等待事件中等待的详细资料P1TEXT, P2TEXT, P3TEXT: 解释说明p1,p2,p3事件附注:1.State字段有四种含义﹕Waiting:SESSION正等待这个事件。Waited unknown time:由于设置了timed_statistics值为false,导致不能得到时间信息。表示发生了等待,但时间很短。Wait short time:表示发生了等待
oracle 坏块问题急救
ALTER SYSTEM SET EVENTS ‘10231 trace name context forever,level 10’; CREATE TABLE tg_bill03_tmp as select * from tg_bill03; ------------------AlertSID.log:Ora-1578 file# (RFN) block#Ora-1110 file# (AFN) block#Ora-600 file# (AFN) block#其中RFN表示的是relative_fno AFN表示的是file_id Select file_name, tablespace_name, file_id “AFN”, relative_fno “RFN” From dba_data_files;Select file_name, tablespace_name, file_id, relative_fno“RFN” From dba_temp_files; ¡¤具体处理方法的介绍(1) 先
Oracle Label Security
--怀疑是应用程序连接“中间件”有关系--触发器验证1 查询数据库内部调用这个包的代码语句 SELECT * FROM ALL_SOURCE where lower(text) like '%lbac_events.logon%'2 修改触发器 验证是否是数据库登录引起的问题 LBACSYS.lbac$logon 加入代码 insert into aa values(dbms_standard.login_user); 观察1分钟 看看aa表数据是否变化3 如果变化较大说明是由于客户端登录引起的,一直在调用这个触发器 1 设置跟踪 dbms_system.SET_SQL_TRACE_IN_SESSION(12,19,true);3 格式跟踪文件 tkprof colm_ora_2056.trc trace.txt print=100