Posts Tagged ‘Oracle’

在Vmware上面安装Oracle 11gR2 Rac+ASM

January 11th, 2010

找了一台配置一般的PC服务器安装了Vmware esx版本,然后在上面安装了2-nodes的11gr2 Rac+asm.其间遇到的最大的问题是资源不够。目前每个节点分配1.8G内存,ASM由4个3G的虚拟硬盘组成。

[grid@oradb1 ~]$ olsnodes
oradb1
oradb2

[grid@oradb1 ~]$ crs_stat -t
Name           Type           Target    State     Host       
————————————————————
ora.DATA.dg    ora….up.type ONLINE    ONLINE    oradb1     
ora….ER.lsnr ora….er.type ONLINE    ONLINE    oradb1     
ora….N1.lsnr ora….er.type ONLINE    ONLINE    oradb1     
ora.asm        ora.asm.type   ONLINE    ONLINE    oradb1     
ora.eons       ora.eons.type  ONLINE    ONLINE    oradb1     
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE              
ora….network ora….rk.type ONLINE    ONLINE    oradb1     
ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE              
ora.ons        ora.ons.type   ONLINE    ONLINE    oradb1     
ora….SM1.asm application    ONLINE    ONLINE    oradb1     
ora….B1.lsnr application    ONLINE    ONLINE    oradb1     
ora.oradb1.gsd application    OFFLINE   OFFLINE              
ora.oradb1.ons application    ONLINE    ONLINE    oradb1     
ora.oradb1.vip ora….t1.type ONLINE    ONLINE    oradb1     
ora….SM2.asm application    ONLINE    ONLINE    oradb2     
ora….B2.lsnr application    ONLINE    ONLINE    oradb2     
ora.oradb2.gsd application    OFFLINE   OFFLINE              
ora.oradb2.ons application    ONLINE    ONLINE    oradb2     
ora.oradb2.vip ora….t1.type ONLINE    ONLINE    oradb2     
ora.orcl.db    ora….se.type ONLINE    ONLINE    oradb1     
ora….ry.acfs ora….fs.type ONLINE    ONLINE    oradb1     
ora.scan1.vip  ora….ip.type ONLINE    ONLINE    oradb1   

Review我对一个Oracle数据库系统的改造

July 16th, 2009

一年前,我接管了一套Oracle数据库系统.这套系统主要是为制造业工厂生产线服务的应用系统.当时的系统的状况是,我来之前整套系统都是由老外负责Build.但是服务器的硬件在国内由集成商搭建,后期因为缺少技术人员没人管,基本处于放羊阶段.最多有硬件坏了,安排集成商更换一下.数据库是Oracle10G.在使用过程中经常down机.基本每周必有一down.很多时候系统down了,生产线的工人就只能停下来,Call老外,让老外重起,或者手工切换一下节点.后来领导可能觉得实在麻烦,拍着我的肩说,你管一下吧.于是我上了.

虽然我已经有年头没摸Oracle了,但是我想我作为一个Oracle Dba的思路还是有的.毕竟在N年前,我是Oracle 8I的OCP:)

Review一下我的工作记录,从当初到现在,我大致做了这么几件事:

1.收集能收集到所有的系统信息,包括OS/DB的版本,内核参数,硬件微码版本。
升级Os的版本从AIX53-02到AIX53-07.
升级系统微码到一个比较新的Level,这个操作fix了一个内置网卡在大流量下会假死的一个问题.
调整内核参数,使其符合Oracle数据库的环境.

2.分析所有的系统日志文件,包括对前面几次Down机生成的Core文件.解决了Hacmp的dms问题.
3.调整存储。以前的状况是一个DS4300上面,就划出一个几百G的Share VG.所有的数据库相关文件,包括Tablespaces,Controlfile,RedoLog,Archive file都在这个Vg里面。
我在一年的时间里面,分2步进行调整:
Step1: 去年的时候重新划分3个VG,分别存放Datafiles,Redo log,Archive log.将老的数据迁移到新的Vg里面,我创建的每个PV为64gb.旧的空间回收.基本消灭Io Wait。
Step2:今年上半年刚做完的,将回收的空间做成了ASM,将基于文件系统的Oracle迁移到Asm的架构里面.(这里参考了Ningoo的文章)
完成上面的操作,再也没有发现临时表空间会突然被一个SESSION排序占满的情况.

4.我只对Oracle的参数做了微调,毕竟经过前面的分析,因为不合理的参数导致的Oracle down的情况几乎没有。

5.分析Oracle AS的错误日志,发现其中有某些线程导致Memory Out的错误,提交给老外Fix。俺也不是万能的:)

6.增加Monitor脚本。对文件系统和表空间的监控结果按照Email的方式,定时发到我的邮箱。定时移出Archive log file.

7.给系统增加Netbackup的解决方案,制定备份策略。现在Rman+Tape library能够满足需求了。

8.根据Auditor的要求,打开了审计功能。清理掉大多数的默认用户。要求开发者将数据库用户密码存储管理用密文存储。

9.安装Quest Vas+Sudo。将OS用户集成到公司统一的Ldap环境里面。基本杜绝误操作的概率。就算出现误操作,也能揪出人来,再前面挡着:)

10.安装AWR.

11.定时schedule合理的Downtime.在我的理解里面planned的downtime不是down机,也不会影响你的SLA的水平。所以,我现在基本3个月来一次。最终用户也能接受。

现在这个系统已经很长一段时间>8个月没有非正常停机了,Workload的各项指标也比较正常。

回顾以上操作,也许有人会问每看见你去优化SQL呢?呵呵,我首先不是Application的owner,另外我这边通过Awr生成的一些sql的报告来看,基本上没有太离谱的sql。当然,老外写的sql确实还不错。更重要的是,我觉得好的一个系统规划,能够消灭70%以上的性能问题。

在DB2v9.7上面简单测试CLPPLUS

June 25th, 2009

在DB2为了提高Oracle的兼容度,在9.7推出了和SQLPLUS非常相似的CLPPLUS。这个命令行环境为那些数据Oracle习惯的技术人员提供了一个非常熟悉的界面来操作DB2数据库。我简单测试了一下基本的功能:

1) DUAL
SQL> select to_char(to_date('2009-09-05','yyyy-mm-dd'),'day') from sysibm.dual;

确实基本上和sqlplus的操作体验差不多,为那些Oracle转到Db2的技术人员提供了一个比较容易上手的交互界面。

1
———–
saturday

2) Set timing on 这个功能最有用:)

SQL> set timing on;
SQL> select count(*) from empcp;

          1
———–
         42
Elapsed time: 6 millisecond(s)

3) Spool

SQL> spool 1.out;
SQL> select count(*) from empcp;

          1
———–
         42
SQL> spool off;

4) Describe table

SQL> desc emp;

Name                 Data Type       Type schema       Length    Scale Nullable
——————– ————— ————— ——– ——– ——–

EMPNO                CHARACTER       SYSIBM                 6        0 N
FIRSTNME             VARCHAR         SYSIBM                12        0 N
MIDINIT              CHARACTER       SYSIBM                 1        0 Y
LASTNAME             VARCHAR         SYSIBM                15        0 N
WORKDEPT             CHARACTER       SYSIBM                 3        0 Y
…………

5) Host command

SQL> host ls
1.out
clpplus.log

打开Oracle的审计功能

June 18th, 2009

因为公司审计的原因,需要在Oracle上面打开Audit功能。


sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on Thu Jun 18 09:51:28 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
Connected to:
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

SQL> show parameter audit

NAME                      TYPE        VALUE
------------------------- ----------- -----------------------
audit_file_dest           string      /data/SID/trace/adump
audit_sys_operations      boolean     FALSE
audit_syslog_level        string
audit_trail               string      NONE

1.打开审计

SQL> alter system set audit_sys_operations=TRUE scope=spfile;


SQL> alter system set audit_trail=XML scope=spfile;

2.重启实例

3.SQL> show parameter audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /data/SID/trace/adump
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      XML

4.检查日志文件
在adump目录下的日志文件里面,可以看到你的操作都记录在案了。

iLearn的邮件问题

November 7th, 2007

我们的ilearn系统以前是直接调用ilearn服务器上面的sendmail来发邮件。但是,在solaris上面,sendmail的漏洞比较多。所以,我关掉了所有对外服务器的sendmail功能。但是ilearn怎么办呢?

我们其实可以修改<ias_home>/j2ee/oil/applications/ilearning/ilearn/WEB- INF/ilearning.properties 这个文件,把smtp server指向到一个安全的email server地址里面,因为ileanr的对smtp的调用没有涉及到安全验证,所以在新的mail server的配置里面,我们必须设置邮件转发的信任。

最后记得restart。

Oracle iLearning的安装配置

December 16th, 2005

最近一周一直在研究Oracle ilearning的安装和配置。现在终于初步完成整个系统测试平台的搭建。

Oracke iLearning作为业界领先的e-learning的方案,已经在国内有不少成功部署的项目,包括太平洋保险,东方航空,中国联通等等

ilearn
在整个安装过程里面,应该注意几点:

1.9IAS和数据库应该分为至少2台机器安装。

2.安装的时候,最好先做好DNS域名解析

3.在对work flow做配置的时候,会要求执行一系列的sql,这个时候会碰到9ias一个bug.不用理会tnsping的结果,只要sqlplus能正常执行就可以了。

4.整个安装最难的步骤应该在sendmail和workflow的联合配置这里。在配置这个步骤之前一定要保证你的sendmail和workflow一定要能正确工作.

5.如果要部署分布式的内容服务器,一定要先在apache里面配置虚拟目录。

6.和ias性能相关的几个配置文件是:opmn.xml,httpd.conf,ilearning.properties

继续研究中….

把10 rac更改为archive模式

May 15th, 2005

os:redhat  as3+u3

db:oracle 10.1.0.4

1.建立archive log的目录

mkdir -p /opt/archive_log

2.设置LOG_ARCHIVE_DEST_1

alter system set log_archive_dest_1=’LOCATION=/opt/archive_log/’ scope=spfile sid=’*';

3.设置log_archive_start

alter system set log_archive_start=true scope=spfile sid=’*';

4.将cluster暂时改成false

alter system set cluster_database=false scope=spfile sid=’orcl1′;

5.将orcl1启动到mount状态

6.alter database archivelog;

7.alter system set cluster_database=true scope=spfile sid=’*';

8.startup 2个实例

archive 修改完成,对数据库做正常的dml操作后,archive文件可以出现,但是在startup的信息里面,有:ORA-32004: obsolete and/or deprecated parameter(s) specified.觉得很郁闷,不知道是不是没有设置的flashblack的原因?

郁闷,一个简单的问题花了一个通宵

April 22nd, 2005

在客户那里糗到家了…..
一个客户那里说他们的数据库性能突然变得很慢,每隔1个小时要重启,一问数据库的版本是8.1.6,什么补丁没有打。alert.log没有明显的错误. 当时第一个反映就是数据库的bug,于是就建议将数据库升级到8.1.7.4。然后就开始找了一台服务器安装8.1.7.4,导入测试数据后,发现问题依 旧,傻眼。

只好老老实实分析session_wait,把全表扫描的sql抓出来,分析执行计划。结果发现几个大表的上面的index都没有起作用,连忙查看表的结 构,发现indewx都没了,把客户叫过来一问,发现使他们在维护数据的时候,忘记建立索引。把索引加上后,数据库恢复正常了。最后还是把数据库给升级到 8.1.7.4.

这个教训告诉我:对于oracle,任何的想当然,都是危险的!

安装10g crs几个注意的地方

April 17th, 2005

最近和几个网友讨论10g rac的安装,有几个需要注意的地方
1./etc/hosts文件

要保证你的主机名是你的public node name.

2.vip的ip

要保证你的vip的地址是有效的

3.重新安装crs,要对上一次安装的crs,清理干净

rm -f /etc/init.d/init.cssd
rm -f /etc/init.d/init.crs
rm -f /etc/init.d/init.crsd
rm -f /etc/init.d/init.evmd
rm -f /etc/rc2.d/K96init.crs
rm -f /etc/rc2.d/S96init.crs
rm -f /etc/rc3.d/K96init.crs
rm -f /etc/rc3.d/S96init.crs
rm -f /etc/rc5.d/K96init.crs
rm -f /etc/rc5.d/S96init.crs
rm -Rf /etc/oracle/scls_scr
rm -f /etc/inittab.crs
cp /etc/inittab.orig /etc/inittab

并且,对vote disk和crs disk需要format!

ORA-07445

March 19th, 2005

碰到ORA-07445(:
在日志里面看到大量的错误日志:

ORA-07445: exception encountered: core dump [] [] [] [] [] []
Thu Mar 17 15:11:21 2005
Trace dumping is performing id=[cdmp_20050317151121]
Thu Mar 17 15:11:45 2005
Errors in file /oracle/app/admin/orcl/udump/orcl1_ora_1056886.trc:
ORA-07445: exception encountered: core dump [] [] [] [] [] []
Thu Mar 17 15:11:45 2005
Trace dumping is performing id=[cdmp_20050317151145]
Thu Mar 17 15:12:12 2005
Errors in file /oracle/app/admin/orcl/udump/orcl1_ora_1024112.trc:
ORA-07445: exception encountered: core dump [] [] [] [] [] []
应 用也变得很不正常了,在freezr的提示下,想起来可能和自己刚刚加的几个函数索引有关,于是马上把函数索引drop掉,然后重新编译了 trigger,应用终于正常了。令人郁闷的是,上次force cursor的时候碰到ora-0600,现在用函数索引碰到ora-07445。9.2.0.4还不是很稳定啊…..

完成10G RAC在AS 3.1平台上面的安装

January 25th, 2005

奋战了一天加一个通宵,终于完成,总算有点收获…
平台 win2003 + vmware gsx 3.1

硬件配置:1g内存

体会:其实安装不算难,关键在于对vmware的配置,在这里兜了很大一圈,不亲自动手做确实不知道。

» Read more: 完成10G RAC在AS 3.1平台上面的安装

优化模式的选择对sql执行计划产生的不同的影响

December 24th, 2004

今天捕获到一个非常耗资源的sql语句,拿出来分析了一下,可以看到优化模式的选择对sql执行计划产生的不同的影响.

» Read more: 优化模式的选择对sql执行计划产生的不同的影响