Oracle诊断事件列表
经常有人问,Oracle有哪些诊断事件,各是什么含义,怎样使用?这些问题问得太多太多,Oracle没有过多的说明,实际上也不需要太多的说明。我们可以通过以下代码查询得到Oracle的诊断事件及说明,通过这些,我想就足够了。列举在这里给自己参考。1.代码SET linesize 120 SET feedback off SET SERVEROUTPUT ON DECLARE err_msg VARCHAR2(120); BEGIN dbms_output.enable (1000000); FOR err_num IN 10000..10999 LOOP err_msg := SQLERRM (-err_num); IF err_msg NOT LIKE '%Message '||err_num||' not found%' THEN dbms_output
安装oracle无法换盘
我在redhat8上安装oracle9i过程中,提示换第二张盘,可我的光驱却退不出来,怎么办?光驱是mount 命令加载的,可在换盘时,我在root下用umount命令提示光盘busy.怎么办?在线等待!!!!应该这样执行Oracle安装程序/mnt/cdrom/runinstaller,如果你是先cd /mnt/cdrom的话就会出这样的问题解决方法是先找出访问光驱的那个进程fuser -m /mnt/cdrom再杀掉这个进程,就可以弹出光驱了[@more@]
(网上摘录)日志文件损坏处理方法
案例:日志损坏 环境描述:linux 9 oracle9 错误描述:今天不小心把名为redo01.log、redo02.log、redo03.log的三个文件请空了。 结果数据库报错如下 ORA-00320: cannot read file header from log 2 of thread 1 ORA-00312: online log 2 thread 1: '/opt/app/oracle/oradata/actdb/redo02.log' ORA-27091: skgfqio: unable to queue I/O ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file Additional information: 1 Additional information: 1 如何解决呢? 解决方案:联机日志分为当前
是不是9.2.0.4 也有这样的BUG呢?
看了eygle的一篇关于临时表的BLOG,于是动手测试了一下自己的数据库,发现有同样的BUG原文:http://www.eygle.com/faq/temp_table.htm我的测试结果如下:SQL> create table c1 (c1 number);表已创建。SQL> set autotrace trace statSQL> insert into c1 select rownum from dba_objects;已创建7235行。Statistics---------------------------------------------------------- 797 recursive calls 125 db block gets
关于高级复制的一些数据同步
果你原来两个数据库的表里数据不一致,你用dbms_repcat.add_master_database加表的时候用了:copy_rows=>false, oracle不会帮你做同步,因为你指明了说“不需要复制数据,我保证数据是一致”。这样你永远别想靠replication把数据同步。你要么设置copy_rows=>ture,这样oracle会把远程表清空,做数据同步。要么在用dbms_repcat.add_master_database就手工把数据搞成一致,再用copy_rows=>false把表加入replication group. 一般数据比较多都应该这么做。大致上你可以:suspend replication group:BEGINDBMS_REPCAT.SUSPEND_MASTER
SQL语句优化方法30例
SQL语句优化方法30例在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.例如:SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';3. /*+CHOOSE*/表明如果数据字典中有访问表的统计信息,
Oracle数据库中索引的维护 (转帖)
Oracle数据库中索引的维护 柏柯嘉 本文只讨论Oracle中最常见的索引,即是B-tree索引。本文中涉及的数据库版本是Oracle8i。 一. 查看系统表中的用户索引 在Oracle中,SYSTEM表是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。 一般来说,应该尽量避免在SYSTEM表中存储非SYSTEM用户的对象。因为这样会带来数据库维护和管理的很多问题。一旦SYSTEM表损坏了,只能重新生成数据库。我们可以用下面的语句来检查在SYSTEM表内有没有其他用户的索引存在。select count(*) fr
SCN的一点小知识
在ORACLE 8I以下,可通过如下语句取得CURRENT SCNselect max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;在ORACLE 9I,使用如下语句取得CURRENT SCNselect dbms_flashback.get_system_change_number from dual;系统检查点scn(v$database(checkpoint_change#))数据文件检查点(v$datafile(checkpoint_change#))数据文件终止scn(v$datafile(last_change#))数据文件中存放的检查点启动scn (v$datafile_header(checkpoint_change#)1、系统检查点scn当一个检查点动作完成之后,Oracle就把系统检查点的SCN存储到控制文件中。select checkp
AS4.0安装oracle
在as4上面安裝要打補丁的﹐装前先要安装4198954 Oracle PreInstall Patch。 Unzip p4198954.zip 会生成4198954目录,并生成compat-oracle-rhel4-1.0.5.i386.rpm、compat-libcwait-2.0.2.i386.rpm 和README.txt 。 着两个rpm包安装需要xorg-x11-deprecated-libs 和 xorg-x11-deprecated-libsdevel包文件,安装着两个rpm包:rpm -ivh compat-oracle-rhel41.0.5.i386.rpm rpm -ivhcompat-libcwait-2.0.2.i386.rpm另外,我还打了p3006854_9204_LINUX.zip 这个补丁才安装,不知不打有没有什么坏处.安装时不要选择建库,在打了下面两个补丁后再建库
solaris9自动启动oracle
数据库自动启动与关闭1、修改oratab文件dbstart, dbshut会读Sun Solaris目录下/var/opt/oracle/oratab, 或者linux目录下/etc/oratab 文件。 先确认这里参数已正确设置:#你要启动的数据库sid:ORACLE_HOME:Y 例如:orawic:/app/oracle/product/9.2.0:Y如果有两个在用的数据库,这里oratab里可以是两行。例如:orawic:/app/oracle/product/9.2.0:Yorawap:/app/oracle/product/9.2.0:Y2、编写脚本以root权限的用户在Sun Solaris目录/etc/init.d下, 或者linux目录/etc/rc.d/init.d下编写脚本dbora(名字可随便起).#!/bin/shOPT_=$1case "
丢失控制文件的情况
RMAN中如果丢失控制文件,用下面的方法恢复SQL>shutdown immediatestartup force nomountrman target /set dbid= XXXXXXXXXX (这个具体数值需要看平时备份的日志,所以备份日志最好保留一份)指定特定的备份集才行: restore controlfile from '/opt/rman_backup/control.bak';然后再根据情况来进行数据库恢复如果出现恢复出来的控制文件与数据文件的SCN不相同时,极有可能需要重建控制文件,重建语法如下CREATE CONTROLFILE REUSE DATABASE orcl NORESETLOGS ARCHIVELOG MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXDAT
oracle没有备份,丢失数据文件的恢复
--创建表空间SQL> create tablespace myspace datafile 'D:ORACLE_BASEdatafilesmyspace.dbf'size 10M;Tablespace created.--建立测试数据,位于myspace表空间SQL> CREATE TABLE MYTEST(ROW_ID INT) tablespace myspace;Table created.SQL> INSERT INTO MYTEST VALUES(1);1 row created.SQL> INSERT INTO MYTEST VALUES(2);1 row created.SQL> COMMIT;Commit complete.SQL> SHUTDOWN ABORT;ORACLE instance shut down.SQL> EXITDisconnected from Oracle9i Enterprise Edition Release 9.2.0.1.0 - ProductionWith t
遇到一个怪问题,sqlplus居然连接出错(ORA-09925)
$ sqlplus "/ as sysdba"SQL*Plus: Release 9.2.0.5.0 - Production on Wed Nov 9 17:18:30 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.ERROR:ORA-09925: Unable to create audit trail fileSVR4 Error: 2: No such file or directoryAdditional information: 9925ORA-09925: Unable to create audit trail fileSVR4 Error: 2: No such file or directoryAdditional information: 9925Subject: ORA-09925: WHEN CONNECTING INTERNAL Type: PROBLEM Status: PUBLISHED Content Type: TEXT/PLAIN C
Redhat AS3 下Oracle9204异步I/O的实现
Redhat AS3 下Oracle9204异步I/O的实现 最近一个生产数据库IO性能比较差,用户目前暂时无升级硬件系统的打算,因此只能在系统和数据库上面做文章。在metalink上查找了一番,正好看见一篇有关《Asynchronous I/O (aio) on RedHat Advanced Server》(Note:225751.1)的文章,于是经过实验后,成功将数据库改成异步IO模式。现将基本步骤贴出来,供大家讨论:1,Linux系统环境和Oracle版本要求不是所有的Linux版本都可以实现异步IO,根据metalink上的文档,目前只支持Red Hat Advanced Server release 或者 UnitedLinux / SUSE。Oracle数据库
Veritas Cluster Server 4.0安装指南
Veritas Cluster Server 4.0安装指南作者:kamus出处:http://www.eygle.com/blog日期:July 02, 2005浏览次数: 150本文链接:http://www.eygle.com/archives/2005/07/veritas_cluster.html« 贴一张小图 | Blog首页 | 如何在SqlLoader中装载日期型的数据 » UU的实验室里面有一组放在那里不用的双机+盘阵,于是尝试从头开始安装一套cluster。硬件简述:1. Node1: Netra 20 (2 X UltraSPARC-III+, 2048M RAM, 72G*2 HardDisk)2. Node2: Netra 20 (2 X UltraSPARC-III+, 2048M RAM, 72G*2 HardDisk)3. Shared Storage: D1000 (36G*3
使用Oracle9i的blockrecover新特性修复数据库中的坏块
参考这里http://www.eygle.com/archives/2005/06/eoaoracle9iaebl.html[@more@]使用Oracle9i的blockrecover新特性修复数据库中的坏块
检测数据库文件坏块的方法
RMAN> backup datafile 8;启动 backup 于 02-8月 -04使用通道 ORA_DISK_1通道 ORA_DISK_1: 正在启动 full 数据文件备份集通道 ORA_DISK_1: 正在指定备份集中的数据文件输入数据文件 fno=00008 name=E:ORACLEORADATATESTTEST01.DBF通道 ORA_DISK_1: 正在启动段 1 于 02-8月 -04RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03009: failure of backu
rman备份,未使用catalog,控制文件丢失的解决办法
[Oracle] DBA工作备忘录之三:rman备份,未使用catalog,控制文件丢失的解决办法 作者:Fenng 日期:July 19 2004 情况描述客户报告数据库故障,新来的系统管理员误操作。删掉了一些文件。询问:删掉了那些文件?答曰:所有重要数据文件,所有控制文件。数据库原来是归档模式,用rman备份数据,rman 使用控制文件。幸运的是,最后一次rman full 备份是包括了控制文件在内。系统没有设定自动备份控制文件.现在状况是数据库无法启动. 不用说,客户的备份方案不够完善,但是这时候再去说这些话责备用户有事后诸葛亮之嫌,用户是上帝,不要去得
手工建库
建库步骤: 1、手工创建相关目录 D:Oracleadmintest D:Oracleadmintestadhoc D:Oracleadmintestbdump D:Oracleadmintestcdump D:Oracleadmintestcreate D:Oracleadmintestexp D:Oracleadmintestpfile D:Oracleadmintestudump D:Oracleoradatatest D:Oracleoradatatestarchive 2、手工创建初始化启动参数文件:D:Oracleadmintestpfileinittest.ora,内容: db_name = "test" instance_name = test service_names = test db_files = 1024 control_files = ("D:Oracleoradatatestcontrol01.ctl", "D:Oracleoradatat
Oracle企业管理器(OEM)常见问题解答
Oracle企业管理器(OEM)常见问题解答OracleEnterpriseManager(Oracle企业管理器,简称oem)是通过一组Oracle程序,为管理分布式环境提供了管理服务。oem包括了一组DBA工具,一个repository,以及一个图形化显示的控制台。oem控制台与每一个服务器上的智能化代理(IntelligentAgent)相对应。 智能化代理能够监控系统的特定事件并且执行任务(作业)就象你在系统本地一样。事件和作业的结果会被送回控制台,这样可以在一个地方管理所有的系统。 oem与ServerManagerMotif相比,有以下优点: 1)从适用范围看,oem可以同时监控管理多个系统上