客户系统报错:soft lockup的解决办法
redhat os日志如下:服务器会重启,负载重的时候会这样Sep 28 02:14:00 hpdb1 kernel: BUG: soft lockup - CPU#40 stuck for 23s! [java:79542]Sep 28 02:14:00 hpdb1 kernel: Modules linked in: bridge stp llc oracleacfs(P)(U) oracleadvm(P)(U) oracleoks(P)(U) oracleasm autofs4 sunrpc pcc_cpufreq ipv6 ...
唯一index和非唯一index中leaf node里rowid的一点区别。
unique index的index leaf node里面rowid没有参与排序:row#0[8025] flag: ------, lock: 0, len=11, data:(6): 01 00 00 84 00 00col 0; len 2; (2): c1 02row#1[8014] flag: ------, lock: 0, len=11, data:(6): 01 00 00 84 00 01col 0; len 2; (2): c1 03row#2[8003] flag: ------, lock...
没有备份undo segment出现问题的处理
--为了增加可读性,先显示一些和undo有关的信息:SQL> show parameter undoNAME TYPE &nbs...
ora-27504错误解决
dataguard db客户直接把服务器关机之后挪了一个机柜,结果重启时报错如下:[@more@]参考的连接如下:http://blog.itpub.net/post/39970/495530--================================Errors in file /oracle/diag/asm/+asm/+ASM/trace/+ASM_ora_7929920.trc:ORA-27504: IPC error creating OSD contextORA-27300: OS system dependent operation:skgxnqtsz failed with status: 0ORA-27301: OS failure message: Error 0ORA-27302: failure occurred at: SKGXN not av搜了一下,说是需要执行下面一段脚步:/usr/sbin/no -o -p udp_sendspace=65536
doc上描述的关于for update产生的表锁的一点错误!
doc上提到select....for update of 会产生row share表锁但实际上加的却是row exclusive类型的表锁,这个可能和版本有关,我测试是在10gR2下测试的。[@more@]SQL> lock table t1 in row share mode;表已锁定。SQL> SELECT TYPE ,LMODE,2 decode(lmode ,0 , 'none',1,'null',2,'row share',3 3,'row exclusive',4,'share',5,'share row exclusive',6,4 'exclusive') lock_type5 from v$lock6 where type in ('TX','TM');TY LMODE LOCK_TYPE-- ---------- -------------------TM 2 row shareSQL> rollback;回退已完成。SQL> sele
windows下可以通过使用orastack工具修改每个thread使用的stack内存
不停oracle服务会报错,停下来执行没有问题,最近遇到客户在windows 32位下使用oracle遇到ora 12560,ora-04030错误的困扰,我想尝试使用orastack.exe来下调每个thread stack使用的内存来节约更多的主机物理内存从而缓解一下这个错误的发生。 默认是1m[@more@]E:oracleproduct11.2.0dbhome_1BIN>orastack oracle.exe 500000Couldn't open file with CreateFile()GetLastError() == 32E:oracleproduct11.2.0dbhome_1BIN>orastack oracle.exe 500000Dump of file oracle.exeCurrent Reserved Memory per Thread = 1048576Current Comm
redo中change vector里面常见的op的含义
网上看到的,随手记录一下。OP:操作码,由两部分组成,layer code. sub code,网上有关op的解释不多,但是op在redo change vector里非常重要。[@more@]常见的OP CODE含义:4块清除4.1块清除5事务管理,如commit/rollback5.1修改undo header中的事务信息5.2事务开始5.4 commit5.19事务审计5.20子事务审计10索引操作10.2插入页块记录10.3清除页块记录10.4删除页块中的记录10.5还原页块日志10.6锁定索引块10.7提交时清除块中的操作码10.8初始化头部10.9 ITL1上应用XAT10.10设置页块指向下一个页块的指针10.11设置页块指向上一个页块的指针10.
oracle中一个事务是如何使用redo的以及redo record和change vector的关系
oracle使用redo来恢复应该是以redo record为单位的[@more@]SQL> select * from tt;ID NAME---------- --------------------1 a2 b3 cSQL> update tt set name='e';3 rows updated.SQL> commit;Commit complete.SQL> alter system dump logfile 'E:ORACLEORADATATESTREDO04.LOG';System altered.SQL> select distinct sid from v$mystat;SID----------7SQL> select sid,serial#,process from v$session where sid=7;SID SERIAL# PROCESS---------- ---------- ------------------------------------------------7 43 236
ORA-55507: Encountered mining error during Flashback Transaction Backout
11.2.0.1下执行DBMS_FLASHBACK.TRANSACTION_BACKOUT会遭遇bug:Bug 10335025,oracle的描述说是造成这个问题是由于执行完全恢复时oracle自动使用了redo恢复过db,这样redo会被记录在v$archived_log里面,v$archived_log里面出现了redo这显然是存在问题的,我的db里确实是这样的,3组redo被记录在v$archived_log里面了,和下面doc说的一样,doc给出了办法,我觉得太麻烦,我直接通过脚本重建了一下控制文件,其实只要把redo从v$archived_log里面清除了就可以了,重建控制文件之后执行就没有问题了。[@more@]PROBLEM:--------In a certain c
oracle的程序员犯了不可饶恕的错误!
把REPAIR写成了REAPIR 我在windows xp 32位11gR2下看到的。[@more@]SQL> select distinct type from v$hm_recommendation;TYPE--------------REAPIRMANUALSQL>
index为什么可能会比table大很多
因为index pctused其实为0[@more@]SQL> create table t1(id int,name char(2000)) tablespace users pctfree 50;Table created.--指定pctfree=50目的是想让2条数据使用一个data blockSQL> insert into t1 values(1,rpad('a',2000,'+'));1 row created.SQL> insert into t1 values(2,rpad('b',2000,'+'));1 row created.SQL> insert into t1 values(3,rpad('c',2000,'+'));1 row created.SQL> commit;Commit complete.SQL> insert into t1 values(4,rpad('d',2000,'+'));1 row created.SQL> commit;Commit complete.S
10205以下需要使用kfed或者dd命令备份asm disk header
asm disk 元数据都保存在disk header上,如果没有备份,一旦disk header损坏,那么asm disk 就不能mount了。所以备份asm disk header的信息是必要的.下面是一个兄弟的总结,记录以下:http://space.itpub.net/7199859/viewspace-700920[@more@]为了防止连接过期,直接把内容贴了过来:作者:ITPUB个人空间1w!o8K{ Z"aA8!COpaulyibinyi一、实验目的:我们经常由于误操作,比如对disk做了pvid=yes的操作,导致磁盘组的磁盘头信息丢失,从而不能正常mount,导致数据库起不来,从而影响业务。以下实验就是为了解决上面情况,而提供的解
v$lock.type中的内容解释
搜了一下,发现一个哥们的blog上列出来了,连接如下:http://blog.csdn.net/binhe521/article/details/4509951为了防止上面连接过期,内容直接拷贝了过来。[@more@]NameDescriptionADASM Disk AU LockAFAdvisor FrameworkAGAnalytic Workspace GenerationAKGES Deadlock TestAOMultiWriter Object AccessASService OperationsATAlter TablespaceAWAnalytic WorkspaceBRBackup/RestoreCFControlfile TransactionCICross-Instance Call InvocationCLLabel Security cacheCMASM Instance EnqueueCTBlock Change TrackingCUCursorDBDbsDriverD
RHEL5单机安装11gR2 asm运行root.sh报错:CRS-4124
原因是权限的问题导致和has相关的很多信息没有真真写入磁盘组RHEL5单机安装11gR2 asm运行root.sh报错:CRS-4124[@more@][root@localhost grid]# ./root.shRunning Oracle 11g root.sh script...The following environment variables are set as:ORACLE_OWNER= gridORACLE_HOME= /opt/grid/product/11.2.0/gridEnter the full pathname of the local bin directory: [/usr/local/bin]: The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: yCopying dbhome to /usr/local/bin ...The file "oraen
oracle db中数据和元数据的概念
02年研究dw相关的产品和业务时第一次听说了元数据的概念,很多资料上是这样描述元数据的概念的:元数据是定义或者描述数据的数据。言外之意是先有元数据再有数据。在构建数据仓库前期建模的过程其实就是定义元数据的过程。如果说oltp的产生是源于业务驱动的,那么olap的产生完全是由数据驱动最终为业务服务的,他们其实最后是一个圆周,根本就没有终点,所以搞信息化,db和dw是没有尽头的,我觉得是一个闭环闲言少叙,下面看看oracle中数据和元数据的概念,oracle中其实把数据和元数据分的非常清楚,只是没有明确的用这2个概念界定出来,在
windows 32位ORA-27102: out of memory错误
SQL> startupORA-27102: out of memoryOSD-00025: additional error informationO/S-Error: (OS 1453) Insufficient quota to complete the requested serviceoracle的解释是触发了oracle的bug[@more@]metalink上解释:ORA-27102 OSD-00025 O/S-Error: (OS 1453) When Lock_sga is Set to True [ID 1292225.1] 2011-03-16 13:51:15| 分类: Oracle | 标签: |字号大中小 订阅 Modified 09-FEB-2011 Type PROBLEM Status PUBLISHED In this Document Symptoms Cause Solution ReferencesApplies to: Oracle Server - E
IOT中溢出区属性pctthreshold和including验证
OCM考试中创建iot时要求使用溢出区属性pctthreshold和including,其实doc描述的还是比较清楚的,我群里有人让我给解释一下,顺道我也验证一下,下面是doc描述和我的验证过程,供参考。[@more@]Index-Organized Tables with Row Overflow AreaB-tree index entries are usually quite small, because they only consist of the key value and a ROWID. In index-organized tables, however, the B-tree index entries can be large, because they consist of the entire row. This may destroy the dense clustering property of the B-tre
linux as4下NFS配置注意事项
RAC中有时候可能需要通过NFS来实现归档日志在每个节点上都能保留一份,下面是NFS配置时的一些注意事项。[@more@]linux NFS配置注意事项在rac里可以通过nfs来实现在任意节点保留一份完整的归档日志,下面是nfs配置的一些注意事项:1.要保证nfs需要的rpm已经安装,这个安装linux时默认已经都安装了,可以通过下面方式验证是否安装:[root@node1 ~]# rpm -qa|grep nfsnfs-utils-lib-1.0.6-3system-config-nfs-1.2.8-1nfs-utils-1.0.6-70.EL4[root@node1 ~]# rpm -qa|grep portmapportmap-4.0-63[root@node1 ~]# 2.保证nfs服务已经启动[root@no
RAC的两大应用特性FAILOVER和LOAD_BALANCE总结
failover容易理解,案例也容易构造load_balance不太容易弄,还好都清楚了。[@more@]FAILOVER特性介绍1.connect-time failover8i提出来这个特性,为后来事先TAF打下了基础。connect-time failover只是在连接的时侯选择能连上的实例进行连接,只是在连接时做判断。042有个题目考得就是这个知识点。connect-time failover的实现就是在tns配置文件里写多个地址列表就可以,本身oracle默认FAILOVER=ONYour database is not configured for session failover. Your tnsnames.ora file contains the followingdetails:test.us.oracle.com=(DESCRI
在10201版本上测试ocr mirror时常会遇到PROT-22: Storage too small
oracle说这是一个bug,在10.2.0.2 patchset.修正了。其实完全可以在关闭crs之后手动对crs做mirror。这是由于一个bug造成的:Oracle Cluster Registry (OCR)2009-05-23 13:11$ ocrconfig -replace ocrmirror /ora10g/app/oracle/oradata/V10/OracleClusterRegistry2PROT-22: Storage too smallThe problem is due to an Oracle bug where this operation requires the OCR mirror partition/file to be larger than the original by up to 128MB. The bug has been fixed in the 10.2.0.2 patchset.[@more@]下面是手动mirror crs的过程。1、