意义在于过程,幸福在于结果
自我介绍
切换风格
订阅我的Blog
博客日历
文章归档...
最新发表...
博客统计...
网站链接...
资源
===========================================================
了解autotrace的输出
===========================================================

对以下autotrace输出内容的解释

SQL> select * from emp,dept where emp.deptno(+)=dept.deptno;

已选择15行。


执行计划
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=5 Card=14 Bytes=798)
1 0 HASH JOIN (OUTER) (Cost=5 Card=14 Bytes=798)
2 1 TABLE ACCESS (FULL) OF 'DEPT' (Cost=2 Card=4 Bytes=80)
3 1 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=14 Bytes=518)

 查看全文
kennyblues 发表于:2009.01.07 21:33 ::分类: ( JOB ) ::阅读:(30次) :: 评论 (0) :: 引用 (0)
===========================================================
如何查rman每个数据文件的备份开始及结束时间
===========================================================

select * from V$BACKUP_ASYNC_IO。

这个视图能比较好的反应每个文件的备份间隔。


kennyblues 发表于:2008.12.26 11:15 ::分类: ( JOB ) ::阅读:(45次) :: 评论 (0) :: 引用 (0)
===========================================================
cpu+wait for cpu 到底是cpu空闲还是cpu不够
===========================================================

在看AWR 报告时一直对cpu+wait for cpu有所疑问。从字面看感觉是cpu忙,但实际上在做monitoring的时候cpu还可以。问了一下oracle的工程师,给到的回答如下:

"wait" processes just mean that there are CPUs waiting around for work to do - the "wait" processes up all the idle time of your system.

答案很清除了。


kennyblues 发表于:2008.12.26 11:03 ::分类: ( JOB ) ::阅读:(77次) :: 评论 (0) :: 引用 (0)
===========================================================
ORA-02020: too many database links in use解决方法
===========================================================

今天程序员报错:

trace_log = run-time error ORA-02020: too many database links in use

解决方式如下:

 查看全文

kennyblues 发表于:2008.12.26 11:00 ::分类: ( JOB ) ::阅读:(45次) :: 评论 (0) :: 引用 (0)
===========================================================
/etc/oratab 下的内容解释
===========================================================

Subject: AUTOMATIC STARTUP AND SHUTDOWN OF ORACLE DATABASE INSTANCES
Doc ID: NOTE:61333.1 Type: BULLETIN
Last Revision Date: 09-NOV-2004 Status: PUBLISHED


AUTOMATIC STARTUP AND SHUTDOWN OF ORACLE DATABASE INSTANCES

Document ID: 105870.898

This document discusses methods for automatically starting up and shutting
down Oracle instances during UNIX system startup or shutdown. Specific
schemes for performing these actions on the most popular UNIX platforms are
presented, along with a listing of the important scripts and directories that
come into play in the process.

For more detailed explanations and alternatives, please refer to the System
Administrator's Guide for your UNIX platform.


Files of Interest In Your Oracle Installation
---------------------------------------------
The following list summarizes the functions performed by the different Oracle
startup and shutdown scripts (which are invoked during system startup and
shutdown, respectively).

Script Description
-------------------------|--------------------------------------------------
$ORACLE_HOME/bin/dbstart |Ensures a clean startup of database instance(s),
|even after system failure
-------------------------|--------------------------------------------------
$ORACLE_HOME/bin/dbshut |Ensures a clean shutdown for data base instances
-------------------------|--------------------------------------------------
/etc/oratab or |Contains a field that specifies whether a
/var/opt/oracle/oratab |particular database instance should be brought
|up/down at system startup/shutdown time. By
|specifying "Y" in this field, the "dbstart" and
|"dbshut" scripts bring this database instance up or
|down.
-------------------------|--------------------------------------------------


kennyblues 发表于:2008.10.27 15:52 ::分类: ( JOB ) ::阅读:(97次) :: 评论 (0) :: 引用 (0)
===========================================================
SID 变更后如何配置EM
===========================================================

对于不用dbca创建数据库而是copy 数据文件改sid的情况,em要做一些配置修改

1.在/etc/oratab 中加入sid:$ORACLE_HOME:Y
2.dbca-->configure database,选enterprise 选项进行安装。
3.emca -repos drop
4.emca -repos create
执行到4为止,仍然出错,说没有dbsnmp这个用户。
5.sql>@?/rdbms/admin/catsnmp.sql -->创建dbsnmp用户及相关表
6.emca -config dbcontrol db

然后就可以了。

但是,有一个问题要注意:

如果不采用spfile的格式,而是在dbs目录下用init<sid>.ora的格式,而这个init<sid>.ora里面又是采用ifile=......方式指向另一个目录的init文件。对于这种格式,oracle在做dbca的时候会将ifile...那一句加到最终的init文件中去,这样就导致一个循环指向,在打开数据库时会报ora-03113: end-of-communication。如果用startup nomount pfile=....时会报segmentation fault. 这点要注意。


kennyblues 发表于:2008.10.27 15:45 ::分类: ( JOB ) ::阅读:(261次) :: 评论 (8) :: 引用 (0)
===========================================================
如何重新安装OLAP
===========================================================

在网上看到说创建olap时运行olap.sql即可,在这里做一些补充。

 查看全文
kennyblues 发表于:2008.10.14 10:56 ::分类: ( JOB ) ::阅读:(59次) :: 评论 (0) :: 引用 (0)
===========================================================
ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_DDL"
===========================================================

在10g打完一个CPU后,在做export时发现以下错误:

EXP-00008: ORACLE error 4063 encountered
ORA-04063: package body "SYS.DBMS_DDL" has errors
ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_DDL"
ORA-06512: at line 1
EXP-00056: ORACLE error 1403 encountered
ORA-01403: no data found
EXP-00000: Export terminated unsuccessfully

 查看全文
kennyblues 发表于:2008.09.03 14:17 ::分类: ( JOB ) ::阅读:(388次) :: 评论 (1) :: 引用 (0)
===========================================================
如何用oradebug跟踪某个session
===========================================================

用oradebug可以对某个session的10046事件做跟踪。

以下是从网上摘抄的例子,在这里记录一下。

 查看全文
kennyblues 发表于:2008.09.03 13:48 ::分类: ( JOB ) ::阅读:(70次) :: 评论 (0) :: 引用 (0)
===========================================================
青春是一阵路过的风
===========================================================

8月16日的午夜,点开了苏有朋与舒高的"一路顺风".平静的夜晚以及那一点淡淡的离愁别绪.想起了大学,想起了难忘的毕业.这首歌用bass做的间奏.悄悄的就过渡到了下一段.

用这首歌纪念一下美好的青春.想念校园里那一缕缕透过梧桐的阳光,那些些必须用脚当刹车的单车.那踩上去沙沙作响的秋黄落叶,别在腰间的walkman,用牙咬过来延长电量的电池,巨大的五寸盘,我的turbo c,pascal教程,还有....那一曲曲纯净而羸弱得象纸一般的爱情.

青春是一阵路过的风.

当风吹过,谁不曾泪蒙蒙.

我们是一些散落的歌.

你是否在唱,你是否在听?


kennyblues 发表于:2008.08.16 00:35 ::分类: ( Music ) ::阅读:(104次) :: 评论 (0) :: 引用 (0)
===========================================================
unix平台上oracle如何实现windows域用户帐号
===========================================================
2种方式,一种是采用欺骗性方式,但不安全,一种采用kerboras认证。 查看全文
kennyblues 发表于:2008.08.08 14:47 ::分类: ( JOB ) ::阅读:(2317次) :: 评论 (140) :: 引用 (0)
===========================================================
广州印象
===========================================================

看了李承鹏的blog,讲到广州。写得不错。我爱广州。

http://blog.sina.com.cn/s/blog_46e7ba41010005iw.html


kennyblues 发表于:2008.07.11 13:42 ::分类: ( Music ) ::阅读:(53次) :: 评论 (0) :: 引用 (0)
===========================================================
v$session的妙用(引用)
===========================================================

以下文章出处:

http://www.oracle.com.cn/viewthread.php?tid=38191&extra=page%3D1%26amp%3Bfilter%3Ddigest&page=1

在工作中,有时要给开发提供session的open_cursor,虽然在toad里面都能看到,但通过v$open_cursor也是很方便的。

比如:

select b.sid,a.sql_text from v$sql a,v$open_cursor b where a.hash_value in (select hash_value from v$open_cursor where sid=72) and b.sid=72 group by b.sid,a.sql_text

 查看全文
kennyblues 发表于:2008.06.26 14:03 ::分类: ( JOB ) ::阅读:(112次) :: 评论 (0) :: 引用 (0)
===========================================================
左右外连接的一些小结
===========================================================

我们可以用select ....from table1 [left|right|inner|full] join table2 on table1.col1=table2.col2的方式来实行各种外连接。

也可以用(+)来实现外连接。在用(+)来实现外连接时,有几点是需要注意的:

 查看全文
kennyblues 发表于:2008.06.25 15:02 ::分类: ( JOB ) ::阅读:(106次) :: 评论 (0) :: 引用 (0)
===========================================================
什么时候重建索引
===========================================================

在网上查找,现引用一下:

 查看全文
kennyblues 发表于:2008.06.25 13:53 ::分类: ( JOB ) ::阅读:(65次) :: 评论 (0) :: 引用 (0)
===========================================================
oracle 10g的connect by bug修复
===========================================================

在系统升级到10g后,碰到了一些connect by的bug。如:

select">select AvGroupLevel, AvGroupCode, AvGroupCodeParent
2 from AvGroupCodeTable where SUBSTR(NLS_LOWER(DataAreaId),1,3) = SUBSTR(NLS_LOWER('845'),
3 START WITH AvGroupCode = '110'
4 CONNECT BY PRIOR AvGroupCodeParent = AvGroupCode
5 and SUBSTR(NLS_LOWER(DataAreaId),1,3) = SUBSTR(NLS_LOWER('845'),1,3)
6 order by AvGroupLevel DESC
7 ;
and SUBSTR(NLS_LOWER(DataAreaId),1,3) = SUBSTR(NLS_LOWER('845'),1,3)
*
ERROR at line 5:
ORA-00600: internal error code, arguments: [qkacon:FJswrwo], [4], [], [], [], [], [], []

 查看全文
kennyblues 发表于:2008.06.18 09:56 ::分类: ( JOB ) ::阅读:(173次) :: 评论 (0) :: 引用 (0)
===========================================================
export中涉及到时区的问题
===========================================================

由于在一台server中既有美国的数据库,又有菲律宾的数据库,因此,就存在一个市区(TimeZone)的问题。现在服务器以美国的时间的为准,则菲律宾的db在重起listener及重起库时,需要加export TZ=GMT-8。

同时,菲律宾的db备份采用export。在备份参数中,用了consistent=y。在备份log中却发现了以下错误:

EXP-00056: ORACLE error 1466 encountered
ORA-01466: unable to read data - table definition has changed

这也是与timezone有关,解决方法有:

1.去掉参数consistent=y

2.在备份脚本中加export TZ=GMT-8


kennyblues 发表于:2008.06.17 15:19 ::分类: ( JOB ) ::阅读:(97次) :: 评论 (0) :: 引用 (0)
===========================================================
如何在toad中正确显示执行计划
===========================================================

在toad中要显示执行计划,在网上查了一下,有3种方法。toad在缺省安装时,在view-->option-->oracle-->general 中设置的table是toad_plan_table。如果要管理许多数据库,由于这个是缺省设置,因此,可以在新增一个数据库信息时,通过设置tools-->server side objects wizard进行对plan_table的设置达到大家都统一用这张表。

用这个wizard进行设置时,toad无非就是create这张toad_plan_table表,然后创建一个public synonym。让各个schema都能用。

有时候我们喜欢用system登陆数据库然后用toad的session browser去看session的信息,这个时候,会出现一个'objects referenced in this sql may not be available to the current user'。此时可以用select * from dba_objects where object_name='TOAD_PLAN_TABLE' 去检查。如果只有public synonym 及toad.toad_plan_table,可以将public synonym重新删除并grant all on toad_plan_table to public,然后重新登陆就可以了。

如果发现有其他用户也有toad_plan_table的object,将其删除即可。


kennyblues 发表于:2008.06.13 11:54 ::分类: ( JOB ) ::阅读:(125次) :: 评论 (0) :: 引用 (0)
===========================================================
Rman -按时间进行不完全恢复-restore archivelog
===========================================================

在日常恢复中,我们会遇到这样一种情况,当我们在脚本用set until time "to_date('20080520 12:00:00','YYYYMMDD hh24:mi:ss')";设置了restore controlfile,restore datafiles之后.我们怎么找到我们想恢复的archive log?

 查看全文

kennyblues 发表于:2008.06.01 18:37 ::分类: ( JOB ) ::阅读:(143次) :: 评论 (0) :: 引用 (0)
===========================================================
oracle 10g exp ORA-00932 错误
===========================================================

EXP-00056: ORACLE error 932 encountered
ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR
EXP-00056: ORACLE error 932 encountered
ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR
EXP-00000: Export terminated unsuccessfully

要解决这个错误,需要运行2个脚本:

1.sql>@?/rdbms/admin/catmetx.sql

2.sql>@?/rdbms/admin/utlrp.sql

运行完问题解决。


kennyblues 发表于:2008.05.30 13:14 ::分类: ( JOB ) ::阅读:(190次) :: 评论 (0) :: 引用 (0)
===========================================================
如何检查及恢复坏块
===========================================================

昨天数据库报了些错。这个错并无坏块。但还是把相关资料罗列一下

KCF: write/open error block=0x1095e online=1
file=10 D:ORACLEORADATACNAUDITTBSP013.ORA
error=27070 txt: 'OSD-04016: Error queuing an asynchronous I/O request.
O/S-Error: (OS 1117) The request could not be performed because of an I/O device error.'
Thu May 29 21:43:21 2008
Errors in file d:oracleadmincnauditbdumpcnaudit_dbw0_1760.trc:
ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode
ORA-01114: IO error writing block to file 10 (block # 67934)
ORA-01110: data file 10: 'D:ORACLEORADATACNAUDITTBSP013.ORA'
ORA-27070: skgfdisp: async read/write failed
OSD-04016: Error queuing an asynchronous I/O request.
O/S-Error: (OS 1117) The request could not be performed because of an I/O device error.

 查看全文
kennyblues 发表于:2008.05.30 08:53 ::分类: ( JOB ) ::阅读:(105次) :: 评论 (0) :: 引用 (0)
===========================================================
在windows平台如何每隔几秒去执行一个procedure
===========================================================
可以采用以下方法进行: 查看全文
kennyblues 发表于:2008.05.12 14:50 ::分类: ( JOB ) ::阅读:(66次) :: 评论 (0) :: 引用 (0)
===========================================================
如何快速的拿到sql的执行计划。
===========================================================

有时候,当toad这些工具的plan_table设置得有问题时,或者set autotrace traceonly还要等执行完才能拿到执行计划。可以通过以下方法来获得sql的执行计划:

1.sql>explain plan for sql_statement.

2.sql>select * from table(dbms_xplan.display);

在此记录一下。


kennyblues 发表于:2008.05.12 14:22 ::分类: ( JOB ) ::阅读:(113次) :: 评论 (0) :: 引用 (0)
===========================================================
用optimizer_index_cost_adj让sql走索引
===========================================================
在OLTP系统中,设置参数optimizer_index_cost_adj的值从1-50,可以让oracle趋向于走索引。通过实践证明,it works
kennyblues 发表于:2008.05.12 14:20 ::分类: ( JOB ) ::阅读:(93次) :: 评论 (0) :: 引用 (0)
===========================================================
为什么看不到我的OracleJobScheduler服务--oracle10g BUG解决
===========================================================

今天碰到一个Oracle10g的Bug,对于windows平台下的oracle,当db是从9i升级到10g后,是看不到OracleJobScheduler<SID>服务的。这样,就无法使用dbms_scheduler包了。解决方法如下;

1.Shutdown all services of oracle.

2.oradim -DELETE -SID <YOUR_SID>

3.oradim -NEW -SID <YOUR_SID> -STARTMODE auto

执行后,就可以发现OracleJobScheduler<SID>服务出现了,但是为禁止状态,可以手工改状态为automatic或manaual,然后start。

注意,要运行dbms_scheduler包,还需要帐号具有批处理作业登陆的权限哦。


kennyblues 发表于:2008.04.03 14:49 ::分类: ( JOB ) ::阅读:(231次) :: 评论 (0) :: 引用 (0)
===========================================================
10g 自动内存管理--当前各参数值的的大小
===========================================================
10g开始,内存参数如shared_pool_size,db_cache_size在sqlplus中用show parameters都会显示为0,那么在当前状态下如何获得各个pool的值呢? 查看全文
kennyblues 发表于:2008.03.28 14:01 ::分类: ( JOB ) ::阅读:(67次) :: 评论 (0) :: 引用 (0)
===========================================================
如何判断pga是否足够
===========================================================
今天在oracle 9i sql tuning上看到一个如何判断pga是否需要增加的脚本。在此做一个记录: 查看全文
kennyblues 发表于:2008.03.26 14:32 ::分类: ( JOB ) ::阅读:(113次) :: 评论 (0) :: 引用 (0)
===========================================================
读后感:oracle性能调整 Shared pool深入分析及性能调整
===========================================================

今天在网上读了文章:oracle性能调整 Shared pool深入分析及性能调整。

在这篇文章中,对以下问题做了比较深刻的解释:

1.为什么程序中引用了绑定变量可以加快效率

2.ORA-04031的成因

 查看全文
kennyblues 发表于:2008.03.24 16:45 ::分类: ( JOB ) ::阅读:(192次) :: 评论 (0) :: 引用 (0)
===========================================================
unix 中的&&与||命令
===========================================================

在unix中,执行命令时我们希望有以下几种情况:

1.当第一个命令成功时,才接着做下一个命令。

2.当第一个命令失败时,才接着做下一个命令。

对于1,可以在脚本中用&&命令实现:

cp *.doc ./test&&rm *.doc

对于2,可以在脚本中用||命令实现:

mv *.doc ./test||mkdir test --如果不存在test目录,则创建。

综合举例:

mv *.doc ./test/||mkdir test&&mv *.doc ./test/

意思是:将*.doc 移到./test目录中,如果不存在test目录就创建这个目录,再将*.doc文件移到test目录中。

3.在脚本中连续执行命令:

(命令1;命令2.....)


kennyblues 发表于:2008.03.21 15:01 ::分类: ( Unix/Linux ) ::阅读:(99次) :: 评论 (0) :: 引用 (0)
===========================================================
Windows平台 用邮件方式发送export备份情况
===========================================================
windows平台,对于export备份,希望能在备份结束后将出错信息发给相关人员。可以这么做: 查看全文
kennyblues 发表于:2008.03.19 15:26 ::分类: ( JOB ) ::阅读:(104次) :: 评论 (0) :: 引用 (0)