我的口头禅
1.美特斯 XX,不走寻常路2.玩死你,没道理哩~~3.奶奶个腿儿4.OK[@more@]
回忆
关键词:音乐,大学,第一份工作梁静茹的《可惜不是你》,让我回忆起我居然丢掉了音乐。母校论坛的毕业相片,让我的眼睛湿润了。原公司论坛上火炬接力的照片,让我看到了曾经熟悉的身影,想起了那段激情燃烧的岁月。世界是在变化,我也在变化,但存在我心底的那段记忆永远不会变。[@more@]
只有冷备和归档,能否恢复?
看到pub上的一个帖子http://www.itpub.net/viewthread.php?tid=1027951&extra=&page=1我认为只有冷备份和全部归档,就是说当前的数据文件,控制文件,重做日志文件都丢失了,由于丢失了当前重做日志文件,所以不能做完全恢复,只能做不完全恢复了。restore databaserecover database using backup controlfile until cancel;1.using backup controlfile使用在丢失当前controlfile,用冷备份中的controlife恢复的时候。用来告诉oracle,不要以controlfile中的scn作为恢复的终点~2.until cancel使用在丢失current/active redo的时候
ORACLE执行计划的一些基本概念
一.相关的概念Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的。对每个表都有一个rowid的伪列,但是表中并不物理存储ROWID列的值。不过你可以像使用其它列那样使用它,但是不能删除改列,也不能对该列的值进行修改、插入。一旦一行数据插入数据库,则rowid在该行的生命周期内是唯一的,即即使该行产生行迁移,行的rowid也不会改变。Recursive SQL概念:有时为了执行用户发出的一个sql语句,Oracle必须执行一些额外的语句,我们将这些额外的语句称之为'recursive calls'或'recursive SQL stat
SQL的执行
白老师就是那么牛,再转。最近有网友问我SQL的执行有哪些步骤。实际上SQL执行是一个十分复杂的事情。这里仅介绍SQL提交到SQL引擎后的几个重要的阶段。一个SQL的执行分为分析(PARSE),执行(EXECUTE)和FETCH三个大的阶段。SQL执行的第一步是对语法进行分析,首先根据SQL语句,计算出SQL的HASHVALUE,然后根据HASHVALUE查找LIBRARY CACHE,是否存在这个SQL,如果存在,那么说明语法是经过检查的,不需要进行语法检查。如果不存在,那么要在LIBRARY CACHE中分配内存,这时候会涉及到SHARED POOL,LIBRARY CACHE闩锁。第二步是进行语意的检
一个存储过程编译HANG住的分析
转白老师的文章。客户的一个库编译某个存储过程HANG住。查看了一下,也没锁方面没有什么问题。查看v$session_wait,发现在等待Library cache pin。建议他做一个3级的hanganalyze。结果如下:==============HANG ANALYSIS:==============Open chains found:Chain 1 : : <48/29750/0x3ed60060/7856/PX Deq: Join ACK> -- <141/31823/0x3ed5d680/2291/library cache pin> --被HANG住的SESSIONChain 2 : : <76/16377/0x3ed554b0/6507/No Wait>Chain 3 : : <98/8617/0x3ed65c80/4550/No Wait>Chain 4 : :
怀念HITFM
今天是周末,手上终于没有很急的问题了,略感轻松。突然想起HITFM,恍然间我已不在北京,离HITFM似乎是那么远,还有什刹海。突然感到北京似乎是我的家。忙碌真的会让人忘掉这个世界。昨晚还受了一点小刺激,接触oracle才7个月,一个学经济的女生水平都比我高,我真搞不清楚是世界发展太快还是我放慢了前进的脚步。真想拿块豆腐,撞撞脑袋。下周搬到租住的房子里了,没有电视,我想好,我需要买个台灯了。[@more@]
说说这几天
周一,装了库,9201 for solaris 然后升级到9208,在runInstaller 的时候报DISPLAY设置问题,后经过finger才知道,DISPLAY要设置成我笔记本的IP,因为我是用xmanager装的。在这个问题上我浪费了很多时间,以后要载入我的故障库。周三遇见4031错误,郁闷的是居然连数据库都登录不进去,这个问题需要深入研究。周四DB hang,学会了开sr,呵呵,并且用E文跟oracle交流。同时学会了在hang时该做的操作(Update for record id(s): 241426350)UPDATE======Hi,Yes, without the diagnostic information it is not possible to find the reason for
【转帖】Oracle Audit 学习快餐
Oracle Audit 学习快餐 Oracle Audit 读书笔记 --请拍砖 1、什么是审计 简单来讲,就是把对数据库的操作记录下来。不管你是否打开数据库的审计功能,以下这些操作系统会强制记录。 l 用管理员权限连接Instance l 启动数据库 l 关闭数据库 2、和审计相关的两个主要参数 Audit_sys_operations 默认为false,当设置为true时,所有(注意是所有!)sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表中,这个很好理解,如果数据库还未启动aud$不可用,那么像conn /as sysdba
离职了!
2008年7月9日,我离职了,又是一个值得记念的日子。值得记念不是因为离职了,是因为我居然坐错公交了,本来要49路结果坐成102,奶奶个腿,我都不知道我在想什么~~感谢的话还是要说,我可不是唐僧哦,谢谢给我在inspur工作的机会,虽然我对inspur有一肚子的抱怨,但没有inspur就没有今天的我。我仍然要感谢,当初离开北海也是很感谢的。呵呵~~罢了罢了~~唐僧不再唐僧了~~[@more@]
获取跟踪文件_eygle
跟踪文件位于user_dump_dest目录中,位置及文件名可以通过以下SQL查询获得select d.value||'/'||lower(rtrim(i.instance, chr(0)))||'_ora_'||p.spid||'.trc' trace_file_name from ( select p.spid from sys.v$mystat m,sys.v$session s,sys.v$process p where m.statistic# = 1 and s.sid = m.sid and p.addr = s.paddr) p, ( select t.instance from sys.v$thread t,sys.v$parameter v where v.name = 'thread' and (v.value = 0 or t.thread# = to_number(v.value))) i, ( select value from sys.v$parameter where name =
工作两周年
两年前的今天,是我的起点。写了一段sql,留此纪念。select name,count(*) as yearsfrom jlttt.life where time>=to_date('2006-07-01','yyyy-mm-dd')and time<=to_date('2008-07-01','yyyy-mm-dd')name years----------------------jlttt 2[@more@]
Oracle SCN机制解析
SCN(System Chang Number)作为oracle中的一个重要机制,在数据恢复、Data Guard、Streams复制、RAC节点间的同步等各个功能中起着重要作用。理解SCN的运作机制,可以帮助你更加深入地了解上述功能。在理解SCN之前,我们先看下oracle事务中的数据变化是如何写入数据文件的: 1、 事务开始;2、 在buffer cache中找到需要的数据块,如果没有找到,则从数据文件中载入buffer cache中;3、 事务修改buffer cache的数据块,该数据被标识为“脏数据”,并被写入log buffer中;4、 事务提交,LGWR进程将log buffer中的“脏数据”写入redo log fi
Bug 4632780 - PMON "failed to acquire latch" during shutdown
今天做实验,遭遇Bug 4632780 shutdown immedaitehang住alert中出现大量PMON "failed to acquire latch" during shutdownctrl+c,不起作用,然后在另外一个窗口中登录[oracle@xh bdump]$ sqlplus '/as sysdba'SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 28 10:21:58 2008Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected.SQL> alter system checkpoint;alter system checkpoint*ERROR at line 1:ORA-01012: not logged onSQL> conn sys/password as sysdbaConnected to an idle instance.
记录输出结果工具-script
今天转到eygle的网站上,学到一个好用的工具script,可以将接下来所做的操作都记录到一个叫typescript的文件里。[root@xh root]# scriptScript started, file is typescript[root@xh root]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda3 39G 5.6G 32G 16% //dev/sda1 99M 9.2M 85M 10% /bootnone 291M 0 291M 0% /dev/shm[root@xh root]# ls1.dbf anaconda-ks.cfg install.log log monitor.sh time.sh1.sh dd.sh install.log.syslog log.txt Shareplex_Chk.sql typescript[root@xh root]# su - oracle[oracle@xh oracle]$ s
恋上shell编程
最近有点迷恋shell了。呵呵,不过我也只是皮毛,就把我的所知写在这里吧。附上晶晶小妹的一段shell,慢慢品位吧~~0 #!/bin/bash1 # 脚本名:mystat 用途:收集vmstat 资料到my_os_stat 表中2 # 命令格式: ./mystat 间隔时间 次数3 # 省略次数,将会无限制运行。 省略间隔时间,将使用缺省时间300 秒(即5 分钟)4 i=15 k="$1"6 j="$2"7 if [ -z "$1" ]8 then9 k=30010 fi11 if [ -z "$2" ]12 then13 j=214 fi15 while (( i <= j ))16 do17 vmstat $k 2|sed 1,3d|tr -s " "|{18 r
监控linux系统的shell
目标:每隔60s将vmstat的结果输出到一个日志文件,系统重启后也能自动运行步骤:1.编写shell脚本monitor.sh,可以每隔60s将vmstat的结果输出到log.txt中,同时输出前显示时间。[root@xh root]# more monitor.sh echo "====== time is "`date +%Y%m%d/%H:%M:%S` "========" >>/root/log.txtnohup vmstat 60 >>/root/log.txt 2>&1 &注意:飘叶-广州 11:52:502通常是一些错误输出,不会写到日志里面。1是命令的输出。最后加 &,就是静默方式运行了。错误输出(2)只会输出到屏幕的,只能在屏
eygle_getsql.sql
SELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN ( SELECT DECODE (sql_hash_value, 0, prev_hash_value, sql_hash_value ), DECODE (sql_hash_value, 0, prev_sql_addr, sql_address) FROM v$session b WHERE b.paddr = (SELECT addr FROM v$process c WHERE c.spid = '&
ORACLE性能优化笔记
http://space.itpub.net/html/10/8750110-6864.html[@more@]
使用dbv和RMAN检查数据文件中的坏块
1.使用dbv检查D:oradataeygle>dbv file=EYGLE.DBF blocksize=8192DBVERIFY: Release10.1.0.4.0 - Production on星期六6月11 17:36:37 2005Copyright (c) 1982, 2004, Oracle. All rights reserved.DBVERIFY -开始验证: FILE = EYGLE.DBF页219标记为损坏Corrupt block relative dba: 0x010000db (file 4, block 219)Bad check value found during dbv:Data in bad block: type: 6 format: 2 rdba: 0x010000db last change scn: 0x0000.0005ee6d seq: 0x2 flg: 0x04 spare1: 0x0 spare2: 0x0 spare3: 0x0 consistency value in tail: 0xe