db scattered read && db sequential read
这两个等待事件是很长见的,但是不是所有的人都能理解的 记一下: db scattered read 是由于full scan 或者index full scan导致的,大家都知道full scan 就是连续的一次多块读,那么怎么会叫scattered read db sequential read 是由于索引读取数据导致的,大家都知道索引读取的时候是一块一块的读,是一个随机的读取,那么怎么会叫 sequential read呢? 想知道答案的,就给我留言,嘿嘿![@more@]
研究undo的时候必须要的几个步骤
下面几个步骤是查看一个完整的transaction 必要的几个步骤1/ find xid,segment headerselect xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec from v$transaction;2/alter system dump undo header '_SYSSMU9$';3/find undo block by rdba which dumped by step 24 /alter system dump datafile 2 block 25962; the datafile number and block come from setp 35/ find the datafile and block from dbms_rowid.rowid_relative(rowid),dbms_rowid.rowid_block_number(rowid) 6/alter system dump datafile xxx block xxxx ;which the row in
我们还是不能太浮躁
学习不能浮躁,必须一点一点的搞清楚每个概念。不然不断增加了学习的困难,最后发现还是需要重头来。记录下面几句话A buffer that is currently not in use, and contains data that has been committed but not written back to the disk by the database writer process is called a dirty buffer. If a user process finds a dirty buffer in the least recently used (LRU) list, it moves the dirty buffer to the write list and continues searching for more dirty buffers.----------------------------------------------------
关于rman里面的from 与until的区别
rman 里面的from和until的区别很多时候我都容易把这两个概念给搞混了,今天测试了一下记录如下:有三个时间 ,t1 ,t2 ,sysdate from t2 :指的是 从t2时间到sysdate,这个时间段 until t2 :指的是从t1 到t2这个时间段注意t1其实是一个不确定的时间,只是我在这里为了方便描述,所以暂时叫t1,准确的说它应该是一个小于t2的任意时刻.[@more@]
今天下午做的简单的rac恢复到异地单机节点上面的实验
下面整个过程的快速记录,有时间在整理一下,但是以下步骤肯定是正确的0/copy backup piece to new localtion1/ restore spfile from backuprun{ allocate channle t1 type to disk;restore spfile from '/path';release channle t1;}2/modify spfile to consistent to signal instance*.audit_file_dest='/opt/app/oracle/admin/test/adump'*.audit_sys_operations=TRUE*.background_dump_dest='/opt/app/oracle/admin/test/bdump'*.compatible='10.2.0.3.0'*.control_file_record_keep_time=30*.control_files='/oradata/test/control01
oracle hang住的时候怎么登陆呢?
sqlplus -prelim /nolog用上面的这个登陆,然后可以试一试oradebug。看看是什么hang住了数据库[@more@]
explain for 的简单使用
autotrace 貌似有点bug,推荐用explain for:要使用EXPLAIN首先要执行相应的脚本,创建出Explain_plan表。 具体脚本执行如下: $ORACLE_HOME/rdbms/admin/utlxplan.sql (UNIX) 该脚本后会生成一个表这个程序会创建一个名为plan_table的表。常规使用语法: explain PLAN [ SET STATEMENT_ID [=] < string literal > ] [ INTO < table_name > ] FOR < sql_statement > 其中: STATEMENT_ID:是一个唯一的字符串,把当前执行计划与存储在同一PLAN中的其它执行计划区别开来。 TABLE_NAME:是plan表名
block 里面的一些标记位的含义,简单记录一下
H-表示当前数据块是改行的第一个块(不一定包含改行的数据,如row migrate)F-表示该行数据的第一个片断,L-表示改行的最后一个片断FL-表示改行的数据都在该数据快中.N-表示该行在当前这个数据块中的最后一列没有结束,其余的数据存放在由rowid指向的下一个数据块中。P-表示该行在当前这个数据块中的第一列是从别的块延续过来的。PN-会出现在行chained的地方,如果一行的数据超过一个块时就会出现,系统表很难看到[@more@]
dump 的语法 (zt)
一、Oracle跟踪文件 Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动、关闭和运行期间后台进程的活动情况,如表空间创建、回滚段创建、某些alter命令、日志切换、错误消息等。在数据库出现故障时,应首先查看该文件,但文件中的信息与任何错误状态没有必然的联系。后台报警日志文件保存BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为SIDALRT.LOG。另一种类型是DBWR、LGWR、SMON等后台进程创建的后台跟踪文件。后台跟踪文件根据后台进程运行情况产生,后台跟踪文件也保存在BACKGROUND_DUMP_DEST参数指定的目录
oracle recover 原理概括
在media recover的时候,其实我们最关心的是从什么地方开始recover,什么地方结束。那么oracle到底怎么来确定从什么地方开始的呢?在数据库正常关闭的时候控制文件的scn ,数据文件的scn ,应该是保持一致的,如若不一致,者在open database的时候提示需要恢复下面的两个view必须注意一下: V$datafile_header 里面的内容来自数据文件的头部 V$datafile 里面的内容来自 控制文件 两个view的checkpoint_change#字段的值必须保持一致,否在在open的时候提示需要recover 那么v$datafile_header可以确定应用重做的起始SCN值,而 v$datafi
关于归档日志的几个参数选项
一、AFFIRM和NOAFFIRM作用:控制日志传输服务是异步还是同步写日志数据到磁盘AFFIRM:在日志写进程进行之前,所以的归档日志和备库日志必须同步写完NOFFIRM:在主库的日志写进程不等所有磁盘IO完成缺省的是NOFFIRM使用AFFIRM时,可以确保以下三点:1能确保数据没有丢失在主库失败后2 可以在本地或远程使用3 影响主库的性能LGWR和AFFIRM,日志写进程同步写REDO DATA到磁盘,在DISK写完前,控制权不交给用户,还有主库的在线日志可能不可用在归档完成之前ARCH和AFFIRM ARCn进程同步写REDO DATA到磁盘,归档操作可能发生时间比较长,主库的在线
How to Dump Redo Log File Information
How to Dump Redo Log File Information When you encounter an archivelog corruption issue as seen from an ora-353 or ora-600 [3020] (stuck recovery) , or you need to know what&who&how&where were changed It is a common practice to dump the archivelog to determine the nature of the corruption&change.And Dump Redo Log File has muptiple fashion,its syntax is list below.[DocID 1031381.6]The following commands will be used in this process: 1. The ‘alter session’ command is used
Rman备份中obsolete和expired的区别
Rman备份中obsolete和expired的区别obsolete:与retention policy相关,当备份或者副本根据保存策略而被丢弃的时候,就会被标记为该状态。比如你设置恢复窗口为7天,今天10号,那2号之前(包括2号)的都被认为是“过期的”。expired:使用crosscheck对备份进行校验,当备份或者副本被存储在rman目录中,但是并没有物理存在于备份介质上时,就会被标记为该状 态;在操作系统层删除备份集后,用crosscheck 检测后就标志为X(expired)。通常指丢失(被删除)的备份。#delete obsolete and expired backup and archivelogrun {delete noprompt
VI 的使用
网上到处有转摘的,我这个也是,之所以这样,主要是为了方便查阅:vi 是 visual editor 的缩写,是 UNIX 所提供的编辑器之一。它提供使用者一个视窗的编辑环境,在此视窗下,使用者可编辑所要的文件。vi、celvis(cvi) 是在工作站上被广大使用的中英文编辑软体。对初学者而言,常因其特殊的使用方法,而不得其门而入;对已经在使用 vi 的使用者来说,也常见因对 vi 的不熟悉或不够了解,而无法发挥出 vi 强大的编辑能力,以下将介绍 vi 之使用方法简介。 进入vi ====== 直接执行 vi编辑程式即可: %vi test 此刻萤幕上会
low cache rba与on disk rba的 通俗解释
low cache rba,high rba 与on disk rba都是记录的数据块更改产生的entrys在redo log里面的地址,只是每个rba代表了不同的时间点而已,不用考虑的太复杂了。简单的说: low cache rba ,告诉dbwr从什么地方开始写checkpoint quene队列上面的dirty block。on disk rba ,就是告诉dbwr,把checkpoint quene上面的数据写到什么地方位置。这个值是不能高于high rba的,应为high rba 高于 on disk rba,意味着,这些数据是还没有从log buffer里面写回磁盘的。这样的事务也是不能恢复的。另外这个 low cache rba 会被ckpw以3秒为心跳更新到contr
SQLPLUS 的一些基本使用
sqlplus 的基本使用help 的使用help ? 命令关键字,可以查看具体的使用set 命名的使用set sqlblanklines on 支持空格变量的 替代的输入:SELECT * FROM TABLE_NAME WHERE COL_NAME=&&TTlist 查看sqlplus的缓冲区里面的命令,简写为lchange 替换需要修改的字符,简写为cc/first_char/last_chardelete 用来删除sqlplus缓冲区里面的字符串,简写为deldel 2 3 删除第2行至第3行appand 追加字符串save 保存缓冲区的内容到某个文件里面@+文件的路径及名称,运行该文件里面的sqlget 命令可以直接显示需直接执行的sql文件里面的内容col 命令
consistent gets 到底指的是什么?
下看下面的实验吧:sqlplus /nolog;SQL*Plus: Release 10.2.0.1.0 - Production on Fri Nov 20 16:12:02 2009Copyright (c) 1982, 2005, Oracle. All rights reserved.SQL> conn cc/ccConnected.SQL> create table cc as selc ect * from tb_ac001;Table created.SQL> se set s serveroutput onSQL> set autotreace ace traceonly ;SQL> select * from cc;142998 rows selected.Execution Plan----------------------------------------------------------Plan hash value: 436806892----------------
set autotrace 的几个开关选项
set autotrace 的几个开关选项1 SET AUTOTRACE OFF 此为默认值,即关闭Autotrace 2 SET AUTOTRACE ON EXPLAIN 只显示执行计划 3 SET AUTOTRACE ON STATISTICS 只显示执行的统计信息 4 SET AUTOTRACE ON 包含2,3两项内容 5 SET AUTOTRACE TRACEONLY 与ON相似,但不显示语句的执行结果。[@more@]
oracle 直方图
感觉这个名字就有点神秘,其实不然,据我的理解如下:直方图,其实就是oracle在基于cbo 的时候,提供的额外的优化访问路径的一个参考数据,以便用来生成跟好的execution plan。明白上面这个就好说了,剩下的就是要搞清楚什么情况下可能需要生成直方图(histograms),直方图有哪几种类型。在数据严重倾斜(skew)下可能需要用到histograms。种类分为宽度的和高度的[@more@]
一个简单的iptable的应用
最近负责网站的华3的防火墙总是出问题,具体的表现就是外网通过防火墙访问网站不通,但是在内网,直接访问有时正常的,初步定在防火墙的NAT的链接数的限制问题,估计一时半会搞不好,我就直接把网站放在公网了,顺便用iptable写了一个简单的包过滤的规则,如下:#!/bin/bashSYSCTL="/sbin/sysctl -w" modprobe ip_nat_ftpmodprobe ip_conntrackmodprobe ip_conntrack_ftpif [ "$SYSCTL" = "" ]thenecho "1" > /proc/sys/net/ipv4/ip_forwardelse$SYSCTL net.ipv4.ip_forward="1"fii