注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

欢迎光临我的博客

 
 
 

日志

 
 

AIX-HA-ORA-WAS双机互备  

2008-07-07 15:11:32|  分类: unix |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

AIX-HA-ORA-WAS双机互备

cqw@ufida.com.cn

 

一、            前言

Ø         本文是根据实际项目环境总结得出,有些细节可能有所忽略,意在帮助了解整过实施过程。

Ø         Oracle与WAS实现双机互备。〔A机数据库,B机应用〕

Ø         Oracle版本为9208。[10g更简单一点,不用升级。]

Ø         Was版本为6107,NC版本5.011

Ø         WAS在两台机器上做垂直集群。

Ø         AIX版本为5304,HA版本5.3

Ø         小机型号P570,4C16G

Ø         存储为DS4300,RAID5,hdisk2,裸设备。

Ø         操作系统已经由IBM工程师安装完毕,HACMP也安装了,但没有配置。

Ø         关键词:AIX5.3、oracle9i、WAS6、NC5、HACMP5.3、裸设备、双机互备。

Ø         阅读对象:用友实施顾问,有基本的AIX和oracle基础。

二、            系统要求

Ø         两台机器必须有中文字符集Zh_CN,Zh_CN.gb18030

Ø         两台机器 /文件系统不少于2G

Ø         两台机器 /tmp文件系统不少于2G

Ø         两台机器 /swap文件系统不少于4G,本环境是16G内存,所以swap也设置成16G。如果是8G或者8G以下内存,swap应该是内存的两倍大小。

Ø         检查当前系统参数及调整

# lsattr -El sys0

参数                     建议值

maxuproc                     500

maxpout                33

minpout                16

具体参数修改方法以 root身份使用“smitty chgsys”进行修改

Ø         检查当前系统限制及调整

# ulimit –a

参数                   建议值           影响

fsize                    -1          文件大小,主要针对数据库也在当前环境下

data                     -1          文件大小,主要针对数据库也在当前环境下

minpout                6000              同时打开最大文件数,具体可以调更大

以root身份对“/etc/security/limits”文件中的参数修改调整,需要重新启动系统才能生效。

Ø         启动异步IO

开启异步IO可以提高读写效率,具体设置方法通过“smitty aio”调整。

三、            工作思路

Ø         停止HA,smit clstop,两台机器都停止。

Ø         文件系统和存储规划

Ø         在A机器上安装WAS,并做好垂直集群。部署NC。

Ø         启动A机器上的WAS,登录界面能看到就行。

Ø         停止A机器上的WAS。

Ø         在B机器上安装WAS,并做好垂直集群。部署NC。

Ø         启动B机器上的WAS,登录界面能看到就行。

Ø         停止B机器上的WAS。

Ø         在A机器上安装数据库管理软件。

Ø         在A机器上建数据库,建在裸设备。

Ø         在A机器上升级数据库到9208

Ø         关闭A机器上的数据库和监听。将A机器上的数据库管理目录tar包ftp到B机,解压。

Ø         检查数据库能否在两台机器上启动情况。检查正确后,关闭数据库。

Ø         规划HA的资源和资源组

Ø         配置HA

Ø         启动HA,检查A机数据库是否启动,检查B机WAS是否启动。

Ø         HA切换测试。

四、            文件系统和存储规划

文件系统挂载点

用途

大小

注意事项

/ncapp

安装was和NC

15G

Rootvg、Jfs2

/wassoft

Was的安装软件

10G

Rootvg、Jfs2

/oracle

Oracle管理软件

15G

Rootvg、Jfs2

oradata

数据库VG

 

不建文件系统,裸设备

在A机上建就行,等数据库安装完成后,import vg到B机。不要建并发卷组。PPsize=128M

注:AB两机相同。

五、            WAS和NC安装

Ø         安装was6101,创建DM和一个受管节点。

Ø         关闭Dmgr和Node

Ø         安装was的update软件,并升级was到6107

Ø         安装Httpserver

Ø         安装Httpserver的plugin

Ø         启动Dmgr和Node

Ø         拷贝plugin/bin下的configurewebserver1.sh到dmgr/bin下执行。

Ø         在dmgr的web管理界面下删除默认的应用程序和默认的应用服务器。

Ø         创建集群。Master,ncMem01,ncMem02

Ø         安装NC和部署NC,注意was的profile文件选择Dmgr。

Ø         在wasSysConfig下server栏下要将master设置为主服务器。

Ø         EJB部署完毕后要在管理控制台>企业应用程序>NC50>管理模块下:

              集群和服务器全选,模块全选,点击应用

集群和服务器全选,单选NC_WEB,点击确定

Ø         在WEB服务器下生成和传播插件

Ø         设置master,ncMem01,ncMem02的JVM参数。

Ø         在/ncapp下编写两个启动和关闭文件。此两个文件会被HA所用。文件内容详见本文的附录。

Ø         执行关闭文件。

Ø         执行启动文件。

Ø         登录NC。

Ø         成功后,执行关闭文件,停止整个应用。

Ø         在B机上同样安装。

Ø         安装完成后停止整个应用。

Ø         具体安装步骤参考nczx或者was论坛下的安装录像和安装说明。

六、            数据库安装

Ø         在两台机器上分别创建oracle用户和dba,hagsuer用户组,注意id号相同。

Ø         本文中的oracle的id是500,dba的id是501,hagsuer的id为502

Ø         Orace用户的目录在/oracle

Ø         Oracle用户的primary group为dba,group set为dba,hagsuser

Ø         建orcle用户顺便改下参数

soft file size       –1

soft data segment     –1

soft stack size   -1

Ø         编辑oracle的.profile文件,可以参考附录的.profile文件。

Ø         给/oracle目录授权拥有者

# chown –R oracle:dba /orale

# su – oracle

$ chmod –R 777 /oracle

$ exit

Ø         给oracle安装软件赋予拥有者和执行读写权限

# chown –R oracle:dba /oradisk

# su – oracle

$ chmod –R 777 /oradisk

$ exit

Ø         用root用户执行安装盘下的rootpre.sh

Ø         用orale用户到安装目录下

# su – oracle

$ cd /oradisk/Disk1

$ export DISPLAY=本客户端IP:0.0 〔可能是1.0,具体看xmanager的左上端。〕

$ xclock [如果能看见时钟就可以启动图形界面]

$ ./runInstaller

Ø         安装步骤了,注意不要建库就行。

ü         oracle 欢迎界面下,选择Adwanced Installation

ü         选择安装类型为自定义[custom]

ü         选择安装的组件

ü         设置操作系统组,都选dba

ü         询问是否创建数据库,选择不创建,稍后单独创建

ü         summary报告

ü         开始安装

ü         到快要结束的时候提示执行用root用户执行root.sh

ü         安装结束

Ø         Oracle用户执行netca 创建数据库的监听。

Ø         用root用户创建裸设备,可以用附录的脚本创建。

Ø         裸设备付给oracle权限

ü         裸设备位置:/dev/下

ü         rora开头或者rnnc开头的就是我们创建的裸设备。

Ø         Oracle用户执行dbca,创建数据库。创建的步骤和windows下差不多。注意的事项有:

ü         字符集选择

ü         指定control file,db file,redo log文件时选择创建好的裸设备。

Ø         升级orcle到9208

ü         关闭oracle和监听

ü         用oracle用户到补丁盘下执行./runInstaller安装

ü         安装结束

ü         执行脚本

               SQL> STARTUP MIGRATE

                        SQL> @/rdbms/admin/catpatch.sql

 SQL> shutdown immediate

SQL> startup

SQL> @/rdbms/admin/utlrp.sql

Ø         检查A机上数据库启动是否成功。

Ø         修改oracle参数

Ø         关闭数据库和监听。

Ø         将/oracle下的所有文件tar个包。

$ cd /oracle

$ tar –cvf oracle.tar *

Ø         ftp到B机器上的/oracle目录下,释放。tar –xvf  *.tar

Ø         import vg 过程

A机过程:

# cd /

# varyoffvg oradata

B机过程

# smit

选择存储管理->逻辑卷管理->卷组管理->import vg ->填写oradata和hdisk2

# varyonvg oradata

Ø         启动B机数据库,看是否能启动,如果可以,安装结束。

七、            HACMP配置

在配置HA之前要能保证手工切换没有问题。在切换没有问题的前提下,我们就可以进行HA的配置了。

关闭两台机器上关于数据库和NC的所有应用。

理解HA中的概念和工作方式很重要。

资源:

       资源包括应用程序,虚拟IP,卷组等等

资源组:

资源组就是将资源组织成一个整体。资源组中的节点的顺序就决定了谁是主谁是备。一旦主的出现问题,那么备机就要接管这个资源组的资源。

       在本项目中要实现互备,那么我们怎么定义我们的资源呢?

       首先我们有两个应用,一个是NC,一个是数据库。那么我们需要定义两个应用程序,并规划好应用程序的启停脚本。

       其次我们有两个虚拟IP资源,因为一个应用需要一个。

       最后我们需要两个资源组,一个NC,一个数据库的。

配置如下:

Cluster Name: erpcluster

Cluster Connection Authentication Mode: Standard

Cluster Message Authentication Mode: None

Cluster Message Encryption: None

Use Persistent Labels for Communication: No

There are 2 node(s) and 1 network(s) defined

 

NODE ibmerpa:

       Network net_ether_01

              ibmerpa_svc   128.128.1.14

              ibmerpa_boot  128.128.1.13

              ibmerpa_standby    192.168.200.2

 

NODE ibmerpb:

       Network net_ether_01

              ibmerpb_svc   128.128.1.18

              ibmerpb_boot  128.128.1.19

              ibmerpb_standby    192.168.200.1

 

Resource Group orarg

       Startup Policy Online On Home Node Only

       Fallover Policy       Fallover To Next Priority Node In The List

       Fallback Policy       Fallback To Higher Priority Node In The List

       Participating Nodes ibmerpa ibmerpb

       Service IP Label            ibmerpa_svc

Volume group                      oradata

 

Resource Group ncrg

       Startup Policy Online On Home Node Only

       Fallover Policy       Fallover To Next Priority Node In The List

       Fallback Policy       Fallback To Higher Priority Node In The List

       Participating Nodes ibmerpb ibmerpa

       Service IP Label            ibmerpb_svc

八、            附录

/etc/hosts:

127.0.0.1              loopback localhost ibmerpb

128.128.1.13  ibmerpa_boot     ibmerpa

128.128.1.14    ibmerpa_svc      ibmerpa

192.168.200.2       ibmerpa_standby  ibmerpa

128.128.1.19    ibmerpb_boot     ibmerpb

128.128.1.18    ibmerpb_svc      ibmerpb

192.168.200.1       ibmerpb_standby  ibmerpb

Oracle启动停止脚本:

       /usr/hascript/dbstart.sh:[给HA用的,root用户有权限]

                     su - oracle -c "/oracle/hascript/dbstartup.sh"

       /usr/hascipt/dbstop.sh:[给HA用的,root用户有权限]

                     su - oracle -c "/oracle/hascript/dbstop.sh"

       /oracle/hascript/dbstartup.sh: [给oracle用的,oracle用户有权限]

                     lsnrctl start

                     sqlplus /nolog <<EFO

                     conn / as sysdba

                     startup;

                     exit;

       /oracle/hascript/dbstop.sh: [给oracle用的,oracle用户有权限

                     lsnrctl stop

                     sqlplus /nolog <<EFO

                     conn / as sydba

                     shutdown immediate;

                     exit;

was启停脚本

/ncapp/ncstart.sh:

export LANG=Zh_CN

/ncapp/IBM/WebSphere/AppServer/profiles/dmgr/bin/startManager.sh

/ncapp/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startNode.sh

/ncapp/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startServer.sh master

/ncapp/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startServer.sh ncMem01

/ncapp/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startServer.sh ncMem02

/ncapp/IBM/HTTPServer/bin/apachectl start

/ncstop.sh

/ncapp/IBM/HTTPServer/bin/apachectl stop

/ncapp/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/stopServer.sh ncMem02

/ncapp/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/stopServer.sh ncMem01

/ncapp/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/stopServer.sh master

/ncapp/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/stopNode.sh

/ncapp/IBM/WebSphere/AppServer/profiles/dmgr/bin/stopManager.sh

Oracle的.profile文件内容

PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.

 

export PATH

 

if [ -s "$MAIL" ]           # This is at Shell startup.  In normal

then echo "$MAILMSG"        # operation, the Shell checks

fi                          # periodically.

export umask=022

export ORACLE_BASE=/oracle

export ORACLE_HOME=$ORACLE_BASE/app/9.2.0

export ORACLE_SID=ncerp

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_TERM=vt100

export NLS_LANG=american_america.zhs16gbk

export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$ORACLE_HOME/network/lib

export SHLIB_PATH=$ORACLE_HOME/lib:/usr/lib

export PATH=$ORACLE_HOME/bin:.:$PATH:/usr/local/bin

                                                                   

       建裸设备脚本[10g有所不同]

mklv -y'ora_system' -w'n' -s'n' -r'n' -t'jfs2' oradata 4 hdisk2

mklv -y'ora_drsys01' -w'n' -s'n' -r'n' -t'jfs2' oradata 4 hdisk2

mklv -y'ora_odm01' -w'n' -s'n' -r'n' -t'jfs2' oradata 4 hdisk2

mklv -y'ora_cwmlite01' -w'n' -s'n' -r'n' -t'jfs2' oradata 4 hdisk2

mklv -y'ora_examp01' -w'n' -s'n' -r'n' -t'jfs2' oradata 4 hdisk2

mklv -y'ora_index01' -w'n' -s'n' -r'n' -t'jfs2' oradata 4 hdisk2

mklv -y'ora_xdb01' -w'n' -s'n' -r'n' -t'jfs2' oradata 8 hdisk2

mklv -y'ora_tools01' -w'n' -s'n' -r'n' -t'jfs2' oradata 4 hdisk2

mklv -y'ora_undo' -w'n' -s'n' -r'n' -t'jfs2' oradata 16 hdisk2

mklv -y'ora_tmp' -w'n' -s'n' -r'n' -t'jfs2' oradata 16 hdisk2

mklv -y'ora_users' -w'n' -s'n' -r'n' -t'jfs2' oradata 8 hdisk2

mklv -y'ora_redo11' -w'n' -s'n' -r'n' -t'jfs2' oradata 1 hdisk2

mklv -y'ora_redo21' -w'n' -s'n' -r'n' -t'jfs2' oradata 1 hdisk2

mklv -y'ora_redo31' -w'n' -s'n' -r'n' -t'jfs2' oradata 1 hdisk2

mklv -y'ora_ctl1' -w'n' -s'n' -r'n' -t'jfs2' oradata 1 hdisk2

mklv -y'ora_ctl2' -w'n' -s'n' -r'n' -t'jfs2' oradata 1 hdisk2

mklv -y'ora_ctl3' -w'n' -s'n' -r'n' -t'jfs2' oradata 1 hdisk2

mklv -y'nnc_data0101' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0102' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0103' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0104' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0105' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0106' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0107' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0201' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0202' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0301' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0302' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0303' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0304' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0305' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_data0306' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0101' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0102' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0103' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0104' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0105' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0106' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0201' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0202' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0301' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0302' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0303' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0304' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0305' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_index0306' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_iufo01' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

mklv -y'nnc_iufo02' -w'n' -s'n' -r'n' -t'jfs2' oradata 20 hdisk2

oracle参数调整

db_cache_size = 4096M         (4G)还可以增加,不要超过内存的60%

    shared_pool_size = 512M  (400M)

    large_pool_size = 32M

    java_pool_size = 256M

    processes = 200

    log_buffer = 5242880

    db_block_size = 16384

    db_writer_processes = 2

    open_cursors = 2000

    workarea_size_policy = auto

    pga_aggregate_target = 2250M)

    lock_sga = true

    optimizer_index_cost_adj =40

    optimizer_dynamic_sampling=2 

九、            Q&A

1:如何启动数据库和NC?

启动ha就可以启动数据库和NC,因为HA有对应的应用程序启动和关闭脚本。也可以手工启动。执行启动脚本就可以。

Oracle:启动脚本位置:/oracle/hascript/dbstartup.sh,/oracle/hascript/dbstop.sh

NC启动脚本:/ncapp/ncstart.sh /ncapp/ncstop.sh

2:如何修改oracle启动参数?

修改参数前要先备份参数文件,要先找到spfile文件的位置。

       # su – oracle

       $ sqlplus /nolog

       Sql> conn / as sysdba

       Sql> show parameter spfile

       查看结果就得知spfile位置。

       Sql> create spfile from pfile;

       如果结果报错,说明目前使用spfile启动的。如果没有报错,说明是pfile启动的。

       Copy当前的spfile

       可以用以下命令修改参数:

       Sql> alter system set parameter=value scope=spfile;

       如修改游标:

       Sql> alter system set open_cursors=2000 scope=spfile;

       Scope选项有spfile,memory,both

       修改完参数,重启数据库。

3:表空间满了如何处理?

       表空间满后可以为表空间增加数据文件。最简单的方法就是在OEM中增加。

       存储-》表空间-》双击要增加的数据文件的表空间

       在编辑框下增加就可以了。

       对于裸设备来说,如果本文中上面建好的裸设备还没有被用到,可以增加进来。位置在/dev下。

       如本文中为NNC_DATA01已经规划了7个裸设备,裸设备的名字是从rnnc_data01到rnnc_data07,如果NNC_DATA01表空间满了,这当中的没有用到的裸设备都可以为NNC_DATA01所用。如果rnnc_data01到rnnc_data07都用了,那么就可以参考脚本创建新的裸设备,为了方便管理,注意裸设备的命名。

       建完裸设备后注意给oracle用户赋权限。

 

  评论这张
 
阅读(1817)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017