BULK COLLECT FAILS WITH ORA-04030
Recently We have a procedure that reads and distract data from a larger table O_APACHE_LOG(about 40 million rows per day) to many smaller one under some condition for ETL.[@more@]We are using the BULK COLLECT、FORALL and INSERT ALL statements to process data.When we have run the procedure,we capture two exceptions(ORA-04030: 在尝试分配 16408 字节 (koh-kghu call ,pmucalm coll) 时进程内存不足 & ORA-04030).we know that these exceptions occured because Operating system process private memory has
Explain for the Statistics of Execution Plan
SQL> set autotrace traceonlySQL> select * from o_apache_log; 已选择1280000行。 [@more@] Execution Plan---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=8187 Card=1283425 Bytes=264385550) 1 0 TABLE ACCESS (FULL) OF 'O_APACHE_LOG' (TABLE) (Cost=8187 C ard=1283425 Bytes=264385550) Statistics---------------------------------------------------------- 1 recursive calls 0 db block gets
Question about password file name
Yesterday I sent a question about the password file name & SYSDBA to Metalink.oracle.com.The question was that SYS couldn't grant SYSDBA to another user and client couldn't login by SYSDBA. as follows:[@more@]SQL> grant sysdba to shiyihai;grant sysdba to shiyihai第 1 行出现错误:ORA-01994: GRANT 失败: 口令文件缺失或已禁用"SQL> conn system/manager@db134Connected.SQL> conn sys/sys@db134 as sysdbaERROR:ORA-01031: insufficient privilegesWarning: You are no longer connected to ORACLE
oracle 10g中dbconsole的创建案例
手工创建完数据库后,接下来是配置db console了。如下的创建过程供大家参考![@more@]C:Documents and Settingsshiyihai>emca -repos createEMCA 开始于 2007-5-31 9:57:04EM Configuration Assistant 10.2.0.1.0 正式版版权所有 (c) 2003, 2005, Oracle。保留所有权利。输入以下信息:数据库 SID: ora10g监听程序端口号: 1521SYS 用户的口令:SYSMAN 用户的口令:是否继续? [yes(Y)/no(N)]: Y2007-5-31 10:03:31 oracle.sysman.emcp.EMConfig perform信息: 正在将此操作记录到 H:oracle10gcfgtoollogsemcaora10gemca_2007-05-31_09-57-03
oracle 10g手工创建案例(含脚本)
最近公司一项目用到了oracle的10g数据库。虽然自己对10g有过很长时间的关注,不过都是基于理论,趁此在自己的pc机上创建了一个10g的环境。如下是我手工创建的脚本,供大家参考![@more@]第一步:创建密码文件C:Documents and Settingsshiyihai>orapwd file="H:ora10gdbsorapwdora10g.pwd" entries=10 password=sys第二步:编辑初始化参数文件,部分参数跟9i不一样,并nomount启动数据库初始化参数文件init_10g.ora内容如下:ora10g.__db_cache_size=100000000ora10g.__java_pool_size=16777216ora10g.__large_pool_size=1677
数据库性能优化的一些总结(1)
1、适当时水平分割和垂直分割表;[@more@]1、适当时水平分割和垂直分割表;水平分割是按照行将一个表分割为多个表,这可以提高每个表的查询速度,但查询、更新时要选择不同的表,统计时要汇总多个表,因此应用程序会更复杂。 垂直分割是对于一个列很多的表,若某些列的访问频率远远高于其它列,就可以将主键和这些列作为一个表,将主键和其它列作为另外一个表。通过减少列的宽度,增加了每个数据页的行数,一次I/O就可以扫描更多的行,从而提高了访问每一个表的速度。但是由于造成了多表连接,所以应该在同时查询或更新不同分割表中的列的情
那种写法执行效率高
下面的两种情况,那种写法执行效率高。1、delete from subject_data where subject_id in (130,129,127);2、delete from subject_data where subject_id = 130; delete from subject_data where subject_id = 129; delete from subject_data where subject_id = 127;在subject_id列有索引的情况下显然是第一种情况执行效率高。其执行计划如下:Execution Plan---------------------------------------------------------- 0 DELETE STATEMENT Optimizer=CHOOSE 1 0 DELETE OF 'SUBJECT_DATA' 2 1 CONCAT
Kill all sessions of a specified user name
declare ora_user varchar2(30) default 'SCOTT'; begin execute immediate 'alter user '||ora_user||' account lock'; for crs in (select sid,serial# from v$session where username = ora_user) loop execute immediate 'alter system kill session '''||crs.sid||','||crs.serial#||''''; end loop;end;/[@more@]
hint的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*/ 表明如果数据字典中有访问表的统计信息,将基于开销的
一次sql语句优化的反思
5.1节前现网反馈数据库性能很低下,statspack报告发回来后top 5的两个突出的sql语句如下:1、SELECT COUNT(*)FROM (SELECT t0.id, t0.parentid, t0.path, t0.TYPE, t5.NAME, t5.catename, t5.icpcode, t5.icpservid, t5.spname, t5.auditionurl, t5.downloadurl, t5.createdate, t5.expire, t5.coloringprice, t5.singer,
重起oracle rac三节点中rac02主机以解决链路noname问题
1、做数据库全备,并且确认数据库全备的session report正常。2、停数据库 2.1、停listener 2.1.1、lsnrctl stop LISTENER_2 停rac02上的侦听 2.1.2、lsnrctl status LISTENER_2 确认rac02上的侦听是否正常停止 2.1.3、约过半小时ps -ef |grep LOCAL=NO 检查是否还有进程连在数据库上没有释放。 如果没有释放,执行kill -9 `ps -ef|grep LOCAL=NO |awk '{print $2}'` 2.1.4、检查rac02上的session是否还有僵死进程。 2.2、停instance 2.2.1、alter system switch logfile;执行三次,将buffer中的数据写入数据
上午同事的求救邮件,有关监听的异常!
[oracle@pcs357 oracle]$ lsnrctl startLSNRCTL for Linux: Version 9.2.0.4.0 - Production on Apr 23 13:41:02 2007Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.Starting /oracle/product/9.2.0.4/bin/tnslsnr: please wait...TNS-12547: TNS:lost contactTNS-12560: TNS:protocol adapter errorTNS-00517: Lost contactLinux Error: 32: Broken pipe是什么原因?listener.log文件太大了,超过了linux上单个文件不超出2G的限制。[@more@]
有关修改操作系统时间导致实例down掉的一个案例
现网一数据库down掉,在告警日志中有如下的提示:Thu Apr 23 13:41:02 1007Errors in file /oracle/admin/cswap/bdump/cswap_lgwr_19411.trc:ORA-01513: invalid current time returned by operating systemThu Apr 23 13:41:02 1007LGWR: terminating instance due to error 1513Instance terminated by LGWR, pid = 19411文件/oracle/admin/cswap/bdump/cswap_lgwr_19411.trc中的内容如下:/oracle/admin/cswap/bdump/cswap_lgwr_19411.trcOracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit ProductionWith the Partitioning, OLAP a
分区表和分区索引的创建案例
--帐号信息表CREATE TABLE TB_U_ACCOUNT( ACCOUNT_ID NUMBER(20), ACCOUNT_BALANCE_TOTAL NUMBER(13,2), ACCOUNT_BALANCE NUMBER(13,2), DAY_MONEY NUMBER(13,2), MONTH_MONEY NUMBER(13,2), ADD_DAY VARCHAR2(8), ADD_MONTH VARCHAR2(6), ACCOUNT_REGISTER_TIME DATE, ACCOUNT_LAST_CONSUME_TIME DATE, ACCOUNT_STATUS NUMBER(1))PARTITION BY HASH(account_id)( PARTITION PART_ACCOUNT_01 TABLESPACE TBS_BILLING01, PARTITION PART_ACCOUNT_02 TABLESPACE TBS_BILLING01, PARTITION PART_ACCOUNT_03 TAB
cast函数的用法案例
最近一开发人员在创建物化视图的时候抛了如下的异常"ORA-01723: 不允许长度为 0 的列".语句如下:create materialized view v_serviceas select '2' as SERVSOURCE,v1.companycode as icpcode,v1.CompanyName as spname,v1.ShortName as spshortname,'' as SERVIDALIAS,v2.ServiceCode as icpservid,v2.ProductName as servname, v2.ProductStatus as servstatus,'' as ServAttr,'' as umflag,v2.ServiceType as servtype,'' as UsageDesc,'' as wwwurl,'' as introURL,v2.ChargeType as ChargeType, v2.Fee as Price,v2.ChargeD
使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g(五)
检查闪回恢复区空间使用率。 SQL> select * from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES ------------- ----------- ---------- ----------------- --------------- +RECOVERYDEST 1572864000 331366400 0 7 SQL> select * from v$flash_recovery_area_usage; FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES ------------ ------------------ ------------------------- --------------- CO
使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g(四)
8. 安装 Oracle 数据库 10g 第 2 版下载后,在 rac1 上以 oracle 用户身份执行rac1-> /u01/staging/database/runInstaller欢迎页面:单击 Next。 选择安装类型: 选择 Enterprise Edition。指定 Home 详细内容: 名称:OraDb10g_home1 路径:/u01/app/oracle/product/10.2.0/db_1指定硬件集群安装模式: 选择 Cluster Installation。 单击 Select All。特定于产品的必要条件检查: 忽略有关物理内存要求的警告。选择配置选项: 创建数据库。 选择数据库配置: 选择 Advanced。 摘要:单击 Install。 数据库模板: 选择 General Purpose
使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g(三)
以 root 用户身份登录并执行 system-config-network,以修改网络配置。 IP 地址:双击每个以太网设备,并使用下面的表进行必要的更改。 设备IP 地址子网掩码 默认网关地址eth0192.168.2.132255.255.255.0192.168.2.1eth110.10.10.32255.255.255.0<保留空白>MAC 地址:导航到 Hardware Device 选项卡,并探测每个以太网设备的新 MAC 地址。 主机名和 DNS:使用下面的表对 DNS 选项卡中的项进行必要的更改,然后按 CTRL-S 保存。 主机名 首选 DNS备用 DNSDNS 搜索路径rac2.mycorpdomain.com输入 DNS IP 地址或保留空白。输入 DNS IP 地
使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g(二)
同步客户 OS 与主机 OS 的时间。在安装 Oracle 集群件和 Oracle 数据库软件时,Oracle 安装程序将首先在本地节点上安装软件,然后再将软件远程复制到远程节点。如果两个 RAC 节点的日期和时间未同步,您可能会收到类似于以下内容的错误。 "/bin/tar: ./inventory/Components21/oracle.ordim.server/10.2.0.1.0: time stamp 2006-11-04 06:24:04 is 25 s in the future"要确保成功安装 Oracle RAC,虚拟机上的时间必须与主机上的时间同步。执行下面的步骤,以 root 用户身份同步时间。 执行“vmware-toolbox”以显示 VMware T
使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g(一)
如下文档摘自oracle官方网.作者:Vincent Chan 2007 年 1 月发表 于 10 月份 Oracle OpenWorld 2006 上推介的 Oracle 坚不可摧的 Linux 旨在为 Red Hat Linux 提供企业级支持服务,更快地修复错误,以及显著降低支持价格。此外,Oracle 自己的 Enterprise Linux(基于包含额外错误修补的 Red Hat Advanced Server 第 4 版 (Update 4))提供免费下载。 因此,现在可以通过 VMware Server(VMware 提供的一个免费虚拟环境)在家用电脑上免费使用运行在 Red Hat Advanced Server 上的 Oracle 真正应用集群 (RAC) 10g。 VMware Server 允许您在