CentOS5.2+Oracle RAC10gR2+RAW+ASM+VMServer
来源:互联网 发布:淘宝客点击数要钱吗 编辑:程序博客网 时间:2024/06/11 02:40
CentOS5.2+Oracle RAC10gR2+RAW+ASM+VMServer
一.前期虚拟机共享磁盘设置
该环境在此选择lsilogic
创建共享磁盘
略
在node1,node2 vmx虚拟机配置文件中添加
用于虚拟机打开磁盘用
scsi1.present = "TRUE"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "ocr.vmdk"
scsi1:1.mode = "independent-persistent"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "voting.vmdk"
scsi1:2.mode = "independent-persistent"
scsi1:3.present = "TRUE"
scsi1:3.fileName = "date.vmdk"
scsi1:3.mode = "independent-persistent"
scsi1.virtualDev = "lsilogic"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
scsi1:1.deviceType = "disk"
scsi1:2.deviceType = "disk"
scsi1:3.deviceType = "disk"
将共享磁盘挂载与node1,node2
二.安装centos系统及所需配置
关掉不需要的服务(测试机)
# chkconfig cups off
# chkconfig sendmail off
# chkconfig isdn off
# chkconfig smartd off
# chkconfig iptables off
Linux补丁
rpm -Uvh setarch-2*
rpm -Uvh make-3*
rpm -Uvh glibc-2*
rpm -Uvh libaio-0*
rpm -Uvh compat-libstdc++-33-3*
*rpm -Uvh compat-gcc-34-3*
*rpm -Uvh compat-gcc-34-c++*
*rpm -Uvh gcc-4*
rpm -Uvh libXp-1*
rpm -Uvh openmotif-2*
rpm -Uvh compat-db*
修改机器名,固定IP,hostname,dns,gateway,
修改机器名,ip,网关
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.19.129
NETMASK=255.255.255.0
GATEWAY=192.168.19.2
Eth1 配置同理
配置如下:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0C:29:E0:C2:DE
ONBOOT=yes
DHCP_HOSTNAME=node1
IPADDR=192.168.19.129
NETMASK=255.255.255.0
GATEWAY=192.168.19.2
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:0c:29:e0:c2:e8
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=192.168.86.135
GATEWAY=192.168.86.2
USERCTL=no
IPV6INIT=no
PEERDNS=yes
修改主机名
#vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node1
修改后重启生效
/etc/rc.d/init.d/network restart
编辑/etc/hosts
# (必须要这样)
127.0.0.1 localhost
#public eth0,eth0 必须指定public
192.168.19.129 node1
192.168.19.130 node2
#pri eth1
192.168.86.135 node1-priv
192.168.86.136 node2-priv
#vip
10.10.10.140 node1-vip
10.10.10.141 node2-vip
两个节点要一样,将公网放前,eth0
编辑添加/etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
使配置生效:
/sbin/sysctl –p
编辑添加/etc/security/limits.conf
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
编辑添加/etc/pam.d/login
session required /lib/security/pam_limits.so
编辑/etc/selinux/config
SELINUX=disabled
安装hangcheck-timer.ko模块
Hangcheck-timer 是Linux 提供的一个内核级的IO-Fencing 模块, 这个模块会监控Linux 内核运行状态, 如果长时间挂起, 这个模块会自动重启系统。 这个模块在Linux 内核空间运行, 不会受系统负载的影响。 这个模块会使用CPU的Time Stamp Counter(TSC) 寄存器,这个寄存器的值会在每个时钟周期自动增加, 因此使用的是硬件时间,所以精度更高。
配置这个模块需要2个参数: hangcheck_tick 和 hangcheck_margin。
hangcheck_tick用于定义多长时间检查一次,缺省值是30秒。 有可能内核本身很忙, 导致这个检查被推迟, 该模块还允许定义一个延迟上限,就是hangcheck_margin, 它的缺省值是180秒。
Hangcheck-timer 模块会根据hangcheck_tick 的设置,定时检查内核。只要2次检查的时间间隔小于 hangcheck_tick + hangchec_margin, 都会认为内核运行正常,否则就意味着运行异常,这个模块会自动重启系统。
CRS本身还有一个MissCount 参数,可以通过crsctl get css miscount 命令查看。
当RAC结点间的心跳信息丢失时, Clusterware 必须确保在进行重构时,故障结点确实是Dead 状态,否则结点仅是临时负载过高导致心跳丢失,然后其他结点开始重构,但是结点没有重启,这样会损坏数据库。 因此MissCount 必须大于 hangcheck_tick+hangcheck_margin的和
hangcheck-timer 最初只由 Oracle 提供;不过,从内核版本 2.4.9-e.12 和更高版本开始,此模块目前包含在 Red Hat Linux 中
# find /lib/modules -name "hangcheck-timer.ko"
设置并加载
配置文件
#echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modprobe.conf
手动加载hangcheck模块进行测试
oracle 负责在需要时加载hangcheck-timer模块,不必在所有启动文件(/etc/rc.local)中执行每次启动时设置hangcheck-timer内核的加载
设置系统启动自动加载模块
#echo "/sbin/modprobe hangcheck-timer" >> /etc/rc.local
(注:你不必在每次重新启动后使用 modprobe 或 insmod 手动加载 hangcheck-timer 内核模块。Oracle 将在需要时自动加载 hangcheck-timer 模块。)
测试hangcheck-timer内核模块是否使用/etc/modprobe.conf 文件中定义的正确擦数使用modprobe命令
尽管能通过向其传递相应的参数(如 insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180)
确认模块加载成功
验证使用modprobe.conf 文件中的参数
modprobe hangcheck-timer
grep Hangcheck /var/log/messages | tail -2
即:
#echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modprobe.conf
#echo "/sbin/modprobe hangcheck-timer" >> /etc/rc.local
modprobe hangcheck-timer
grep Hangcheck /var/log/messages | tail -2
用户组账号
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/useradd -u 501 -d /home/oracle -g "oinstall" -G "dba" -m -s /bin/bash oracle
id oracle
账号密码
Passwd oracle
注意:uid..节点需要相同
挂载目录
mkdir -p /u01/app/oracle/product/10.2.0/db
mkdir -p /u01/app/oracle/product/10.2.0/crs
chown -R oracle:oinstall /u01
chmod -R 755 /u01
配置用户环境(rac集群中红色字体需要修改不同的SID)
#vi /etc/profile
if [ $USER = "oracle" ];then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
#source /etc/profile
#vi /home/oracle/.bash_profile添加下列语句:
#user specific environment and startup programs
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:ORACLE_HOME/rdbms/admin
#each RAC node must have a unique ORACLE_SID.(ie. Ocr1,ocr2,..)
export ORACLE_SID=node1
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/X11R6:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$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
export LANG=en_US
##################################################
# Oracle Alias
##################################################
alias ls="ls -FA"
alias vi=vim
alias base='cd $ORACLE_BASE'
alias home='cd $ORACLE_HOME'
alias alert='tail -200f $ORACLE_BASE/admin/RACDB/bdump/alert_$ORACLE_SID.log'
alias tnsnames='vi $ORACLE_HOME/network/admin/tnsnames.ora'
alias listener='vi $ORACLE_HOME/network/admin/listener.ora'
设计共享磁盘
磁盘
容量
用途
分区
Sdb
100M
OCR
Sdb1
Sdc
100M
VOTE
Sdc1
sdd
1G
暂无
Sdd1
sde
3G
DATE
Sde1
Sde
3G
RECO
Sde2
配置raw设备+ASM(Linux下,asm的对象是分区,不是disk)
Redhat5之前系统通过etc/sysconfig/rawdevices (略)
Redhat5之后取消,通过udev规则进行配置
在node1上
进行格式化
Sdb 100M ocr /sdb1
Sdc 100M voting /sdc1
在格式化的时候,在另一个节点要重启系统,如果另一个节点无法识别,在clusterware安装节点2执行root.sh会报错误
编辑vi /etc/udev/rules.d/60-raw.rules 这个文件。
格式化磁盘fdisk /sdn
ACTION=="add", KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
重启服务
Start_udev
查看
Ls -lrt /dev/raw
Raw -aq
[root@localhost dev]# raw -aq
/dev/raw/raw1: bound to major 8, minor 17
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"
同理对sdc1进行同样操作
最终配置为:
ACTION=="add", KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add", KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"
配置为raw设备,以字符方式访问设备,读写设备不需要缓冲区
设置raw设备用户和权限
oracle oinstall 640
ACTION=="add", KERNEL=="raw[1-2]", OWNER="oracle", GROUP="oinstall", MODE="660"
重启服务及查询
Start_udev
ls -lrt /dev/raw
Raw -aq
在格式化的时候,重启另一个节点node2
ASM 设置
Sdd 1G
Sde1 3G
Sde2 3G
Asm所需包
oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm
oracleasm-2.6.18-92.el5xen-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
oracleasm-support-2.1.3-1.el5.i386.rpm
Rpm -ivh *rpm --nodeps --force
在两个节点上正常安装
运行/etc/init.d/oracleasm configure
Answer:oracle,dba,y,y
在node1
#oracleasm createdisk VOL1 /dev/sde1
#oracleasm createdisk VOL2 /dev/sde2
#oracleasm scandisks
#oracleasm listdisks
在node2进行识别
#oracleasm scandisks
#oracleasm listdisks
/****节点一结束,通过虚拟机,create节点2*****/
修改hostname
将node1改成node2
[root@node1 ~]# hostname node2
[root@node1 ~]# vi /etc/sysconfig/network
这样重启之后机器名称就会变成node2了。
[]#/etc/rc.d/init.d/network restart
修改机器名,固定IP,hostname,dns,gateway,
/etc/sysconfig/network-script/ifcfg-eth0
/etc/sysconfig/network-script/ifcfg-eth1
修改机器名,ip,网关
#vi /etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.19.130
NETMASK=255.255.255.0
GATEWAY=192.168.19.2
/////////////////////////////////////////以上node1,node2都要做////////////////////////////////////////////////////
为用户等效配置配置ssh
Node1
Oracle用户登录
cd home
mkdir .ssh
Chmod 755 .ssh
/usr/bin/ssh-keygen -t rsa //在.ssh目录下生成id_rsa.pub
/usr/bin/ssh-keygen -t dsa //在.ssh 目录下生成id_dsa.pub
//生成authorized_keys文件
Cat id_rsa.pub>> authorized_keys
Cat id_dsa.pub>> authorized_keys
在node2上
cd home
mkdir .ssh
Chmod 755 .ssh
/usr/bin/ssh-keygen -t rsa //在.ssh目录下生成id_rsa.pub
/usr/bin/ssh-keygen -t dsa //在.ssh 目录下生成id_dsa.pub
//生成authorized_keys文件
在node1上
[oracle@node1 ~]$ ssh node2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
[oracle@node1~]$ ssh node2 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
Chmod 644 ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys node2:~/.ssh/
在node2
chmod 644 ~/.ssh/authorized_keys
测试连通性
Ssh node1 date
Ssh node2 date
Ssh node1-priv date
Ssh node2-priv date
/********************************配置时间同步*******************************/
节点node1做ntp服务器,节点node2做ntp客户端。
Node1:vi /etc/ntp.conf
restrict 192.168.19.0 mask 255.255.255.0 nomodify
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
server 127.127.1.0
server 192.168.19.129 prefer
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
authenticate no
keys /etc/ntp/keys
运行:
chkconfig ntpd on
/etc/init.d/ntpd restart
Node2:vi /etc/ntp.conf
restrict 0.0.0.0 mask 0.0.0.0 nomodify
server 192.168.19.129 prefer
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
authenticate no
keys /etc/ntp/keys 运行:
ntpdate node1
注意: ntp服务器启动后,需要5分钟左右才能提供服务。
Note2定时执行同步时间计划:
每一分钟进行同步一次
crontab –e
*/1 * * * * /usr/sbin/ntpdate 10.10.10.138
解决虚拟机时间过快的问题:
1)vi /boot/grub/grub.conf
添加kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet clock=pit nosmp noapic nolapic
2)gui运行:
#/usr/lib/vmware-tools/bin32/vmware-toolbox
补充
Linux下修改时间
Date
Clock -w 立即写入cmos
时间同步方式二
运行下来脚本
#! /bin/bash
while true
do
/usr/bin/rdate -s 192.168.19.129
sleep 3
done
三.安装clusterware软件
上次crs软件到node1中,解压
1>检测安装环境是否满足要求
./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose
内存,
gcc3.2
compat-gcc-7.3-2.96.128 down
compat-gcc-c++-7.3-2.96.128down
compat-libstdc++-7.3-2.96.128 down
compat-libstdc++-devel-7.3-2.96.128
rpm -Uvh gcc-4.1.2-42.el5.i386.rpm --nodeps --force
rpm -Uvh compat-gcc-34-* --nodeps --force
rpm -Uvh compat-libstdc++* --nodeps --force
找到包rpm 加上--nodeps --force 参数强制安装
rpm -Uvh <name> --nodeps --force
$su – oracle
$cd clusterware
$./runInstaller –ignoreSysPrereqs
注意:指定 eth0 的类型时public
2>指定oct,votingdisk
存储本身redundancy,或Oralce提供的normal Redundancy
Normal redundancy
Oct,提供一个冗余备份
Voting 提供两个备份
3>在每个节点上运行第一个脚本
sh orainstRoot.sh
4>每个节点上运行
Root.sh
在执行最后一个脚本的时候,自动调用vipca
在执行第二个脚本之前修改以下参数
A:#vi /u01/app/oracle/product/在node2节点上:
10.2.0/crs/bin/vipca 添加红色内容
If [ "$arch" = "i686" -o "$arch" = "ia64" ]
then
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
fi
#End workaround
unset LD_ASSUME_KERNEL
B: # vi /u01/app/oracle/product/10.2.0/crs/bin/srvctl 添加红色内容
#Remove this workaround when the bug 3937317 is fixed
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL
注意:vipca命令也是用root用户来运行的,只需要在一个节点运行就可以
可能遇到的问题
问题1: vipca报错,是redhat的bug
Running vipca(silent) for configuring nodeapps
/home/oracle/crs/oracle/product/10/crs/jdk/jre//bin/java: error while loading
shared libraries: libpthread.so.0: cannot open shared object file:
No such file or directory
解决方法:
Remember to re-edit these files on all nodes:
<CRS_HOME>/bin/vipca
<CRS_HOME>/bin/srvctl
<RDBMS_HOME>/bin/srvctl.
<ASM_HOME>/bin/srvctl
after applying the 10.2.0.2 or 10.2.0.3 patchsets, as these patchset will still include those settings unnecessary for OEL5 or RHEL5 or SLES10. This issue was raised with development and is fixed in the 10.2.0.4 patchsets.
Note that we are explicitly unsetting LD_ASSUME_KERNEL and not merely commenting out its setting to handle a case where the user has it set in their environment (login shell).
$ vi vipca
... ...
Linux) LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:$ORACLE_HOME/srvm/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
echo $CLASSPATH
#Remove this workaround when the bug 3937317 is fixed
arch=`uname -m`
if [ "$arch" = "i686" -o "$arch" = "ia64" ]
then
# LD_ASSUME_KERNEL=2.4.19
# export LD_ASSUME_KERNEL
echo -- 这里一定要加上,不然返回会报错
fi
#End workaround
问题2: 如果遇到这个错误:
# vipca
Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]
解决方法:
在CRS_HOME下 运行 oifcfg 命令:
Node1
# ./oifcfg setif -global eth0/192.168.19.129:public
# ./oifcfg setif -global eth1/192.168.86.135:cluster_interconnect
# ./oifcfg getif
eth0 192.168.19.129 global public
eth1 192.168.86.135 global cluster_interconnect
在node2
/bin # ./oifcfg setif -global eth0/192.168.19.130:public
/bin # ./oifcfg setif -global eth1/192.168.1.201:cluster_interconnect
/bin # ./oifcfg getif
eth0 192.168.19.129 global public
eth0 192.168.19.130 global public
eth1 192.168.86.135 global cluster_interconnect
eth1 192.168.86.136 global cluster_interconnect
这时候没有必要在返回重新执行root.sh,需要手工执行vipca命令为两个
节点添加一些必要的进程,哪个节点,无所谓,在此选择node2上
然后在手工运行vipca添加nodeapps resource
即,以root图形用户登录node2,运行#./vipca
配置虚拟vip,创建
6个步骤
Create vip application resource on 2 nodes
Create gsd application resource on 2 nodes
Starting ons application resource on 2 nodes
Starting vip application....
...
问题3:An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0xB7503E29
Function=__libc_free+0x49
Library=/lib/tls/libc.so.6
修改主机名不正确导致的。
RHEL
/etc/sysconfig/network 主机名,如果在/etc/hosts中解析不了。就报这个错误!
在执行第二个节点上执行root.sh,
Expecting the CRS daemons to be up within 600 seconds.
Failure at final check of Oracle CRS stack.
解决办法
在虚拟机node,node2的配置文件中加入
scsi1:1.shared = "true"
scsi1:2.shared = "true"
scsi1:3.shared = "true"
scsi1:4.shared = "true"
scsi1:5.shared = "true"
5>Clusterware 安装结束
确认安装
Node1,node2
[oracle@node1 scripts]$ /u01/app/oracle/product/10.2.0/crs/bin/olsnodes -n
node1 1
node2 2
[oracle@node1 ~]$ ls -l /etc/init.d/init.*
-r-xr-xr-x 1 root root 1951 Oct 14 05:35 /etc/init.d/init.crs
-r-xr-xr-x 1 root root 4721 Oct 14 05:35 /etc/init.d/init.crsd
-r-xr-xr-x 1 root root 35401 Oct 14 05:35 /etc/init.d/init.cssd
-r-xr-xr-x 1 root root 3197 Oct 14 05:35 /etc/init.d/init.evmd
6>检查CRS安装启动情况,用root用户执行
[oracle@node1 scripts]$ crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
如果安装失败,再次运行安装程序,里面可以把之前的安装
[oracle@node2 ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.node1.gsd application 0/5 0/0 ONLINE ONLINE node1
ora.node1.ons application 0/3 0/0 ONLINE ONLINE node1
ora.node1.vip application 0/0 0/0 ONLINE ONLINE node2
ora.node2.gsd application 0/5 0/0 ONLINE ONLINE node2
ora.node2.ons application 0/3 0/0 ONLINE ONLINE node2
ora.node2.vip application 0/0 0/0 ONLINE ONLINE node2
对node1-vip进行双向测试
Ssh node1-vip date
Ssh node1-vip date
....
四.安装Oracle 10gR2 datebase
1检查相关包
binutils-2.15.92.0.2-10.EL4
compat-db-4.1.25-9
control-center-2.8.0-12
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
glibc-2.3.4-2
glibc-common-2.3.4-2
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-9.EL4
libstdc++-devel-3.4.3-9.EL4
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2
libaio-0.3.96
上传安装包,解压10201_database_linux32.zip
2. 在Xmanager 中用oracle用户,运行database的runInstaller -ignoreSysPrereqs
由于从WIN将包传到Linux,解压,遇到
[root@node2 bin]# chmod
chmod: missing operand
Try `chmod --help' for more information
解决办法:
两个方法
for file in `ls ./`; do chmod 644 $file; done
find ./* -type f -exec chmod 644 {} /;
find . -type f -exec chmod 644 {} /;
3. ORACLE安装目录指定到 /u01/app/oracle/product/10.2.0/db
4. 把2个node选择上
5. 选择 Install database Software only
6. 会要求你用完全的root权限运行 root.sh ,分别在2个node上一一运行
7. 安装完毕
五.创建监听netca
创建数据库过程应该,先配置监听,asm,数据库实例
1. oracle 用户在一个node上运行 netca
2. 选择所有node
3. 选择 Listener configuration
4. 添加一个LISTENER, 1521 port ,然后结束配置
监听配置成功后, 2个结点上的Listener 都会坐位Application Resource 注册到CRS中, 这样CRS就可以监控Listener 的运行状态。 我们可以通过 crs_stat -t -v 查看Listener 状态
[oracle@node2 init.d]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora....E1.lsnr application 0/5 0/0 ONLINE ONLINE node1
ora.node1.gsd application 0/5 0/0 ONLINE ONLINE node1
ora.node1.ons application 0/3 0/0 ONLINE ONLINE node1
ora.node1.vip application 0/0 0/0 ONLINE ONLINE node1
ora....E2.lsnr application 0/5 0/0 ONLINE ONLINE node2
ora.node2.gsd application 0/5 0/0 ONLINE ONLINE node2
ora.node2.ons application 0/3 0/0 ONLINE ONLINE node2
ora.node2.vip application 0/0 0/0 ONLINE ONLINE node2
六.创建ASM实例
1. 运行DBCA 命令
2. 选择 configure Automatic Storage Management, 来创建ASM 实例
3. 选择所有结点
4. 输入密码。RAC 的spfile 必须放在共享目录下。 参数文件我们选择第一个initialization parameter。 也可以放在我们建的裸设备上。
5. 修改asm 参数: asm_diskstring = ORCL:VOL*, 这样能让Oracle自动发现这些硬盘
6. ASM 实例创建完后,用Create New 来创建ASM 磁盘组。 我们用VOL1来创建一个DATA 组, VOL2 创建FLASH_RECOVERY_AREA组。
注:
Redundancy 一般选external 就是也就是不考虑冗余,
假如选normal 则是mirror, 至少要一个FailGroup.
选High 就是triple mirror,3倍镜像,需要三个FailGroup
创建完成后,能看到组的状态是Mount, ASM 组必须mount之后才能使用。
[oracle@node2 init.d]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE node1
ora....E1.lsnr application 0/5 0/0 ONLINE ONLINE node1
ora.node1.gsd application 0/5 0/0 ONLINE ONLINE node1
ora.node1.ons application 0/3 0/0 ONLINE ONLINE node1
ora.node1.vip application 0/0 0/0 ONLINE ONLINE node1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE node2
ora....E2.lsnr application 0/5 0/0 ONLINE ONLINE node2
ora.node2.gsd application 0/5 0/0 ONLINE ONLINE node2
ora.node2.ons application 0/3 0/0 ONLINE ONLINE node2
ora.node2.vip application 0/0 0/0 ONLINE ONLINE node2
七.配置dbca创建数据库
1. 用oracle用户运行 dbca
2. 选择custom database
3. 输入数据库的全局名,比如NODe
SID:实例名的前缀
4. 输入系统的角色建立密码
5. 选择ASM 来存储, 分别选择我们刚创建的DATA 和FLASH_RECOVERY_AREA 组
6. Database Services 这里,你选择Add你一个新的service, 随便叫名字,比如oltp。然后选择 TAF Policy,是Basic。 这个服务在RAC 的Failover中会用到,如果在这里没有配置,也可以通过dbca命令, 选择 Services Management 来进行配置
7开始创建数据库
[oracle@node1 ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora....E1.inst application 0/5 0/0 ONLINE ONLINE node1
ora....E2.inst application 0/5 0/0 ONLINE ONLINE node2
ora.NODE.db application 0/1 0/1 ONLINE ONLINE node2
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE node1
ora....E1.lsnr application 0/5 0/0 ONLINE ONLINE node1
ora.node1.gsd application 0/5 0/0 ONLINE ONLINE node1
ora.node1.ons application 0/3 0/0 ONLINE ONLINE node1
ora.node1.vip application 0/0 0/0 ONLINE ONLINE node1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE node2
ora....E2.lsnr application 0/5 0/0 ONLINE ONLINE node2
ora.node2.gsd application 0/5 0/0 ONLINE ONLINE node2
ora.node2.ons application 0/3 0/0 ONLINE ONLINE node2
ora.node2.vip application 0/0 0/0 ONLINE ONLINE node2
八.检测RAC运行状态
[root@node2 bin]# ./srvctl status database -d node
Instance NODE1 is running on node node1
Instance NODE2 is running on node node2
[root@node2 bin]# ./crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora....E1.inst application 0/5 0/0 ONLINE ONLINE node1
ora....E2.inst application 0/5 0/0 ONLINE ONLINE node2
ora.NODE.db application 0/1 0/1 ONLINE ONLINE node2
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE node1
ora....E1.lsnr application 0/5 0/0 ONLINE ONLINE node1
ora.node1.gsd application 0/5 0/0 ONLINE ONLINE node1
ora.node1.ons application 0/3 0/0 ONLINE ONLINE node1
ora.node1.vip application 0/0 0/0 ONLINE ONLINE node1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE node2
ora....E2.lsnr application 0/5 0/0 ONLINE ONLINE node2
ora.node2.gsd application 0/5 0/0 ONLINE ONLINE node2
ora.node2.ons application 0/3 0/0 ONLINE ONLINE node2
ora.node2.vip application 0/0 0/0 ONLINE ONLINE node2
- CentOS5.2+Oracle RAC10gR2+RAW+ASM+VMServer
- ASM 2——raw设备绑定
- Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
- Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
- AS4 下安装Oracle 10g(ASM & RAW)
- Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
- Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
- Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
- Oracle 11g R2 RAC with Raw Disk on CentOS5.7_x64 by VMware Server 2.0
- Oracle ASM 2
- Redhat 5.4 Oracle 10g RAC Openfiler+Multipath + RAW+ ASM 安装文档
- Redhat5.4+Oracle 10g RAC+ASM+RAW的安装文档
- oracle 10g rac(ASM+RAW) + 单机的physical standby的配法!
- Redhat 5.4 Oracle 10g RAC Openfiler+Multipath + RAW+ ASM 安装文档
- Redhat 5.4 Oracle 10g RAC Openfiler+Multipath + RAW+ ASM 安装文档
- ASM using ASMLib and Raw Devices (for oracle 10g)【不错的图文讲解】
- ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (一)
- ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (二)
- C++设计模式(十一) strategy模式
- 【转】SED单行脚本快速参考
- 剖析Spring容器的作用及实现方式
- 他不只是比我多会了一个 Out、Ref 而已,输就输在......
- C#动态显示meta,这段代码出异常
- CentOS5.2+Oracle RAC10gR2+RAW+ASM+VMServer
- 【转】vi 替换
- PL/SQL教程
- DataLoader [NSN-AC]
- DataLoader [NSN-AC]
- Eclipse+EclipseME+WTK构建/配置J2ME开发环境
- 质量糟糕的代码会在项目中像病毒一样传播,尽量在源头控制好代码质量、强调范例的重要性
- 有用的dos命令
- FetchFile [NSN-AC]