日志分析一例
今天接到开发人员报告:某些商品对应的图片字段经常被莫名其妙置空,导致在图片在界面上显示不出来。由于有可能更新该字段的程序很多,不能确定是那个程序更新了这些数据,所以需要用logmnr来分析日志,以确定是那个...
10g透明网关访问sqlserver
老话题了。最近一个项目用到了透明网关,这里把配置过程简单记录下来,供大家参考。oracle的透明网关是oracle直接访问异构数据库的利器。在9i中,透明网关是包含在数据库安装程序中的,在安装数据库软件过程中可以选...
简单模拟死锁
近来程序员用java多线程导入数据经常遇到死锁,下面简单模拟死锁的成因updateSES1: update t set a=1 where id=1;SES2: update t set a=2 where id=2;SES1: update t set a=2 where id=2;(挂住,等待SES2提交或者回...
Solaris 10下迁移10G RAC (五)
最近做了一个rac数据库的迁移,中间涉及到很多部分内容,包括rac环境的搭建、ASM的设置、数据库的迁移、升级等。本文是这次迁移工作的第五部分:升级数据库。5升级ORACLE到10203由于目前还没有创建数据库,所以升级...
tar方式安装数据库
今天在linux as4上用tar方式安装oracle 10g,下面简单那记录步骤及安装过程中出现的问题。原数据库所在服务器信息: [oracle@haoc2008 data]$ more /etc/issue Red Hat Enterprise Linux ES release 4 (N...
如何在10g中修改数据库字符集
一般来说,数据库在创建完成后就不能修改字符集了,如要修改字符集,需要对原有数据进行导入导出后重建数据库来修改。但是也有一些例外的,如果从子集升级到超集,则可以直接修改而无需重建数据库。[php]子集到超集...
oracle进程异常中止时登录挂起问题的解决
今天一个朋友找我处理帮忙处理一个oracle问题,原因是用户不能登录了。起因是这样的: 因为业务推广,访问量大增,造成oracle压力大增,系统IDLE几乎为0。我那朋友情急之下,把用户的连接都用kill -9的方式干掉了...
静默方式安装、升级oracle(三): 升级数据库软件及数据库
本文简单阐述在Linux AS 4中如何不用启动界面的情况下安装oracle 10g软件、创建数据库以及升级数据库,这就是oracle的静默安装。三、升级数据库1、升级数据库软件1)把下载的补丁集解压,修改/oradata/soft/Disk1/re...
10g DG保护模式的切换:从最大性能到最大可用
这篇文章主要讨论DG环境下如何切换保护级别。数据库环境是linux as4 +10gr2。一、最大性能到最大可用1、检查当前主备库的保护模式--主库SQL> SELECT PROTECTION_MODE,PROTECTION_LEVEL FROM V$DATABASE;PROTECTION_M...
一次坏块的处理过程(一)
最近在一个数据库遇到了坏块,以下是处理过程。一、坏块的发现及处理[@more@]首先是在做RMAN备份的时候,看到alert文件有坏块报错:.......Corrupt block relative dba: 0x00925026 (file 2, block 1200166)Fractured block found during backing up datafileData in bad block: type: 6 format: 2 rdba: 0x00925026 last change scn: 0x0578.15b7ebf7 seq: 0x1 flg: 0x06 spare1: 0x0 spare2: 0x0 spare3: 0x0 consistency value in tail: 0x33da0602 check value in block header: 0xf8d0 computed block checksum: 0xd82eReread of blo
求数据交集的问题
表结构如下:SQL> desc item_tagName Type Nullable Default Comments ------------------- ---------- -------- ------- -------- ITEM_TAG_ID NUMBER(18) ITEM_TAG_SEQ_NUMBER NUMBER(16) 9999999 TAG_ID NUMBER(1...
rman恢复控制文件的一个小错误
今天用rman做异地恢复,在恢复控制文件的时候出现了一个错误:bash-3.00$ rman target /Recovery Manager: Release 10.2.0.3.0 - Production on 星期四 9月 27 00:18:55 2007Copyright (c) 1982, 2005, Oracle. All...
在oracle 9i下在线重定义表
9i提供了联机重定义表的方法,可以让你在基本不影响原表的DML情况下修改表结构。实际上,联机重定义表并不是完全的联机重定义,在最后交换表名的时候会短暂地锁定原表和中间表,但这个过程很短暂,相对于传统方法来...
DG使用中遇到的几个错误
最近,在使用10G的DG中遇到了几个错误(这里的错误主要指后台报错)。本文就这几个错误简单分析原因及解决方法:1、执行:alter database recover managed standby database disconnect from session;后台alert文件...
在RAC中用NID修改数据库名称
在rac中修改db_name的步骤与单实例步骤差不多,主要是要修改一些与cluster相关的参数。停止所有实例,然后把其中一个实例启动到mount状态下:SQL> startup mountORACLE instance started.Total System Global Area 1...
联机重定义修改字段类型(NVARCHAR2->VARCHAR2)
今天在调整一个SQL的时候发现有一个表使用了NVARCHAR2字段类型,在于VARCHAR2类型的字段连接时发生隐式转换(VARCHAR2 -> NVARCAHR2),导致SQL走了全表扫描。SQL类似如下:SELECT * FROM T1,T2 WHERE T1.NAME=T2.NAME AND T1.NAME='XXX';其中T1的NAME类型为:NVARCHAR2T2的NAME类型为:VARCHAR2[@more@]这个SQL会发生隐式转换(VARCHAR2 -> NVARCHAR2),所以,实际执行的SQL是:SELECT * FROM T1,T2 WHERE T1.NAME=SYS_OP_C2C(T2.NAME) AND T1.NAME=U'XXX';T2.NAME上多了一个函数,所以不能用到这列上的索引。这个SQL,应该让T1和T2都
联机重定义修改字段类型(NVARCHAR2->VARCHAR2)
今天在调整一个SQL的时候发现有一个表使用了NVARCHAR2字段类型,在于VARCHAR2类型的字段连接时发生隐式转换(VARCHAR2 -> NVARCAHR2),导致SQL走了全表扫描。SQL类似如下:SELECT * FROM T1,T2 WHERE T1.NAME=T2.NAME...
只读表空间
顾名思义,只读表空间就是空间只可读,不可写,这一特性对备有有很大的好处,尤其是对数据仓库这种历史数据很少变化,而数据规模又非常庞大的场景。下面通过一些例子来说明只读表空间如何影响备份与恢复。[@more@]1. 创建表空间及表SQL> create tablespace tbs datafile 'E:ORACLEPRODUCT10.2.0ORADATAtbs01.dbf' size 100m;Tablespace createdSQL> create table c2 nologging tablespace tbs as select * from dba_objects;Table createdSQL> alter system checkpoint;System alteredSQL> alter tablespace tbs read only;2.
dbsnmp启动失败解决方法
今天查看两个新装的库的进程,发现有很多dbsnmp相关的进程。oracle 20368 20365 0 Apr05 pts/3 00:00:00 /opt/oracle/product/9.2/bin/dbsnmporacle 20369 20368 0 Apr05 pts/3 00:00:00 /opt/oracle/pr...
如何找出引起ORA-1652的SQL?
在alert文件中,我们可能会看到这样的报错信息: Wed Aug 20 17:16:37 2008 ORA-1652: unable to extend temp segment by 128 in tablespace  ...