Oracle8.1.7产品在ibm Aix4.3.3上的安装

作者: (*)

 

1. 系统概况

硬件情况:

IBM H85主机两台,各有1CPU,内存各为2G,本地各有18.2G的硬盘2块,总共存储量36G左右,IBM 7133 SSA磁盘阵列柜共有36G硬盘9块,总共存储量320G左右。

软件情况:

操作系统: IBM-AIX 4.3.3 64-bit

使用IBM HACMP CASCADE 4.4.0.0双机环境

IBM 有关HACMP AIX 的补丁

数据库系统:ORACLE 8.1.7 FOR IBM-AIX ENTERPRISE EDITION 64-bit

本地硬盘作成一个vg rootvg,容量为36G,用来安装AIXOracle数据库系统。磁盘陈列柜配置中,有2块硬盘不做 任何RAID作成一个vg:datavg2,容量为70G左右,用于存放备用数据库的数据。余下7块硬盘做RAID5作成一个vgdatavg1,容量为180G左右,用于存放正式数据库数据。

两台主机的swap2G,在rootvg上各建一个文件系统,大小为4G,名字为lvoracle,mount点为/oracle,用来放oracle RDBMS ,正式数据库layb的数据占用的vgdatavg1,并建立三个lv,分别为datavg1_lv01datavg1_lv02datavg1_lv03,分别对应文件系统u0160G),u0210G),u0340G),文件系统不支持大于2GB的文件,其mount点分别为/u01/a01/backup1,其中/u01存放ORACLE 的数据文件,控制文件和日志文件, /a01存放Archived log files/backup1存放冷备份数据。数据库表空间初始大小规划如下:

SYSTEM表空间数据文件 500M

TOOLS表空间数据文件 64M

USERS表空间数据文件 256M

RBS表空间数据文件 256M

INDX表空间数据文件 256M

TEMP表空间数据文件 128M

控制文件 共三个

日志文件 50M一个共三个

TRACE文件的存放位置默认放在本地盘上。

 

备用系统数据库laybbak的数据占用的vgdatavg2,并建立两个lv,分别为datavg2_lv01datavg1_lv02,分别对应文件系统u0230G),backup230G),文件系统不支持大于2GB的文件,其mount点分别为/u02/backup2,其中/u02存放ORACLE 的数据文件,控制文件和日志文件,/backup2存放冷备份数据。数据库表空间初始大小规划如下:

SYSTEM表空间数据文件 500M

TOOLS表空间数据文件 64M

USERS表空间数据文件 256M

RBS表空间数据文件 256M

INDX表空间数据文件 256M

TEMP表空间数据文件 128M

控制文件 共三个

日志文件 50M一个共三个

TRACE文件的存放位置默认放在本地盘上。

 

2. 设置及安装步骤:

1 创建组dba,及其所属用户oracledba为其主组。用户的工作目录为“/oracle”,uid=1001 gid=1001;主备机保持一致。以下操作在主机上。

2 编辑oracle用户的.profile,定义下列oracle使用的环境变量:

ORACLE_BASE=/oracle/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/8.1.7

ORACLE_SID=laybA机)/B机)

ORACLE_TERM=vt100

ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

NLS_LANG=american_america.zhs16gbk

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

LIBPATH=$ORACLE_HOME/lib

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

DISPLAY=172.16.25.1:0.0

JAVA_HOME=/usr/jdk_base

export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_TERM

export ORACLE_NLS33 NLS_LANG LD_LIBRARY_PATH LIPPATH

export PATH DISPLAY JAVA_HOME

umask 022

3)检查IBM HACMP是否已成功启动;

4) 安装Oracle数据库系统,放入第一张光盘并且MOUNT CDROM

mount -rv cdrfs /dev/cd0/cdrom

5)以root身份进入/cdrom目录

运行命令

sh rootpre.sh

xhost +

使用命令su oracle进入oracle用户身份,进入/cdrom目录,在主机上运行oracle安装程序runInstaller,安装Oracle 8i Enterprise Edtion 8.1.7.0.0,选择“Custom”,选择安装组件。注意:加上OCISQLJOUI,去掉LEGATO。当所有组件安装完毕,需要以root身份执行 /oracle/app/oracle/product/8.1.7/root.sh,可以在一个虚拟终端中以root身份执行该操作,先配置Net8 Configuration Assistant

6)检查各安装log文件,确认安装成功。

7)以oracle身份执行dbassist开始建立数据库layb,选择“create a database”,选择“Custom”选择“OLTP”,输入并发用户数目“300,选择“Dedicated Server Mode”,去掉所有数据库特性选项,在“Global Database Name:”输入layb,在“SID:”输入layb,在“Compatible Parameter:“选择8.1.0,在字符集中选择zhs16gbk,输入控制文件的位置。设定各个表空间的参数,输入三个日志文件的位置和大小,设定SGA区的参数:

shared_pool_size=256000000

db_block_buffer=50000

log_buffer=1638400

process=512

db_block_size=4096

 

选择保存建库脚本,名字为createlayb.sh

8)$ORACLE_HOME/assistants/dbca目录下产生createlayb.sh, laybrun.sh, laybrun1.sh, laybrun2.shlaybalterTablespace.sh脚本文件。

9)分别执行脚本建库laybprun.sh,laybrun1.sh,laybrun2.sh,laybalterTablespace.sh建立数据库layb

10)使用7~9)的方法建立数据库laybbak

11)运行netca命令配置net8 listener.ora & tnsnames.ora

12)在两个节点的/oracle目录下建立.rhosts 文件,保证cluster各接点的“user equivalence”, rcprlogin时不需口令。

13)使用root的身份修改/etc目录下的文件services,在最后添加如下内容:

listener_main 1521/tcp #Net8 listener for layb

listener_bak 1522/tcp #Net8 listener for bak

将修改过的文件services拷贝到备机上。

14 由于作双机结构,必须以oracle身份使用RCP命令做ORACLE用户$HOME/目录的全拷贝,同时,应注意在第二节点中,执行/cdrom/rootpre.sh脚本,/etc目录下ora*文件(共两个)的复制。

 

15)编辑listener.oratnsnames.ora

LISTENER.ORA 文件如下:

# LISTENER.ORA Network Configuration File: /oracle/app/oracle/product/8.1.7/network/admin/listener.ora

# Generated by Oracle configuration tools.

 

LISTENER_MAIN =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = layb1_service)(PORT = 1521))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

)

)

 

SID_LIST_LISTENER_MAIN =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/app/oracle/product/8.1.7)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = layb)

(ORACLE_HOME = /oracle/app/oracle/product/8.1.7)

)

)

 

LISTENER_BAK =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = layb2_service)(PORT = 1522))

)

)

)

 

SID_LIST_LISTENER_BAK =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/app/oracle/product/8.1.7)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = laybbak)

(ORACLE_HOME = /oracle/app/oracle/product/8.1.7)

)

)

 

TNSNAMES.ORA 文件如下:

 

#TNSNAMES.ORA

Configuration File:/oracle/app/oracle/product/8.1.7/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

 

layb =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = layb1_service)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = layb)

)

)

 

laybbak =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = layb2_service)(PORT = 1522))

)

(CONNECT_DATA =

(SERVICE_NAME = laybbak)

)

)

 

16) ORACLE数据库的启动和关闭由IBM AIX HACMP CASCADE的启动和关闭脚本负责。

其中hastartmainhastopmain/etc目录下)负责数据库layb的启动和关闭。。所以手工建立数据库启动脚本startdbmain和数据库关闭脚本shutdowndbmain(在/etc下),并拷贝到备机上的相应目录下。

 

附各脚本内容:

 

hastartmain脚本内容:

su - oracle -c startdbmain root用户以oracle用户的身份执行脚本startdbmain

 

hastopmain脚本内容:

su - oracle -c shutdowndbmain (root用户以oracle用户的身份执行脚本shutdowndbmain

 

startdbmain脚本内容:

export ORACLE_SID=layb

/oracle/app/oracle/product/8.1.7/bin/svrmgrl<<EOF

connect internal

startup

exit

EOF

lsnrctl start listener_main

 

shutdowndbmain脚本内容

export ORACLE_SID=layb

lsnrctl stop listener_main

/oracle/app/oracle/product/8.1.7/bin/svrmgrl<<EOF

connect internal

shutdown normal

EOF

 

其中hastartbakhastopbak/etc目录下)负责数据库laybbak的启动和关闭。。所以手工建立数据库启动脚本startdbbak和数据库关闭脚本shutdowndbbak(在/etc下),并拷贝到备机上的相应目录下。

附各脚本内容:

 

hastartbak脚本内容:

su - oracle -c startdbbak root用户以oracle用户的身份执行脚本startdbbak

 

hastopbak脚本内容:

su - oracle -c shutdowndbbak root用户以oracle用户的身份执行脚本shutdowndbbak

 

startdbbak脚本内容:

export ORACLE_SID=laybbak

/oracle/app/oracle/product/8.1.7/bin/svrmgrl<<EOF

connect internal

startup

exit

EOF

lsnrctl start listener_bak

 

shutdowndbbak脚本内容

export ORACLE_SID=laybbak

lsnrctl stop listener_bak

/oracle/app/oracle/product/8.1.7/bin/svrmgrl<<EOF

connect internal

shutdown normal

EOF

 

注:

IBM HA操作: smit clstart smit clstop 分别为启动、关闭IBM HA

Varyonvg datavg varyoffvg datavg 分别为启动、关闭磁盘柜的vg

 

3. 数据库双机验证方式:

正常情况下主数据库layb及其监听程序运行在A机上,备用数据库laybbak及其监听程序运行在B机上。

1 如果A机当机,主数据库layb及其监听程序会自动切换到B机,B机运行主数据库layb及其监听程序和备用数据库laybbak及其监听程序。

2 如果A机恢复运行,主数据库layb及其监听程序会自动被A机接管。

3 如果B机当机,备用数据库laybbak及其监听程序会自动切换到A机,A机运行主数据库layb及其监听程序和备用数据库laybbak及其监听程序。

4 如果B机恢复运行,备用数据库laybbak及其监听程序会自动被B机接管。

 

*** *** *** *** ***

本文作者请与epub@itpub.net联系, 以便确认署名.