windows 2003 x86 32位中Oracle 10G数据库使用超过1.7G的sga的方法
windows 2003 x86 32位中Oracle 10G数据库使用超过1.7G的sga的方法必须使用4G Tunning技术,过程如下:1、关闭数据库2、修改操作系统的boot.ini的启动参数,加入 /3G /PAE切换开关,如下所示[boot loader]timeout=30default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS[operating systems]multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows Server 2003,Enterprise" /noexecute=optout /3G /PAE/fastdetect[@more@]3、修改操作系统注册表,在HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraDb10g_home1下增加AWE_WINDOW_MEMORY 字
unix/linux环境中Oracle 10G RAC OFF和RAC ON
在某些情况下,在unix/linux上的Oracle 10G 的crs无法启动,需要oracle以single instance启动的时候,可以重新编译(Relinking)oracle,关闭RAC特性,下面记录其方法:详细信息参考metalink Note:211177.1[@more@]RAC ON1. Login as the Oracle software owner and shutdown all database instances on all nodes in the cluster.2. cd $ORACLE_HOME/rdbms/lib3. make -f ins_rdbms.mk rac_onIf this step did not fail with fatal errors then proceed to step 4.4. make -f ins_rdbms.mk ioracleRAC OFF1. Login as the Oracle softwar
物化视图和query_rewrite_enabled参数配合提高select查询性能
最近有一个需求,是使用物化视图来优化查询语句性能。因为不想大规模修改查询语句,所以想到使用query_rewrite_enabled参数,使查询语句能使用建好的物化视图。在asktom(http://asktom.oracle.com)找到例子,测试过程如下:oracle@oracle[/home/oracle]> echo $ORACLE_SIDcnhtmoracle@oracle[/home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Mon Dec 28 09:52:44 2009Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2
listener.log中报Warning: Subscription For Node Down Event Still Pending问题的解决方法
一套Oracle 10.2.0.1 for aix的数据库环境,在监听日志($ORACLE_HOME/network/log/listener.log)中报出大量的“Warning: Subscription For Node Down Event Still Pending"提示。metalink上查询(doc id:340091.1)中,确认这个一个bug。影响的版本为:Oracle Net Services - Version: 10.1.0.3.0 to 10.2.0.2.0在oracle 10.2.0.3中已经解决文档中给出如下的解决方案[@more@]Issue is fixed in 10.2.0.3 Patch SetOracle Support recommends patching to 10.2.0.4 as this the lastest release- OR -Apply Patch 4518443 for the pro
Oracle 10中修改字符集(character set)
Oracle 10.2.0.3数据库原来的字符集是ZHS16GBK,为了支持更多的汉字,需要修改为ZHS32GB18030。我首先想到原来在9i上修改字符集的方法,过程如下:sys@CNHTM> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.sys@CNHTM> startup mountORACLE instance started.Total System Global Area 167772160 bytesFixed Size 1218292 bytesVariable Size 79694092 bytesDatabase Buffers 79691776 bytesRedo Buffers 7168000 bytesDatabase mounted.sys@CNHTM> alter system set job_queue_processes=0
PLS-00920 parameter plsql_native_library_dir is not set问题解决
Oracle 10.2.0.1 上在创建存储过程,报如下错误:PLS-00920: parameter plsql_native_library_dir is not set对于这个问题,可以通过如下两种方法解决:1、禁用plsql的native模式2、使用native模式,设置正确的plsql_native_library_dir参数下面演示解决过程:[@more@]1、禁用plsql native模式1.1、错误提示:sys@CNHTM> create or replace function scott.p_test(userName in varchar2) return boolean is2 Result boolean;3 begin4 Result:=upper(userName) not in ('SYS','SYSTEM');5 return(Result);6 end p_test;7 /Warning: Func
修改oracle实例名(sid)和数据库名(db_name)
有时我们需要修改数据库的sid和dbname,除了使用rman进行备份恢复之外,也可以通过手工方式修改,主要由两个主要过程完成:1、修改实例名(SID)2、修改数据库名(dbname)下面演示将数据库sid和dbname由orcl修改为cnhtm的过程:[@more@]1、修改实例名(sid)1.1、检查原来的数据库实例名(sid)oracle@oracle[/home/oracle]> echo $ORACLE_SIDorcloracle@oracle[/home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 20 11:14:49 2009Copyright (c) 1982, 2005, Oracle. All rights reserved.
Linux中设置oracle实例和asm同时随机自动启动
编辑/etc/oratab文件,使其包括asm实例和oracle实例的自动启动行(红色部分)[oracle@oracle 10.1]$ cat /etc/oratab ## This file is used by ORACLE utilities. It is created by root.sh# and updated by the Database Configuration Assistant when creating# a database.# A colon, ':', is used as the field terminator. A new line terminates# the entry. Lines beginning with a pound sign, '#', are comments.## Entries are of the form:# $ORACLE_SID:$ORACLE_HOME:<N|Y>:## The first and second fields are the sys
将数据库迁移到ASM的实验记录
昨天的blog中测试了在非RAC环境下创建ASM的过程,现在要使用已经创建的ASM,将数据库迁移到ASM上。主要步骤:1、设置control_files环境变量2、迁移控制文件(controlfile)3、迁移数据文件(datafile)4、迁移临时文件(tempfile)5、迁移在线日志(redolog)纤细操作过程如下:[@more@]1、设置control_files环境变量设置这个环境变量的目的是为了下一步使用restore controlfile的时候,能直接在asm上创建需要的控制文件。 [oracle@oracle ~]$ echo $ORACLE_SIDorcl[oracle@oracle ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 -
Oracle 10.2的单机(非RAC)环境中创建ASM的实验记录
这是在Oracle 10.2的单机(非RAC)环境中创建ASM的实验记录。主要的步骤如下:1、使用新增的磁盘创建vg及lv2、将lv映射为raw3、编辑ASM实例的pfile,启动实例4、创建ASM DiskGroup我这里主要是实验目的,所以使用了lvm以及raw,一般在生产环境中的ASM是不推荐使用lvm的,因为lvm隐藏了物理磁盘架构,可能导致ASM效率低下,具体说明可以参考官方文档。我使用的操作系统是CentOS 5,已经集成了asmlib。如果使用其他没有集成asmlib的Linux,参照 ASM官方主页 下载安装。 详细的操作过程如下:[@more@]1、使用新增的磁盘创建vg及lv1.1、查看新
手动将backuppiece加入到catalog的过程演示
在很多情况下,rman备份的catalog是使用控制文件的,有时需要恢复或重建控制文件等操作之后,rman的catalog丢失或不完整,如果backup piece还存在,可以使用catalog backupiece命令将这些备份加入到catalog中,下面演示一下整个过程:大概步骤如下:1、检查现有的备份,使用list backup命令和crosscheck发现备份都正常2、用操作系统命令将备份的目录改名3、删除失效的备份:因为备份目录已经改名了,crosscheck发现状态是EXPIRED的,使用delete命令将这些EXPIRED的备份都删除4、使用catalog backuppiece命令将改过名的目录中的备份加入到c
Oracle RAC的ORA-12545 Connect failed because target host or object does not exist问题
aix5.3系统上的oracle 10.2.0.3 RAC,连接数据库的时候经常报如下错误:ORA-12545: Connect failed because target host or object does not exist这个问题可以通过设置rac数据库各个节点的local_listener参数来解决,有两种方式: [@more@]方式1 在RAC的每个节点上编辑$ORACLE_HOME/network/admin/tnsnames.ora,增加local_listener_rac=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=<vip>)(PORT=1521)))其中<vip>对应每个节点各自的vip地址;在rac的任意一个节点上修改数据库参数,设置local_listener为local_listener_rac$
AIX5.3安装 ORACLE 10.2 RAC 运行root.sh出现lsdb: Cannot allocate memory of size 0 错误的解决方法
在aix 5.3操作系统上安装Oracle 10.2 RAC的时候,安装到CRS最后,运行root.sh的时候,出现如下错误:# ./root.shWARNING: directory '/oracle/crs' is not owned by rootWARNING: directory '/oracle' is not owned by rootChecking to see if Oracle CRS stack is already configuredChecking to see if any 9i GSD is up/oracle/crs/bin/lsdb: Cannot allocate memory of size 09i GSD is running on node ''. Stop the GSD and rerun root.sh在metalink上,发现此问题的描述如下:[@more@]Applies to:Oracle Server - Enterprise Editi
使用impdp命令在不同实例间通过dblink同步数据库
一、环境说明源数据库:IP地址:192.168.137.100sid:catalog用户名:rman密码:rman目标数据库:IP地址:192.168.137.101sid:orcl用户名:rman密码:rman二、在目标数据库上创建到源数据库的tnsname。用oracle用户登录目标数据库,修改 $ORACLE_HOME/network/admin/tnsnames.ora文件,增加如下内容catalog =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.100)(PORT = 1521)))(CONNECT_DATA =(SID = catalog)))修改完这个文件之后,执行如下命令,测试创建的tnsname是否正确$ tnsping catalog如果返回结
ORA-27302 “failure occurred at skgxpvfymmtu” in RAC
一套aix oracle 10.2.0.4 rac环境,数据库无法启动,检查警告日志,出现如下错误: Sat Mar 14 11:57:18 2009Thread 1 advanced to log sequence 402 (archiver wakeup)Sat Mar 14 12:11:48 2009Errors in file /oracle/app/admin//udump/_ora_1151016.trc:ORA-00603: ORACLE server session terminated by fatal errorORA-27504: IPC error creating OSD contextORA-27300: OS system dependent operation:sskgxp_select failed with status: 3ORA-27301: OS failure message: No such processORA-27302: failure occurred at: skgxpvfym
关于'kksfbc child completion' wait的一个bug
一个跑在aix操作系统上的Oracle 10.2.0.3的数据库,经常出现'kksfbc child completion' 的等待事件,并且这些等待事件一旦出现,这些等待事件和相关的session永远不会消失。发现这个问题后,首先想到可能是oracle的bug,在metalink上查询这个等待事件,发现两个bug: [@more@]1、Bug 6795880,相关的doc id为:6795880.8A session may go into an infinite spin just after a wait for 'kksfbc child completion'. The spin occurs with a stack including kksSearchChildList -> kkshgnc where kksSearchChildList loops forever.This
opatch option Not available yet问题的解决方法
在给oracle 打补丁的时候,经常出现当前的opatch版本过低,不支持某些参数的情况,报告的提示信息如下: [oracle@oracle ~]$ opatch prereq --helpInvoking OPatch 10.2.0.1.0Oracle interim Patch Installer version 10.2.0.1.0Copyright (c) 2005, Oracle Corporation. All rights reserved..Oracle Home : /oracle/app/10.1Central Inventory : /oracle/oraInventoryfrom : /oracle/app/10.1/oraInst.locOPatch version : 10.2.0.1.0OUI version : 10.2.0.1.0OUI location : /oracle/app/10.1/ouiLog file location : /oracle/app/10.1
opatch error code 73 PrereqSession failed Invalid patch location 解决
Linux Oracle 10.2 RAC打补丁patch-8833280的时候,按照README.html文件在执行补丁适用性检查的时候,报告“PrereqSession failed: Invalid patch location”错误,详细错误信息如下: [oracle@rac1 patch]$ unzip p8833280_10204_Linux-x86.zip[oracle@rac1 patch]$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./8833280Invoking OPatch 10.2.0.4.2Oracle Interim Patch Installer version 10.2.0.4.2Copyright (c) 2007, Oracle Corporation. All rights reserved.PREREQ sessionOracle Home : /u01/app/oracle/produc
CentOS 5中改造RAC的private ip实现双网卡绑定
CentOS 5.4上安装的10G RAC,原来的心跳是单网卡的,需要修改为双网卡。原来的环境如下:eth0 192.168.2.x public ipeth1 192.168.0.x private ip增加了一块网卡,接口名为eth2,需要将eth1与新增加的eth2实现绑定,并使用原来的IP。 修改过程主要涉及到两个问题:1、实现双网卡绑定2、修改RAC Interconnect interface name实现过程如下: [@more@] 1、实现CentOS5的双网卡绑定 在每个节点上以root用户身份进入/etc/sysconfig/network-scripts/目录,修改ifcfg-eth1、ifcfg-eth2文件,然后创建ifcfg-bond0文件,各个文件内容如下:ifcfg-e
rac安装过程中 error while loading shared libraries libpthread.so.0 问题的解决
在CentOS 5上安装Oracle 10.2.0.1 RAC的cluster software的时候,在最后一步,第二个节点,执行root.sh的时候,报告error while loading shared libraries: libpthread.so.0的错误,详细错误信息如下: [root@rac2 crs]# /u01/crs/oracle/product/10.2.0/crs/root.shWARNING: directory '/u01/crs/oracle/product/10.2.0' is not owned by rootWARNING: directory '/u01/crs/oracle/product' is not owned by rootWARNING: directory '/u01/crs/oracle' is not owned by rootWARNING: directory '/u01/crs' is not owned by rootWARNING: