- 博客(199)
- 收藏
- 关注
原创 探索_disable_logging的损坏作用_结论2
SQL> alter system set "_disable_logging"=true scope=spfile;System altered.Elapsed: 00:00:00.00SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startupORAC
2006-02-24 07:57:00 3071 1
原创 探索_disable_logging的损坏作用--结论1
SQL> alter database clear logfile group 1;alter database clear logfile group 1*ERROR at line 1:ORA-00350: log 1 of thread 1 needs to be archivedORA-00312: online log 1 thread 1: /oracle/oradata/TSMIS
2006-02-24 07:56:00 2560 1
原创 _disable_logging参数研究系列(一)
ORACLE 的隐含参数_disable_logging主要用于禁用日志生成(一般建议在oracle support的指导下用于非生产环境下),不难想象,如果禁止日志生成,那么必然导致事务的不可恢复性。对于这个参数的一些破坏作用做了一些测试:SQL> select * from v$instance;INSTANCE_NUMBER INSTANCE_NAME HOST_NAME
2006-02-24 07:54:00 2468
原创 使用show_space时的一类错误现象
SQL> create or replace procedure show_space 2 ( p_segname_1 in varchar2, 3 p_space in varchar2 default MANUAL, 4 p_type_1 in varchar2 default TABLE , 5 p_analyzed in varchar2 default
2006-02-24 07:46:00 1590
原创 关于sga_max_size的测试
由于系统的特殊要求,我们想要将以前固定在sga_max_size中的一部分内存释放出来,还给OS,因此,引出了下面的一个 如果在启动数据库的参数文件中从没有设置过sga_max_size,那么这个参数就是SGA各部件的和。如果曾经设置了这个参数,那么分为集中情况:SQL> show parameter spfileNAME
2006-02-24 07:38:00 2704
原创 ORA-00600[ksmals], [qrarr] 在俺们的数据库上工作了8小时之多
早9晚六,呵呵这个错误,从早上不到9点就还是伴随我们,知道下午快6点,我才收到现场工程师的报告,经查明,bug,又是bug 3204937,呵呵。这几天运气好呀,呵呵,分别3个地方碰到2个bug,和1个阵列损坏,再加一个内存条损坏,呵呵。今天又要通宵了。。。。。恢复数据库!
2005-09-28 01:42:00 2158 4
原创 处理琐表——这是日常工作的10%的工作
业务人员反映说业务拥堵的利害,于是看看等待事件,发现大量的顽固enqueue,分别在RAC的两个节点: INST_ID SID EVENT P1 P2---------- ---------- -------------------
2005-09-20 08:05:00 2174 1
原创 在Redhat linux ADS3上安装单机oracle的过程
将oracle的cpio文件解压缩: # Uncompress gunzip Linux9i_Disk1.cpio.gz Linux9i_Disk2.cpio.gz Linux9i_Disk3.cpio.gz # Unpack the downloaded files: cpio -idmv cpio -idmv cpio -idmv [root@rac1 tools]# llto
2005-09-12 08:33:00 2565 1
原创 单机安装oracle 9201 ,然后patch 到9204
将oracle的cpio文件解压缩: # Uncompress gunzip Linux9i_Disk1.cpio.gz Linux9i_Disk2.cpio.gz Linux9i_Disk3.cpio.gz # Unpack the downloaded files: cpio -idmv cpio -idmv cpio -idmv [root@rac1 tools]# llto
2005-09-08 10:27:00 2863 1
原创 自动生成 SQL* LOADER 的控制文件
经常会用SQL* LOADER来倒数据,因此,编写各种控制文件就是个日常工作了,呵呵,这里提供了一个方法,可以根据表结构自动生成控制文件:基于指定的表结构格式化SQL* LOADER的控制文件set feedback offset verify offdrop table select_text;create table select_text (text varchar2(2000));a
2005-09-07 15:58:00 2165
原创 1个update的小问题
SQL> select * from t1;A B----- ----------a 111b 112c 113d 114e 115f 1166 rows selected.Elapsed: 00:00:00.02SQL> select *
2005-09-07 15:49:00 1396
原创 配置mware tools
1. 启动虚拟计算机中的Linux系统,并以root身份登录进入Linux;2. 按下CTRL+ALT组合键,切换到真实的计算机系统;3. 单击VMware状态栏中的"VMware Tools is not running. click on this text to install."的安装提示,或者单击 "Settings"菜单中的"VMware Tools Install"选项,安装VMwa
2005-09-06 16:53:00 2069
原创 v$session_event 使用举例
CPU统计仅仅在每次调用结束时更新,而等待事件统计则是实时更新的当我们知道某个sid或者会话运行非常缓慢时,v$session_event非常有用。select event, time_waited as time_spentfrom v$session_eventwhere sid = &sidand event not in ( Null event,
2005-09-06 11:03:00 1880
原创 在windwos上用vmware装rac的过程(1)
实施系统软硬件环境 硬件:p4 2.4G,80G,1G DDR 宿主机系统:win2000pro sp4 虚拟机软件:Vmware GSX Server 2.5.1HOST OS 的网络配置:IP: 10.2.10.251 GW: 255.255.255.0P-DNS: 10.2.2.2S-DNS: 10.2.2.31. 安装vmware-gsx-server-installer-2.5.1-53
2005-09-05 15:33:00 3631 2
原创 linux下的分区工具
fdisk分区工具[root@racnode1 root]# fdisk /dev/sdbDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel. Changes will remain in memory only,until yo
2005-09-05 15:27:00 4071
原创 bitmap 为什么不能被delete正常使用?
同事的一个语句执行起来很慢,听说delete几乎执行不动,然后表中记录不过几万条,应该不至于啊,于是感觉上应该是语句不够优化或者是使用了不合适的索引。首先来看看下面的查询,在没有合适索引的情况下将会有怎样的执行计划:SQL> select count(*) from servstat where hostip in(0,127.0.0.1); COUNT(*)---------- 3
2005-08-26 09:54:00 1936 3
原创 利用交换分区优化频繁insert 和delete的分区表
SQL> select * from v$instance;INSTANCE_NUMBER INSTANCE_NAME--------------- ----------------HOST_NAME----------------------------------------------------------------VERSION STARTUP_T STATUS
2005-08-25 09:09:00 2541
原创 生产库的离奇宕机
早上听同事说,某省的数据库异常宕机了,数据库在,马上登陆检查,首先看alert文件,除了下面一段可疑的记录几乎没有什么线索:Tue Aug 2 00:26:41 2005Errors in file /oracle/app/oracle/admin/hemisc/udump/hemisc_ora_17752.trc:ORA-07445: exception encountered: core
2005-08-23 16:06:00 1967 3
原创 一次异常内存消耗问题的诊断及解决
本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。1. 问题发现一大早,接到通知说现网数据库(RAC中的一个节点)出现异常,现象是大量的业务拥堵,系统可用内存很低,经常徘徊在100m左右,随着业务高峰期的时间就要到了,眼看系统的内存已经处在极其危险的状态。 2. 解决过程2.1.环境介绍硬件和软件环境:HP 7410 ,16G内存,8
2005-06-27 10:02:00 6170 4
原创 如何给Large Delete操作提速近千倍?(七)
本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。 1.1. 总结 从最初几乎每次都因为抱ORA-01555错误而无法完成的一个DELETE语句,到删除100万记录需要20多个小时,再发展到现在的删除90万记录只需要不到3分钟,速度提高了近千倍,这里主要的思想是:1, 避开繁琐的查询条件(即避开了庞大到上百万个元素的in-list)2, 使用原子级的处理方式(使用两个原子
2005-06-27 09:56:00 3597 2
原创 如何给Large Delete操作提速近千倍?(六)
本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。 本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。1.1. 第五次优化——使用FORALL + 原子级操作这一次的优化过程已经很清晰了,主要是综合了前面几次优化的思想,将他们的优点集中使用,即:1) 分段处理:将整个大的事务分割为以10000行为单位的小事务,其中,10000这个基数来自于上面使用批量测试时的结果(
2005-06-27 09:54:00 3406 1
原创 如何给Large Delete操作提速近千倍?(五)
1.1. 第四次优化——使用FORALL 处理批量作业上面我们已经介绍了批量作业的一些概念,这里不再赘述。这次优化的思想主要是使用FORALL的思路来改写“第三次优化——拆分DELETE操作”,具体的修改如下:SQL> l 1 create or replace procedure del_hubei_SSR_forall 2 as 3 type ridArray is t
2005-06-27 09:48:00 2893
原创 如何给Large Delete操作提速近千倍?(四)
本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。 本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。1.1. 第三次优化——拆分DELETE操作首先,我尝试从临时表 temp_mid_hubei 中取出一行记录:SQL> select mid ,rowid from temp_mid_hubei where rownum=1; MID ROWID---
2005-06-27 09:47:00 2868
原创 如何给Large Delete操作提速近千倍?(三)
本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。 1.1. 第二次优化——分段操作这次优化的思想仅仅是通过rownum将完整的操作分成若干段,设定每次(每段)只操作指定数量的行,删除完成后立即提交。 该过程如下:CREATE OR REPLACE PROCEDURE del_hubei_ssf ( p_count IN VARCHAR2
2005-06-27 09:46:00 2879
原创 如何给Large Delete操作提速近千倍?(二)
本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。 本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。1. 优化过程详解1.1. 第一次优化——处理庞大的IN-LIST操作回到我们最初的需求,首先看看这个删除工作的基本语句,请注意这个IN 操作,由于这个TEMP_MID_HUBEI 表有130多万行记录,这将是一个多么庞大的IN-LIST! DELETE from SSF
2005-06-27 09:44:00 3409 3
原创 如何给Large Delete操作提速近千倍?(一)
本文已经发表在ITPUB优化技术丛书,未经许可,不得转载。1. 背景描述1.1. 任务描述这个任务是需要从一系列大表中清理3个省的大批过时数据,具体的清理过程简单的说就是:首先根据不同的miscid的值创建不同的临时表,类似于: CREATE TABLE temp_midASSELECT mid FROM ssr WHERE SUBSTR(ssid,1,7) IN(SELECT prefixn
2005-06-27 09:42:00 11352 4
原创 ORA-01502 state unusable错误成因和解决方法(二)
SQL> create table t(a number);Table created.现在,我们建立一个唯一索引来看看:SQL> create unique index idx_t on t(a);Index created.SQL> select index_name,index_type,tablespace_name,table_type,status from user_
2005-03-01 16:11:00 2397 1
原创 ORA-01502 state unusable错误成因和解决方法(一)
接到开发人员和业务人员的通知,说一个登陆页面不能用了,报错:2005-01-31 13:59:02,721 [com.aspire.common.dao.OamUserDAO]- -214:select错误java.sql.SQLException: ORA-01502 state这个错误是由于索引失效造成的,重建索引后,问题就解决了。为了搞清楚索引为什么会失效,以及如何解决,我们做个
2005-02-03 18:04:00 2372 6
原创 还是bug
接到通知,说报表数据库报错:ORA-00600: internal error code, arguments: [15851], [3], [2], [1], [1], [], [], []Current SQL statement for this session:INSERT INTO ACTIVE_USER_WAP_H(MOBILENUM,LOCATIONID,SUBSCAT,
2005-01-19 10:32:00 1655 3
原创 又一个bug
环境: 操作系统版本: HPUX 11.11 MC 11.15数据库版本: 9.2.0.4描述: 数据库shutdown后,startup时报错: ORA-600: internal error code, arguments: [ksimgchg:1], [4294967295], [], [], [], [], [], ORA-304: requested INST
2005-01-18 10:47:00 1937 3
原创 彻底搞清楚library cache lock的成因和解决方法(三)
前面我们已经知道碰到library cache lock导致进程hang时,如何解决。那么如何避免这类问题的发生呢?这篇文章主要介绍了library cache lock的成因以及如何避免。当我们在执行一些DML,DDL,甚至desc tablename等等操作的时候,会话就hang住了,还有一种情况,当我们使用create or replace procedure/function等
2005-01-10 20:13:00 2373 1
原创 彻底搞清楚library cache lock的成因和解决方法(二)
上一个例子中我们主要借助于X$KGLLK基表和event systemstate解决问题,那么如果你不了解X$KGLLK基表,或者忘记了如何使用它,那也不要紧张,这里再介绍一种常规的方法。从system state 的转储信息中,我们已经注意到PROCESS 28当前正在等待library cache lock。handle address表示的就是正持有 PROCESS 28 进程所
2005-01-10 20:07:00 3802
原创 彻底搞清楚library cache lock的成因和解决方法(一)
问题描述:接到应用人员的报告,说是在任何对表CSNOZ629926699966的操作都会hang,包括desc CSNOZ629926699966,例如:ora9i@cs_dc02:/ora9i > sqlplus pubuser/pubuserSQL*Plus: Release 9.2.0.4.0 - Production on Mon Jan 10 10:11:06 2005Cop
2005-01-10 19:35:00 17691 1
原创 library cache lock 的解决案例
下午,业务人员报告,执行任何和zzss03201281cs_no表有关的操作都会hang住,包括desc zzss03201281cs_no,也会hang在那里第一感觉是锁了,于是,我看看锁SQL> select * from v$lock where block=1;no rows selectedSQL> SQL> select * from gv$lock where bl
2005-01-07 15:43:00 2466 1
原创 解读Oracle 9201的控制文件
Oracle 9201的控制文件内容列表: 控制文件头...数据库项... 检查点进度记录(该项从Oracle8开始引入)... 扩展的数据库项(该项从Oracle9i开始引入)... 重做线程项... 日志文件项... 数据文件项... 临时文件记录项(该项从Oracle9i开始引入)... 表空间记录项(该项从Oracle8开始引入)...
2004-11-30 11:42:00 2747 1
原创 转储控制文件头
转出控制文件必须在数据库打开(OPEN)或者安装(MOUNT)的状态下进行。 1. 连接数据库E:/>sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 5月 14 08:52:03 2004 Copyright (c) 1982,
2004-11-30 11:33:00 2579
原创 如何找出消耗cup的进程信息和执行的语句
要找出最耗资源的sql,我们可以首先使用top等工具,找到最好资源的进程(记住进程号),例如,操作系统进程号为1217,然后根据这个进程号(v$process.spid)在v$process中找到进程地址(v$process.addr),然后根据这个地址在v$session中找到相应的sid(v$session.sid),然后根据这个sid找到相应的hash alue(v$session.
2004-11-24 10:45:00 2095
原创 如何找出数据文件的HWM
经常在resize数据文件的时候,resize的尺寸不好掌握,下面提供一个方法: SQL> declare 2 cursor c_dbfile is 3 select tablespace_name 4 ,file_name 5 ,file_id 6 ,bytes 7 from sys.dba_data_files 8 where s
2004-11-24 10:40:00 1205
原创 找出和解决系统中的锁
V$LOCK视图中包含了关于锁的信息V$LOCKED_OBJECT包含了关于锁的对象的信息 举个例子:首先在一个session使用了demo用户登陆,然后执行update lunar set c1=first lock where c2=999;系统显示:SQL> update lunar set c1=first lock where c2=
2004-11-24 10:37:00 2498 3
原创 使用索引的误区之六:为索引列都建立索引
使用索引的误区之六:为所有列都建立索引我们知道,建立索引是为了提高查询的效率,但是同时也应该注意到,索引增加了对DML操作(insert, update, delete)的代价,而且,一给中的索引如果太多,那么多数的索引是根本不会被使用到的,而另一方面我们维护这些不被使用的所以还要大幅度降低系统的性能。所以,索引不是越多越好,而是要恰到好处的使用。 比如说,有些列由于使用了函数,我们要
2004-11-24 10:32:00 2312 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人