数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle10gR2RAC+RHEL4+VMWareGSX简明安装步骤


发布日期:2019年02月02日
 
Oracle10gR2RAC+RHEL4+VMWareGSX简明安装步骤

我的风格大家也熟悉了我也不多废话也不愿意写什么手册我认为搞稍微复杂一点技术的工程技术人员的最基本的能力就是去做调研和信息搜集什么 事情光靠别人很详细的喂给你你是永远无法成为高手的过程本身很麻烦有时候甚至很让人痛苦和气恼但是这才是真正能够把你推动到一个高手的位置的 真正动力 动手越少水平越糟

下面是我前几天做的一个简明步骤不想写复杂的我觉得已经足够帮有动手能力的同学过关了

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

Oracle gR RAC + RHEL ASU +VMWare GSX

Deployment brifing guide

Author: nntp

转载不得修改请注明作者时间和出处

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

环境

自用的测试工作站一台如果你的配置环境和我差很远你就不要玩乐你会很痛苦的

硬件环境

CPU: AMD Althon + x

Mem: G DDR

Storage: xGB ATA for Host OS xG SATA for application

Host 的环境

SuSE Enterprise Linux Server SP with latest errata Kernel from Novell YOU

(AMD/EMT version)

GB上安装的是我的上面的这个OS用来做Host OS 并且已经调优过 (不会这种环境下linux调优的同学你做出来的性能会和我有不少差距)

GB硬盘我用linux MD 做软RAID RAID level 是 并且作了调优(不会这种环境下linux阵列配置和优化的同学你做出来的性能会和我有不少差距)

VMWare gsx 安装在 GB硬盘上也作了一些小的优化工作(你在VTN上查得到怎么做优化)

GB做RAID就变成一个GB的LUN 我划乐GB出来 mount 到 /vmegg上

我用的这个文件系统是ReiserFS 并作了文件系统级的性能优化

vmegg的结构如下

/vmegg

/rac

/rhel

/n

/n

/share

各位同学自己建好上面这些目录

安装的大概步骤

步骤一: 安装前准备及Guest OS安装配置

步骤二: 安装Oracle gR clusterware

步骤三: 安装Oracle gR database

步骤四: 配置netca

步骤五: 配置dbca创建数据库

步骤六: 校验RAC

============ 步骤一 安装前准备及Guest OS安装配置=======

Host OS 准备

从Oracle OTN下载 oracle gR for x linux个zip 一个是clusterware zip一个是database zip comp CD你可以下我是懒的弄

准备的RHEL ASU(x) 你也可以用CentOS (x)

搞清楚你的linux的kernel version

从Oracle OTN下载 ocfs ocfs tools ocfs console ASMLib ASMLib support & utility记住这些都是针对你的kernel的不要下错

VMWare gsx for linux

我的工作站是没有显示器的我的工作都是在笔记本上作的 大家都知道Oracle的安装是需要X的所以你可以VNC过去也可以在本地用Xserver

我用的是ReflectionX因为还可用来连其他的Unix(HPUX AIX等) 这个完全是个人喜好你搞得定什么用什么

在笔记本上配置好RelfectionX做好连接host上的vmware console

Guest OS安装

泡杯茶会耗不少时间 我一边安装一边看DVD的当中会有很多等待时间 虽然我后来用了几个自动化的方式

在vmware console 创建你的 vmware guest OS 取名 node node 选择 custome create> Redhat Enterprise Linux 其它都是默认 内存选择G(>MB你就看 不到warning乐) 硬盘选择 LSI bus controller 大小选择GB 建立方式选择 preallocated 也就 是马上就创建这个vmdk 我不喜欢split to GB就把默认的打勾给去掉了因为我的Host OS以及mount filesystem 已经做过优化我喜欢一个独立的大文件你们按照自立的路子来做不要盲目跟我

创建好后vmware guest OS之后 给每一个guest 加上一块NIC

关掉vmware console 这个时候你的两个vmware guest OS都创建好了分别在n n目录下面而且每个都加了个NIC硬盘都是LSI 并且大小GB而且都预创建好了并且没有分割成GB一块

看到很多cluster in vmware的介绍在创建share disk的时候都是什么用一个vmware guest OS添 加vmdk然后修改vmx然后把另外一个vmware guest的vmx再添加进去我很不喜欢这种套路我很少用 vmware workstation所以不知道最新版本是否有vdiskmanager反正我在gsx里面一直用vdiskmanager

ssh到你的 Host OS里面(现在是我的SLESSP) 到 /vmware/rac/rhel/share下面运行 vmwarevdiskmanager 创建几个vmdk 这里就有点讲究了

如果你在看我的这个文章之前还没有搞清楚ORACLE RAC的基本结构 raw ASM ocfs的概念你就不要看下去了浪费时间

Oracle RAC 本质上是借鑒了很多Alpha TruCluster的技术但是也有了很多折衷的设计 它需要存放OCR CRS voting 信息的共享空间 还需要空间给ASM for oracle data 所以

在存储的布局上有两种方式要么是 raw for OCR CRS voting ASM for data 要么是 ocfs for OCR CRS voting ASM for data

至于以前那种 raw for OCR CRS voting CRS for data的做法我是不考虑了做做学习用途还可以用在production环境是给自己吃药

所以如果你选择第一种你的vmdk这样建

vmwarevdiskmanager 创建 preallocated并且是lsi contoller的硬盘 MB 一个 for raw for OCR

vmwarevdiskmanager 创建 preallocated并且是lsi contoller的硬盘 MB 一个 for raw for CRS voting

vmwarevdiskmanager 创建 preallocated并且是lsi contoller的硬盘 GB 四个 个 for ASM Oracle data 个for flash recovery area 你不玩flash recovery也可以省略掉

如果你选择第二种你的vmdk这样建

vmwarevdiskmanager 创建 preallocated并且是lsi contoller的硬盘 GB一个 for ocfs for OCR + CRS voting

vmwarevdiskmanager 创建 preallocated并且是lsi contoller的硬盘 GB 四个for ASM for Oracle data & flash recovery area (同上)

raw没有什么有意思的我因为还要在这个环境作其他的test所以就选择第二种

这样做好后你的 /vmware/rac/rhel/share目录就会产生你刚才创建的这些vmdk了

分别到 n和n的目录打开nodevmx 和nodevmx 在最后空白处添加这几段内容

scsipresent = TRUE

scsivirtualDev = lsilogic

scsisharedBus = virtual

这段是打开 scsi上的使用并且设置成virtual controller设置成lsilogic

然后依次添加

scsi:present = TRUE

scsi:mode = independentpersistent

scsi:filename = /vmegg/rac/rhel/share/ocfsvmdk

scsi:deviceType = plainDisk

scsi:present = TRUE

scsi:mode = independentpersistent

scsi:filename = /vmegg/rac/rhel/share/asmvmdk

scsi:deviceType = plainDisk

scsi:present = TRUE

scsi:mode = independentpersistent

scsi:filename = /vmegg/rac/rhel/share/asmvmdk

scsi:deviceType = plainDisk

scsi:present = TRUE

scsi:mode = independentpersistent

scsi:filename = /vmegg/rac/rhel/share/asmvmdk

scsi:deviceType = plainDisk

scsi:present = TRUE

scsi:mode = independentpersistent

scsi:filename = /vmegg/rac/rhel/share/asmvmdk

scsi:deviceType = plainDisk

这样就把刚才创建的那几个vmdk添加好了

最后添加这个

disklocking = false

diskLibdataCacheMaxSize =

diskLibdataCacheMaxReadAheadSize =

diskLibDataCacheMinReadAheadSize =

diskLibdataCachePageSize =

diskLibmaxUnsyncedWrites =

这段是对vmware使用共享硬盘的方式进行定义我经常看到很多同学在装RHCS in vmware的时候说这个不正常那个不正常你们也可以借鑒一下这个配置

大多数人都知道设置 disklocking =false 却漏掉dataCache

保存退出之后重新打开你的vmwareconsole你就可以看到个vmware guest OS的配置中都有这些硬盘出现了

其实到现在为止还是一个超级简单的工作

在你的vmwareconsole里面edit config 点进看看但是不要修改和save !切记而且之前修改vmx的时候关掉你的vmwareconsole

然后就安装你的vmware guest OS 安装的时候包选择default然后点custom进去加几个必需的 Development Tools Legacy Software Development Libraries Kernel Development Editor System tools

配置你的个网卡的固定IPhostname DNS gateway time server (NTP)

node:

hostname nodepub

eth

eth

node

hostanme nodepub

eth

eth

gateway DNS就按照自己的需要配

NTP我强烈建议你们配一个不知道NTP的后面有古怪事情不要问我

安装结束后进入guest OS

修改 /etc/hosts

如下

localhost (必须要这样)

nodepub

nodepub

nodeprv

nodeprv

nodevip

nodevip

两个node都要一样

修改后要确认这个hosts 都正确 (ping)

sshkeygen for root dsa/rsa bit 我选择空的 passphase你可以加你的passphase但是后面你要sshagent $SHELL建立等效我怕麻烦就省略掉了

cd ~/ssh

cat *rsapub >> authorized_keys

cat *dsapub >> authorized_keys

copy ssh/下面这些到 node 的 ~/ssh下面

这些都是基本功我就不废话了不熟悉这个的就不要往下看了

分别在每个node 上做这些事情

ssh localhost

ssh nodepub

ssh nodepub

ssh nodeprv

ssh nodeprv

这个步骤和RAC没有关系但是也是好习惯之一检查你的service 状况disable掉所有不需要用的service 腾出resource给你的RAC 什么cups之类乱七八糟的

group add dba oinstall 组在两个node上 创建oracle 用户 主组oinstall 附加组是dba和disk

然后和前面执行root ssh的操作完全一样执行一次这步非常重要漏掉了肯定过不下去

mkdir /u/app/oracle 在个node上

chown R oracleoinstall

chmod R

这个目录给oracle和clusterware系统的

mkdir /u/oradata/orcl

chown R oracledba

这个目录给 ocfs用来装OCR CRS voting 的

修改你的 /etc/nf 添加这些kernel 参数这些都是老一套了大家应该都很熟悉了

rermem_default=

rewmem_default=

rermem_max=

rewmem_max=

kernelshmall =

kernelshmmax =

kernelshmmni =

kernelsem =

fsfilemax =

netipvip_local_port_range =

修改 ulimits 如果你想要修改的话

vi /etc/sysconfig/nf

oracle soft nproc

oracle hard nproc

oracle soft nofile

oracle hard nofile

修改 pamd login

vi /etc/pamd/login

最后添加 session required /lib/security/pam_limitsso

增加 hanchecktimer 模块在个node上

先看一下有没有 find /lib/modules name hangchecktimerko

然后加上去 echo options hangchecktimer hangcheck_tick= hangcheck_margin= >> /etc/nf

然后把这个模块调起来 modprobe hangchecktimer

然后检查是否工作正常了 grep Hangcheck /var/log/messages | tail

看到类似这个的信息就表明工作正常了 Jan :: npub kernel: Hangcheck: starting hangcheck timer (tick is seconds margin is seconds)

安装ocfs ocfs的console的rpm

在每个node 上这样操作

进入X 然后运行 ocfsconsole 把你的个node都添加进去

然后编辑 /etc/initd/ocb 删除掉 靠近配置开头的那些带 #的配置行

然后 /etc/initd/ocb offline ocfs

/etc/initd/ocb unload ocfs

/etc/initd/ocb configure ocfs 回答y 就可以了

在一个 node上 mkfsocfs b k C k L oradatafiles /dev/sdb (就是前面创建的第一个vmdk)

在每个node上

mount t ocfs o datavolume /dev/sdb /u/oradata/orcl

修改你的 /etc/fstab 添加 类似这样的行

/dev/sdb /u/oradata/orcl ocfs _netdevdatavolume

到这里我们的ocfs for OCR CRS voting 就OK了

修改 /etc/sysconfig/ocb

把threshhold 的 值设置成

在每个node上

安装你的 ASMLibs tools support 三个rpm文件

然后运行 /etc/initd/oracleasm configure

回答 oracle dba y y 就可以了

创建ASM

在一个node上:

/etc/initd/oracleasm createdisk VOL /dev/sdc

/etc/initd/oracleasm createdisk VOL /dev/sdd

/etc/initd/oracleasm createdisk VOL /dev/sde

/etc/initd/oracleasm createdisk VOL /dev/sdf

记住ASM在linux下面处理的对象是 partition不是disk 所以你那些vmdk要linux 下面partition好才能用fdisk 就用type 就可以了

创建好后 在这个node 上运行 /etc/initd/oracleasm listdisks 查看

在另外一个node 上

/etc/initd/oracleasm scandisks

/etc/initd/oracleasm listdisks 查看

在每个node上

修改 oracle用户家目录下的 bash_profile

修改成大概这个样子

# bash_profile

# Get the aliases and functions

if [ f ~/bashrc ]; then

~/bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export ORACLE_BASE=/u/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product//db_

export ORA_CRS_HOME=$ORACLE_BASE/product/crs

export ORACLE_SID=orcl

export PATH=:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NLS=$ORACLE_HOME/nls/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

第二个节点的 ORACLE_SID=orcl 其他都一样

=============步骤二: 安装Oracle gR clusterware========

unset 一些环境变量

$ unset ORA_CRS_HOME

$ unset ORACLE_HOME

$ unset ORA_NLS

$ unset TNS_ADMIN

检查你的变量

$ env | grep ORA

ORACLE_SID=orcl

ORACLE_BASE=/u/app/oracle

ORACLE_TERM=xterm

用oracle 用户login 然后运行你的unzip 之后的那个clusterware目录下的runInsaller 进入图形安装

确认你的安装目录是/u/app/oracle/product/crs

修改 你的clustername 从crs到一个随便你想要的名字

然后增加

nodepub nodeprv nodevip

nodepub nodeprv nodevip

然后指定 eth 的类型时public

然后制定你的OCR 和mirror

/u/oradata/orcl/OCRFile

/u/oradata/orcl/OCRFile_mirror

然后指定你的voting

/u/oradata/orcl/VotingFile

/u/oradata/orcl/VotingFile_mirror

/u/oradata/orcl/VotingFile_mirror

然后就开始安装了当众会让你用完全的root身份在每个节点上运行orainstRootsh你就一个节点一个节点运行不要抢时间一个个来

然后要求你在每个节点上用完全的root权限执行 rootsh你也一样一个个来一定要等一个做好了然后做另外一个

做第二个时候如果告诉你你的eth不是public你就在第二个节点用oracle用户在 X里面运行vipca 然后配置好你的vip 信息(虚拟IP的信息很容易配的)

clusterware 就安装好了

确认一下

$ /u/app/oracle/product/crs/bin/olsnodes n

nodepub

nodepub

$ ls l /etc/initd/init*

rxrxrx root root Oct : /etc/initd/initcrs*

rxrxrx root root Oct : /etc/initd/initcrsd*

rxrxrx root root Oct : /etc/initd/initcssd*

rxrxrx root root Oct : /etc/initd/initevmd*

===============步骤三: 安装Oracle gR database=======

unset 一些环境变量

$ unset ORA_CRS_HOME

$ unset ORACLE_HOME

$ unset ORA_NLS

$ unset TNS_ADMIN

检查你的变量

$ env | grep ORA

ORACLE_SID=orcl

ORACLE_BASE=/u/app/oracle

ORACLE_TERM=xterm

用oracle用户运行你unzip之后的那个database目录下的runInstaller

ORACLE安装目录指定到 /u/app/oracle/product//db_

个node选择上

选择 Install database Software only

会要求你用完全的root权限运行 rootsh 分别在个node上一一运行不要抢时间

安装完毕

==================步骤四: 配置netca=================

oracle 用户在一个node上运行 netca

选择所有node

选择 Listener configuration

添加一个LISTEN port

回到开始界面选择Naming Methods configuration

把Local Naming和Easy Naming 添加进去然后结束配置

确认一下

$ ps ef | grep lsnr | grep v grep | grep v ocfs | awk {print $}

LISTENER_NODEPUB

==============步骤五: 配置dbca创建数据库=============

用oracle用户运行 dbca

选择custom database

输入数据库的全局名比如orcl

给你的系统的不同角色建立密码我都选择same as

选择用ASM管理数据库

输入你前面设定的管理员密码并把SPFILE 设定成/u/oradata/orcl/dbs/spfile+ASMora

进入ASM配置界面 create NEW 名字叫做DATA

然后下面你会看到你前面创建的个ASM VOL 你选择 Redundancy 选择 Normal

这样 DATA diskgroup就创建好了

回到ASM界面后 仍旧选择create new 然后名字叫做FLASH_RECOVERY_AREA 选择第两个卷然后Redundancy 选择External

然后OK结束ASM配置

Database File Locations 选择DATA

Recovery Configuration 选择刚才创建的 FLASH_RECOVERY_AREA diskgroup

接下来默认的就可以了

Database Services 这里你选择Add你一个新的service 随便叫名字比如ractest

然后选择 TAF Policy是Basic

开始创建数据库

===================步骤六: 校验RAC===============

用oracle用户login 运行

$ srvctl status database d orcl

Instance orcl is running on node nodepub

Instance orcl is running on node nodepub

$ srvctl status service d orcl s ractest

Service orcltest is running on instance(s) orcl orcl

$ srvctl status nodeapps n nodepub

VIP is running on node: nodepub

GSD is running on node: nodepub

Listener is running on node: nodepub

ONS daemon is running on node: nodepub

$ srvctl status asm n nodepub

ASM instance +ASM is running on node nodepub

$ srvctl config nodeapps n nodepub a g s l

VIP exists: /nodevip///eth:eth

GSD exists

ONS daemon exists

Listener exists

运行 sqlplus /nolog

SQL> connect /as sysdba

SQL>

SELECT

inst_id

instance_number inst_no

instance_name inst_name

parallel

status

database_status db_status

active_state state

host_name host

FROM gv$instance

ORDER BY inst_id;

INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST

orcl YES OPEN ACTIVE NORMAL nodepub

orcl YES OPEN ACTIVE NORMAL nodepub

其他的测试测试方法n多你用sqlplus asmcmd 或者通过Web进 enterprise manager都可以

随便你了

               

上一篇:如何在ORACLE中实现人民币大写的转换

下一篇:数据库未来展望