免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8572 | 回复: 12
打印 上一主题 下一主题

[VMware] Windows XPVMWare Server 1.0.6CentOS 5.2Oracle 10g Rac (10.2.0.1)安装文档 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-21 16:22 |只看该作者 |倒序浏览
一、测试环境及目的
     主机:一台PC,Intel-32位的芯片(P42.8GHz),1.5GB内存,安装CentOS-5.2-i386-bin-DVD.iso(3.74GB)版本的操作系统,在这个主机(XP)上面安装了2个虚拟机,全部安装CentOS-5.2-i386-bin-DVD.iso版本的操作系统,需要进行内核定制(升级到2.6.18-92.1.10.e15).
     具体软硬件环境:
        CPU:Intel P4 32bit 2.8GHz
        Memory:1.5GB  
        OS:Windows XP , CentOS5.2 for x86_32bit
      App:VMWare Server 1.0.6 build-91891 for windows , Telnet ForCentOS 5.2(in DVD), Ftp For CentOS 5.2(yum From Internet) , XManager2.0 for Windows , jdk-1_5_0_16-linux-i586-rpm.bin
      Oracle:10201_clusterware_linux32.zip , 10201_database_linux32.zip ,oracleasm-support-2.0.4-1.el5.i386.rpm ,oracleasmlib-2.0.3-1.el5.i386.rpm
     目的:实现 Windows XP + VMware Server 1.0.6 + CentOS 5.2 + Oracle 10g Rac + RAW 下的Oracle 10g Rac数据库安装及测试.
  
二、下载软件
1、下载并安装 VMWare Server 1.0.6 build-91891 for windows
2、下载
我的CentOS 5.2 的初始版本号是2.6.18-92.el5,升级内核后是2.6.18-92.1.10.e15(这当然是装好系统后,用uname -r查看的)(虚拟机要多装,才会熟练)
内核为什么要升级,主要是解决时间同步的问题,内核不升级,VMware-tools没有办法安装好,rac之间的时间同步很成问题,这个是我安装了多次rac过程中难以解决的问题,最后发现的解决办法。
ASM: 选择IA32体系的(32位系统体系)
  
(2.6.18-92.1.10.e15)(这个版本的有用,需要下载)
oracleasm-support-2.0.4-1.el5.i386.rpm  
oracleasmlib-2.0.3-1.el5.i386.rpm
oracleasm-2.6.18-92.1.10.el5-2.0.4-1.el5.i686.rpm  
  
  
(2.6.18-92.el5)(这个版本的不用去管了,在这里还保留,是因为算是个过程的记录)
oracleasm-support-2.0.4-1.el5.i386.rpm
oracleasmlib-2.0.3-1.el5.i386.rpm
oracleasm-2.6.18-92.el5-2.0.4-1.el5.i686.rpm
  
(这个版本的有用,需要下载)
oracle clusterware:
   10201_clusterware_linux32.zip
oracle database:
   10201_database_linux32.zip
  
Asm下载地址:
http://www.oracle.com/technology ... x/asmlib/rhel5.html
下载时看清是x86还是x86_64,一定看好自己的内核版本,特别是小版本号
  
clusterware下载地址:
http://www.oracle.com/technology ... 10201linuxsoft.html
  
三、创建共享磁盘并配置虚拟机
     1、在C:\Program Files\VMware\VMware Server目录下执行以下命令:
vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "e:\centosshare\ocfs.vmdk" |用于Oracle集群注册表文件和CRS表决磁盘 (ocr,vote)
  
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "e:\centosshare\asm1.vmdk" |用于Oracle的数据文件  
   
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "e:\centosshare\asm2.vmdk" |用于Oracle的数据文件  
  
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "e:\centosshare\asm3.vmdk" |用于Oracle的数据文件  
  
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "e:\centosshare\asm4.vmdk" |用于Oracle的闪回恢复区  
  
    2、 在vmware server console 创建 vmware guest OS, 选择typical create->Other Linux 2.6.x kernel,VirTual machine name取名 centosrac1, Use Bridgednetworking ,虚拟硬盘20GB,不选择Allocate all disk space now和Split disk into 2GBfiles,其他都是默认.
        硬盘大小选择20GB, 建立方式为 虚拟文件.            
    3、 创建好后vmware guest OS之后, 给guest 加上一块NIC(也就是网卡)(Edit virtual machinesettings -->Add --> Next --> Ethernet Adapter --> Bridged-->完成)
        修改 内存选择1024MB=1G(>800MB您就看不到warning了),  
     4、双击Hard Disk (SCSI 0:0) 选择Advanced...,Mode选择Independent ,Persistent,点击 ok
     5、 关掉vmware console, 在centosrac1目录下面,打开Other Linux 2.6.x kernel.vmx, 在最后空白处添加以下内容
scsi1.present = "TRUE"  
scsi1.virtualDev = "lsilogic"  
scsi1.sharedBus = "virtual"  
  
scsi1:1.present = "TRUE"  
scsi1:1.mode = "independent-persistent"  
scsi1:1.filename = "e:\centosshare\ocfs.vmdk"  
scsi1:1.deviceType = "disk"  
  
scsi1:2.present = "TRUE"  
scsi1:2.mode = "independent-persistent"  
scsi1:2.filename = "e:\centosshare\asm1.vmdk"  
scsi1:2.deviceType = "disk"  
  
scsi1:3.present = "TRUE"  
scsi1:3.mode = "independent-persistent"  
scsi1:3.filename = "e:\centosshare\asm2.vmdk"  
scsi1:3.deviceType = "disk"  
  
scsi1:4.present = "TRUE"  
scsi1:4.mode = "independent-persistent"  
scsi1:4.filename = "e:\centosshare\asm3.vmdk"  
scsi1:4.deviceType = "disk"  
  
scsi1:5.present = "TRUE"  
scsi1:5.mode = "independent-persistent"  
scsi1:5.filename = "e:\centosshare\asm4.vmdk"  
scsi1:5.deviceType = "disk"  
  
disk.locking = "false"  
diskLib.dataCacheMaxSize = "0"  
diskLib.dataCacheMaxReadAheadSize = "0"  
diskLib.DataCacheMinReadAheadSize = "0"  
diskLib.dataCachePageSize = "4096"  
diskLib.maxUnsyncedWrites = "0"  
  
      这段是对vmware使用共享硬盘的方式进行定义,大多数人都知道配置 disk.locking ="false" 却漏掉dataCache
      保存退出之后,重新打开您的vmware-console,您就能够看到vmware guest OS的配置中,都有这些硬盘出现了.
四、安装CentOS操作系统
1、配置虚拟机 CD-ROM device -->Use ISO image -->选择你的CentOS-5.2-i386-bin-DVD.iso文件位置,然后启动虚拟机
2、安装步骤如下:
(如果启动不了,在虚拟机启动的时候,按Esc,选择3 CD-ROM Drive 来启动)
boot: 回车  
跳过对CD media的检查: Skip
Next
Chinese(Simplified)(简体中文)
美国英语式
是(Y)
要选择察看分区细节,把我们添加的盘(vote,ocr,asm)不要包含到Vl00里面了.
把检验和修改分区方案选择上
下一步(N)
是(Y)
选择VolGroup00 -->编辑-->LogVol00-->编辑-->把容量改成18368-->把sdb1 sdc1 sdd1 sde1 sdf1的勾取消掉
达到的效果 如下: /dev/sdb1            LVM PV 1019 1 130 没有挂载点(挂载点是空白的),sdc1 sdd1 sde1 sdf1效果也是一样的.这里只需要添加这些硬盘,这些硬盘不用挂到文件系统上.
下一步(N)
下一步(N)
下一步(N)
下一步(N)
输入你的ROOT用户密码
下一步(N)
  
选择 现在定制(C)
下一步(N)
  
桌面环境  选择 GNOME桌面环境
应用程序  选择 编辑器,其他的是默认的,不修改
开发      选择 GNOME软件开发 开发工具 开发库
服务器    选择 Windows文件服务器
基本系统  选择 基本,其他的是默认的,不修改
虚拟化    不选择
集群      不选择
集群存储  不选择  
下一步(N)
下一步(N)
  
大约花费50分钟时间
然后,VM --> Settings --> CD-ROM  
重新引导
  
前进(F)
防火墙禁用
  
前进(F)
是(Y)
  
SELinux 设置 :禁用
前进(F)
是(Y)
  
把系统时间改成当前时间
前进(F)
  
输入一个新建的一般用户和密码
前进(F)
  
前进(F)
  
完成(F)
确定(O)
  
启动到操作系统后,
  
需要解决以下问题,请按照先后顺序进行解决:
CentOS 5.2 在 VMware下,如何联网到Internet的问题
VMware Server 1.0.6虚拟机Centos OS5.2系统时间同步的问题
CentOS 5.2_FTP设置的问题
CentOS 5.2_Telnet设置的问题
CentOS 5.2_Xmanager设置的问题
备份CentOS 5.2系统后,网卡设置的问题
激活CentOS 5.2第二个网卡的问题
sendmail启动时间过长的问题

论坛徽章:
0
2 [报告]
发表于 2008-10-21 16:26 |只看该作者
a、CentOS 在 VMware下,如何联网到Internet的解决办法
1、我的ADSL的IP地址是 192.168.1.1
2、配置静态IP,子网掩码,网关是
    192.168.1.100
    255.255.255.0
    192.168.1.1
3、主DNS配置的是192.168.1.1
4、操作系统重新启动就可上网了.
步骤:
  系统 --> 管理 --> 网络 --> 双击 eth0 --> 选择 静态设置的IP地址 -->
  按照上面的地址信息配置 --> 硬件设备 --> 取消 关联到MAC 地址的选项-->确定
  --> DNS --> 主 DNS :192.168.1.1  
这里需要把eth1配静态IP,子网掩码
10.0.0.1 255.255.255.0 配置,选择 当计算机启动时激活设备(A), 取消 关联到MAC 地址的选项
eth0配置完新的IP地址,需要取消激活,然后再激活,就能用新的IP地址了.
eth1激活,就能用新的IP地址了.
重新启动操作系统
# reboot
# ping www.sohu.com
  
b、VMware Server 1.0.6虚拟机Centos OS5.2系统时间同步的问题
1、升级并安装gcc和 kernel-devel(要保证操作系统能访问互联网)
# yum install gcc kernel-devel
Is this ok [y/N] : y
Is this ok [y/N] : y
2、检查内核是否一致,这里肯定不一致
# uname -r  
2.6.28-92.e15
# rpm -q kernel-devel  
kernel-devel-2.6.28-92.e15
kernel-devel-2.6.28-92.1.10.e15
3、下载新的内核,并安装
# yum -y upgrade kernel kernel-devel
# reboot
4、验证是否安装好了新内核
# ls -d /usr/src/kernels/$(uname -r)*/include
应该出现类似2.6.18-92.1.10.e15内核的信息
5、在CentOS重新启动后,把虚拟机安装虚拟工具进行安装,go to VM> Install VMware Tools... --> Install  
(如果CentOS光盘还没有退出,可能无法运行虚拟机工具,init 0系统,手动取消CentOS系统光盘(选择Use physical drive:),再启动系统,就可以安装虚拟工具了)
# cd /media/VMware Tools
6、安装虚拟工具
# cp VMwareTools-1.0.6-91891.tar.gz /tmp
# cd /tmp
# tar -zxf VMwareTools-1.0.6-91891.tar.gz
# rm -rf VMwareTools-1.0.6-91891.tar.gz
# cd /tmp/vmware-tools-distrib
# ./vmware-install.pl
7、一切按回车进行安装,选择分辨率时可以是3(推荐),也可以是2
8、修改/etc/X11/xorg.conf文件
# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
# gedit /etc/X11/xorg.conf
新添加以下内容:
Section "Monitor"  
Identifier "vmware"  
EndSection  
  
Section "InputDevice"  
Identifier "Mouse0"  
Driver "vmmouse"  
Option "Protocol" "Auto"  
Option "Device" "/dev/input/mouse0"  
EndSection  
  
然后找到 含有"ServerLayout" 的section在Section跟EndSection之间加上以下一行:
InputDevice "Mouse0" "CorePointer"  
最后重新启动操作系统
9、使用虚拟工具
# cd /usr/bin
# vmware-toolbox
或者
(我的CPU是Intel 32位的P4 2.8GHz的处理器,所以选择bin32,如果你的CPU是AMD 64/Intel 64位的处理器,估计要选择bin64文件夹下的vmware-toolbox,估计,我没有测试过)
# cd /tmp/vmware-tools-distrib/lib/bin32
# ./vmware-toolbox
  
  
选择 第一页的
  Time synchrononiztion between the virtual machine and the host operating system.
前面的按钮按下去.
  
10、修改/boot/grub/grub.conf文件
# cp /boot/grub/grub.conf /boot/grub/grub.conf.bak
# gedit /boot/grub/grub.conf
将kernel /vmlinuz-2.6.18-92.1.10.el15 ro root=/dev/VolGroup00/LogVol00 rhgb quiet  
修改成 kernel /vmlinuz-2.6.18-92.1.10.el15 ro root=/dev/VolGroup00/LogVol00 rhgb quiet clock=pit nosmp noapic nolapic  
  
11、修改文件:C:\Documents and Settings\All Users\Application Data\VMware\VMware Server\config.ini
添加如下三行:
host.cpukHz = "2800000"
host.noTSC = "TRUE"
ptsc.noTSC = "TRUE"
其中:host.cpukHz要根据你的cpu的实际主频修改,例子中表示CPU主频是2.8G。
  
12、遇到 设备eth0似乎不在,将要推迟它的初始化 的解决办法:
# depmod
# reboot
就可以了。
13、测试一下:
# date 09010000
一会,你发现系统时间自动被改回来,就安装成功了.
  
  
c、CentOS 5.2_FTP设置的问题
步骤如下:
1、运行yum install vsftpd命令(如果有the yum lock警告出现,你把那个告诉你的pid,kill掉就能用yum命令了.)
具体的细节如下:
[root@localhost ~]# yum install vsftpd
都选择 y
2、将 /etc/vsftpd/user_list文件和/etc/vsftpd/ftpusers文件中的root这一行注释掉
# root
需要执行的具体命令是:
#cp /etc/vsftpd/user_list /etc/vsftpd/user_list.bak
#cp /etc/vsftpd/ftpusers /etc/vsftpd/ftpusers.bak
#gedit /etc/vsftpd/user_list  把root这一行改成 #root
#gedit /etc/vsftpd/ftpusers   把root这一行改成 #root
3、执行以下命令
# setsebool -P ftpd_disable_trans=1   
如果 SELinux关闭的话,上面的命令无法执行,那么请运行ntsysv,选择vsftpd这个前面加个 *,那么ftp在系统启动后,会自动启动.
这里把防火也也可以关闭了.把iptables前面的*,取消掉.
  
4、service vsftpd  restart  
  
ftp服务器就可以使用了.
  
d、CentOS 5.2_Telnet设置的问题
1、安装软件(前提是把光盘加载到系统上,如果加不上,关闭系统再加上光盘后,再启动系统)
[root@localhost CentOS]# cd /media/CentOS_5.2_Final/CentOS
[root@localhost CentOS]# rpm -ivh xinetd-2.3.14-10.e15.i386.rpm
[root@localhost CentOS]# service xinetd start
[root@localhost CentOS]# rpm -ivh telnet-server-0.17-39.el5.i386.rpm
[root@localhost CentOS]# chkconfig telnet on
  
2、启动telnet服务
  
  1、开启服务
  方法一:使用ntsysv,在出现的窗口之中,将 telnet 勾选起来,然后按下 OK 即可 !
  方法二:编辑 /etc/xinetd.d/telnet
  [root@localhost root]# vi /etc/xinetd.d/telnet
  找到 disable = yes <==就是改这里,将 yes 改成 no 即可!服务预设是关闭的
     方法三:使用chkconfig命令直接开启
  [root@localhost root]# chkconfig telnet on
  2、激活服务
  telnet 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的 telnet 自然也就可以被激活.
  [root@localhost CentOS]# service xinetd restart
或者[root@localhost CentOS]# /etc/rc.d/init.d/xinetd restart    #这个是比较正规的方法
  
  
允许root用户登入,可用下列方法
开启root用户的telnet功能
     1、编辑/etc/default/login文件.(如果没有,就创建一个login文件)
         添加内容:CONSOLE=/dev/console
     2、编辑/etc/securetty   文件   (先要备份securetty文件:cp securetty securetty.bak)
,加上下面几行(最后面添加):
         pts/0   
         pts/1   
         pts/2   
         pts/3 
  
  这样一来, root 将可以直接进入 Linux 主机.不过,建议不要这样做.还可以在普通用户进入后,切换到root用户,拥有root的权限!
      
     不用重新启动服务xinetd,就能有效
  
e、CentOS 5.2_Xmanager设置的问题
1、编辑/etc/gdm/custom.conf,内容如下:(需要先备份文件)
[daemon]
  
[security]
AllowRemoteRoot=true
  
[xdmcp]
Port=177
Enable=1
  
[gui]
  
[greeter]
  
[chooser]
  
[debug]
  
[servers]
  
2、关闭防火墙,不关的话,用不起
#ntsysv 选择iptables ,ip6tables把前面的*号去掉
  
3、重新启动系统就可以了.
  
f、备份CentOS 5.2系统后,网卡设置的问题
  
在桌面上选择 系统-->管理-->网络
选择eth0-->硬件设备-->不要 关联到MAC地址
这样,关闭系统,就可以备份新的系统,新的系统中的网卡就不会出现4个了eth0 eth0.bak eth1 eth1.bak,这些bak文件有问题,无法关闭,如果系统在 不要 关联到MAC地址 这个选项没有选的话,新的拷贝系统就不会出问题了.
  
g、激活CentOS 5.2第二个网卡的问题
在桌面上选择 系统-->管理-->网络
在eth1里面要选择 当计算机启动时激活设备(A) ,不然的话,系统启动后,eth1是不会自动启动的.
  
解决完以上问题
现在的系统具备:以root用户登录ftp,telnet,XMangaer
  
h、sendmail启动时间过长的问题
那就关闭它
# ntsysv
取消sendmail前面的*
  
重新启动操作系统

论坛徽章:
0
3 [报告]
发表于 2008-10-21 16:27 |只看该作者
五、安装Oracle Rac前的系统准备
1、修改/etc/hosts文件,如下所示  
# cp /etc/hosts /etc/hosts.bak
# gedit /etc/hosts
127.0.0.1       localhost.localdomain        localhost(这里必须这样修改,否则RAC节点名出现在回送地址中,安装RAC期间可能会报错)  
192.168.1.100   rac1.localdomain             rac1
192.168.1.101   rac2.localdomain             rac2  
  
10.0.0.1        rac1-priv.localdomain        rac1-priv
10.0.0.2        rac2-priv.localdomain        rac2-priv
  
192.168.1.200   rac1-vip.localdomain         rac1-vip
192.168.1.201   rac2-vip.localdomain         rac2-vip
  
  
2、编辑/etc/sysconfig/network文件
# cp /etc/sysconfig/network /etc/sysconfig/network.bak
# gedit /etc/sysconfig/network
把hostname=localhost.localdomain改成hostname=rac1.localdomain
  
3、在桌面上选择 系统-->管理-->网络
把eth0 的自动获取ip地址,改成静态地址192.168.1.100 255.255.255.0
先激活eth1,然后再把eth1 的自动获取ip地址,改成静态地址10.0.0.1 255.255.255.0
注:在eth1里面要选择 当计算机启动时激活设备(A) ,不然的话,系统启动后,eth1是不会自动启动的.
  
4、设置共享内存和信号参数
  
执行一下命令:
#cp /etc/sysctl.conf /etc/sysctl.conf.bak
#gedit /etc/sysctl.conf
  
编辑/etc/sysctl.conf文件,添加如下信息,这些信息可以根据自己的机器实际情况来调整  (1048576=1G存储空间=1024*1024 262144=256M)
net.core.rmem_default=262144  
net.core.wmem_default=262144  
net.core.rmem_max=262144  
net.core.wmem_max=262144  
  
kernel.shmmni = 4096  
kernel.sem = 250 32000 100 128  
  
fs.file-max = 65536  
net.ipv4.ip_local_port_range = 1024 65000  
  
5. 配置 hangcheck-timer 内核模块  
         该模块是用来监控集群的状态情况,linux as4中已经安装了此模块,使用下面的命令确认  
         find /lib/modules -name "hangcheck-timer.o" 看看有没有,如果有,配置并加载该模块  
         #echo "/sbin/modprobe hangcheck-timer" >> /etc/rc.local  
         #modprobe hangcheck-timer  
         #grep Hangcheck /var/log/messages | tail -2  
         Jul 31 15:01:49 ha2pub kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).  
         如果看到上面的信息,说明模块的设置工作正确  
   配置Hangcheck计时器
         # cd /etc/rc.d/
         # cp rc.local rc.local.bak
         # gedit rc.local
         在最后面添加新的一行:
         modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180
  
6. 在节点上创建oracle用户和目录  
         #groupadd -g 1002 oinstall
         #groupadd -g 1001 dba  
         #useradd -u 1001 -g oinstall -G dba oracle  
         #passwd oracle  
         # id nobody 查看是否存在匿名用户,如不存在则创建.
         以oracle用户登陆,分别建立两个目录  
         # su - oracle
         $mkdir /home/oracle/app 用于安装oracle 数据库  
         $mkdir /home/oracle/orcl 用于Oracle 集群文件系统 (OCFS) 的挂载点  
  
         修改oracle用户的.bash_profile文件如下所示  
         __________________________________________________________________  
# .bash_profile
  
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=/home/oracle/app/crs/
export ORACLE_SID=RAC1
  
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/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 NLS_LANG=american_america.ZHS16GBK
  
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
         . ~/.bashrc
fi
  
# User specific environment and startup programs
  
PATH=$PATH:$HOME/bin
  
export PATH
  
ulimit -u 16384 -n 65536
  
  
******************************************************
以下的不用加
if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
     ulimit -p 16384
     ulimit -n 65536
   else
     ulimit -u 16384 -n 65536
   fi
fi
________________________________________________________________________  
注意,在第二个节点上,修改SID=RAC2  
  
7、安装所需的rpm包(在安装光盘下)
compat-db-4.2.52-5.1.i386.rpm
compat-gcc-34-3.4.6-4.i386.rpm
compat-gcc-34-c++-3.4.6-4.i386.rpm
compat-libgcc-296-2.96-138.i386.rpm
compat-libstdc++-296-2.96-138.i386.rpm
compat-libstdc++-33-3.2.3-61.i386.rpm
fontconfig-devel-2.4.1-7.el5.i386.rpm
freetype-devel-2.2.1-19.el5.i386.rpm
libaio-0.3.106-3.2.i386.rpm
libaio-devel-0.3.106-3.2.i386.rpm
libXp-1.0.0-8.1.el5.i386.rpm
openmotif22-2.2.3-18.i386.rpm
openmotif-2.3.0-0.5.el5.i386.rpm
  
命令如下:
#cd /media/CentOS_5.2_Final/CentOS
#rpm -ivh compat-db-4.2.52-5.1.i386.rpm
...
以下的命令类似,安装完所有上面所列出的包
  
8、配置shell对oracle的限制
# cd /etc/security/
# cp limits.conf limits.conf.bak
# gedit limits.conf
在最后面添加新的一行:
#For Oracle
oracle         soft             nproc             2047
oracle         hard             nproc             16384
oracle         soft             nofile             1024
oracle         hard          nofile             65536
oracle         soft         memlock            3145728
oracle         hard         memlock            3145728
  
*               soft    nproc   2047
*               hard    nproc   16384
*               soft    nofile  1024
*               hard    nofile  65536
  
以上的限制需要启用pam模块的一个选项
# cd /etc/pam.d/
# cp login login.bak
# gedit login
在最后面添加新的一行:
#For Oracle
session         required  /lib/security/pam_limits.so
  
  
# cp /etc/selinux/config /etc/selinux/config.bak
# gedit /etc/selinux/config  
SELINUX=disabled
  
9、关闭系统,将centosrac1拷贝一份(整个文件夹),把名字改成centosrac2 ,是把Other Linux 2.6.xkernel.vmx中的displayName = "centosrac1"改成displayName = "centosrac2"
#init 0
  
10.单独启动 centosrac2,修改ip地址和hostname
a、编辑/etc/sysconfig/network文件
把hostname=rac1.localdomain改成hostname=rac2.localdomain
  
b、在桌面上选择 系统-->管理-->网络
把eth0 的静态地址192.168.1.100 改成 192.168.1.101
把eth1 的的静态地址10.0.0.1 改成 10.0.0.2
注:在eth1里面要选择 当计算机启动时激活设备(A) ,不然的话,系统启动后,eth1是不会自动启动的.
  
c、在第二个节点上,修改/etc/oracle/.bash_profile 中ORACLE_SID=orcl2

论坛徽章:
0
4 [报告]
发表于 2008-10-21 16:28 |只看该作者
11.建立节点之间的互信(建议使用方法1来完成此项设置)
  
方法1:
Create the /etc/hosts.equiv file as the root user.
#touch /etc/hosts.equiv
#chmod 600 /etc/hosts.equiv
#chown root:root /etc/hosts.equiv
Edit the /etc/hosts.equiv file to include all the RAC nodes:  
# cp /etc/hosts.equiv /etc/hosts.equiv.bak
# gedit /etc/hosts.equiv
+rac1 oracle
+rac2 oracle
+rac1-priv oracle
+rac2-priv oracle
  
需在两台计算机都要运行:
#su - oracle
$ssh-keygen  -t  rsa 生成密钥对,使用空密码
生成密钥对:  
只需在一台服务器上操作:
[oracle@rac1 ~]$ ssh 192.168.1.100  cat  /home/oracle/.ssh/id_rsa.pub >> authorized_keys
[oracle@rac1 ~]$ ssh 192.168.1.101  cat  /home/oracle/.ssh/id_rsa.pub >> authorized_keys
[oracle@rac1 ~]$ scp authorized_keys 192.168.1.100:/home/oracle/.ssh/
[oracle@rac1 ~]$ scp authorized_keys 192.168.1.101:/home/oracle/.ssh/
需在两台计算机上操作:
[oracle@rac1 ~]$ chmod  600  /home/oracle/.ssh/authorized_keys
[oracle@rac2 ~]$ chmod  600  /home/oracle/.ssh/authorized_keys
  
#ssh-keygen  -t  rsa 生成密钥对,使用空密码
生成密钥对:  
只需在一台服务器上操作:
[root@rac1 ~]# ssh 192.168.1.100  cat  /root/.ssh/id_rsa.pub >> authorized_keys
[root@rac1 ~]# ssh 192.168.1.101  cat  /root/.ssh/id_rsa.pub >> authorized_keys
[root@rac1 ~]# scp authorized_keys 192.168.1.100:/root/.ssh/
[root@rac1 ~]# scp authorized_keys 192.168.1.101:/root/.ssh/
需在两台计算机上操作:
[root@rac1 ~]# chmod  600  /root/.ssh/authorized_keys
[root@rac2 ~]# chmod  600  /root/.ssh/authorized_keys
  
所有的验证:
在两台计算机上的root权限和oracle权限下,都要运行以下命令:
         ssh localhost.localdomain date  
         ssh rac1 date
         ssh rac2 date
         ssh rac1-priv date
         ssh rac2-priv date
         ssh rac1.localdomain date
         ssh rac2.localdomain date
         ssh rac1-priv.localdomain date
         ssh rac2-priv.localdomain date
如果有问yes/no,都输入yes,只要以上命令都能在不输入密码的情况下,执行完毕,说明设置是对的.
  
  
方法2:  
         我采用的是ssh,具体过程有很多文档说明,这里省略.分别要建立root用户,oracle用户的互信.  
         #cp /etc/hosts.allow /etc/hosts.allow.bak
         #gedit /etc/hosts.allow
         添加 sshd:ALL
         # /etc/rc.d/init.d/sshd restart
  
1. 分别从rac1和rac2上登录作为root后运行ssh-keygen,目的是简单地在/root下创建目录.ssh,当提示输入  
  passphase时打入两次回车.这将生成/root/.ssh/identity and /root/.ssh/identity.pub  
  
2. 先测试一下,从rac1登录作为root,打入#ssh rac2,会要求提示root password.   
3. 现在从rac1登录作为root,运行scp /root/.ssh/id_rsa.pub rac2:/root/.ssh/authorized_keys. ,
  文件名必须不能弄错.  
  
4.现在再从rac1运行#ssh rac2则不需要密码了:)  
同理rac2 也是这样的(重复第3步)
  
具体的指令如下:
rac1上,以root用户登录
#ssh-keygen 输入两次回车
#scp /root/.ssh/id_rsa.pub rac1:/root/.ssh/authorized_keys
输入密码
#scp /root/.ssh/id_rsa.pub rac2:/root/.ssh/authorized_keys
  
rac2上,以root用户登录
#ssh-keygen 输入两次回车
#scp /root/.ssh/id_rsa.pub rac2:/root/.ssh/authorized_keys1
输入密码
#cd /root/.ssh
#cat authorized_keys1>>authorized_keys
#scp /root/.ssh/id_rsa.pub rac1:/root/.ssh/authorized_keys1
  
rac1上,以root用户登录
#cd /root/.ssh
#cat authorized_keys1>>authorized_keys
  
rac1上,以oracle用户登录
$ssh-keygen 输入两次回车
$scp /home/oracle/.ssh/id_rsa.pub rac1:/home/oracle/.ssh/authorized_keys
输入密码
$scp /home/oracle/.ssh/id_rsa.pub rac2:/home/oracle/.ssh/authorized_keys
  
rac2上,以oracle用户登录
$ssh-keygen 输入两次回车
$scp /home/oracle/.ssh/id_rsa.pub rac2:/home/oracle/.ssh/authorized_keys1
输入密码
$cd /home/oracle/.ssh
$cat authorized_keys1>>authorized_keys
$scp /home/oracle/.ssh/id_rsa.pub rac1:/home/oracle/.ssh/authorized_keys1
  
rac1上,以oracle用户登录
$cd /home/oracle/.ssh
$cat authorized_keys1>>authorized_keys
   
  
然后在分别以root用户,oracle在两个节点上执行如下命令 ,
         ssh localhost.localdomain date  
         ssh rac1 date
         ssh rac2 date
         ssh rac1-priv date
         ssh rac2-priv date
         ssh rac1.localdomain date
         ssh rac2.localdomain date
         ssh rac1-priv.localdomain date
         ssh rac2-priv.localdomain date
如果需要输入(yes/no)?输入yes,测试完所有命令,如果都不要输密码,就配置成功了.
  
  
12、建立节点时间同步  
a、两台计算机以rac1为时间标准
在rac1上,以root用户登录
# cd /etc/xinetd.d
# cp time-stream time-stream.bak
# gedit time-stream
把disable = yes改成 disable = no
# service xinetd restart
# rdate -s rac1  
# hwclock -w  
就可以了.
  
在rac2上,以root用户登录
# rdate -s rac1
# hwclock -w  
就可以了.
  
这时也可以把rac2的校时服务开启
# cd /etc/xinetd.d
# cp time-stream time-stream.bak
# gedit time-stream
把disable = yes改成 disable = no
# service xinetd restart
# rdate -s rac1  
# hwclock -w  
就可以了.
b、系统启动后,rac1向ntp server校时 (由于和本机同步,所以不用ntp校时了,b这一步可以不做)
在rac1上,以root用户登录
#crontab -e   
//crontab -l 是列出任务
//crontab -r 是删除所有任务
添加如下内容:
  * * * * *    /usr/sbin/ntpdate time.stdtime.gov.tw | hwclock -w
意思是,每分钟更新时间一次.
#date 09010000
#service crond restart
就可以看效果了.
c、系统启动后,rac2向rac1校时
在rac2上,以root用户登录
在/etc/rc.d/init.d/下写一个脚本
#cd /etc/rc.d/init.d/
#gedit uptimefromrac1
内容:
#!/bin/bash
/etc/rc.d/init.d/uptimefromrac_1 &
然后:
#gedit uptimefromrac_1
内容:
#!/bin/bash
while(true;)
do
        rdate -s rac1
        sleep 20
done
然后:
#chmod 777 uptimefromrac1
#chmod 777 uptimefromrac_1
# ln -s /etc/rc.d/init.d/uptimefromrac1 /etc/rc.d/rc5.d/S99uptimefromrac1
这样rac2每20秒钟与rac1同步一次时间或者简单点
#crontab -e
  * * * * * rdate -s rac1 | hwclock -w(可以crontab被启动的时机是root用户登录的时机,所以系统启动后,crontab不会被运行,只能用脚本了)
  
  
13、把网卡绑定mac地址(rac1,rac2上,都要执行)
在桌面上选择 系统-->管理-->网络
选择eth0-->硬件设备--> 关联到MAC地址
选择eth1-->硬件设备--> 关联到MAC地址
然后点击 确定.

论坛徽章:
0
5 [报告]
发表于 2008-10-21 16:29 |只看该作者
六、配置磁盘 (2个裸设备4个ASMDISK)(这节内容除了fdisk分区外,只用rac1上运行,其他步骤需要在rac1,rac2上运行)
(如果你后面装好了数据库软件,以及asm部分,这时你想重新装系统,建议你利用vmware-vdiskmanager工具重新生成物理的文件)
1、配置目录
[root@rac1 ~]# mkdir -p /home/oracle/app/oracle    (oracle软件安装目录)(rac2也需要执行)      
[root@rac1 ~]# mkdir -p /home/oracle/app/crs       (集群就绪软件目录)(rac2也需要执行)         
  
注:下面的两个文件不需要创建,建好raw设备直接链接过来即可
/home/oracle/app/crs/ocr.crs    (集群注册)                   OCR大概需要至少100M空间
/home/oracle/app/crs/vote.crs   (表决磁盘)                   voting大概需要至少20M的空间
  
[root@rac1 ~]# chown -R oracle:oinstall  /home/oracle/app    (rac2也需要执行)      
[root@rac1 ~]# chmod -R 775 /home/oracle/app                 (rac2也需要执行)      
  
使用fdisk 对共享磁盘分区,只需在一个节点上执行,创建完后须要分别重起两个节点,重起后查看两个节点的磁盘是否都已经出现了刚才创建的分区
对 /dev/sdb
# fdisk /dev/sdb
m
d
n
p
1
回车
25
t
83
n
p
2
回车
51
t
2
83
w
  
对 /dev/sdc /dev/sdd /dev/sde /dev/sdf都做以下操作:
# fdisk /dev/sdc
m
d
n
p
1
回车
回车
t
83
w
操作完后,得结果大致如下:
其他盘类似,如
#fdisk -l  
    Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          25      200781   83  Linux
/dev/sdb2              26          51      208845   83  Linux
/dev/sdc1               1         261     2096451   83  Linux
/dev/sdd1               1         261     2096451   83  Linux
/dev/sde1               1         261     2096451   83  Linux
/dev/sdf1               1         261     2096451   83  Linux
  
  
2、配置 raw设备 (不能使用lvm+raw)(CentOS安装的时候,缺省是Linux LVM,需要改成Linux,上面那步已经做了)(rac2也需要执行)      
[root@rac1 ~]# raw /dev/raw/raw1 /dev/sdb1
[root@rac1 ~]# raw /dev/raw/raw2 /dev/sdb2
  
注:如果在rac2上执行raw /dev/raw/raw2 /dev/sdb2报错,再执行一次fdisk /dev/sdb ,输入w就可找到了/dev/sdb2这个设备了.
  
如果要取消裸设备的绑定,可以重建绑定这个裸设备到0 0.(如果上面没有出错,这步不用执行)
[root@rac1 ~]# raw /dev/raw/raw1 0 0
  
授权裸设备
[root@rac1 ~]# chown oracle:oinstall /dev/raw/raw[1-2]
[root@rac1 ~]# chmod 660 /dev/raw/raw[1-2]
  
ORACLE用户创建链接:
使用oracle用户
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ ln -s /dev/raw/raw1 /home/oracle/app/crs/ocr.crs
[oracle@rac1 ~]$ ln -s /dev/raw/raw2 /home/oracle/app/crs/vote.crs
[oracle@rac1 ~]$ exit
  
使开机启动自动绑定raw设备
#cp /etc/rc.d/rc.local /etc/rc.d/rc.local.bak.bak
#gedit /etc/rc.d/rc.local  
在文件最后添加如下内容:
raw /dev/raw/raw1 /dev/sdb1
raw /dev/raw/raw2 /dev/sdb2
chown oracle:oinstall /dev/raw/raw[1-2]
chmod 660 /dev/raw/raw[1-2]
3、利用ftp,把下载好的asm 程序ftp到虚拟机上(用root帐户来ftp)(rac2也需要执行)   
oracleasm-support-2.0.4-1.el5.i386.rpm  
oracleasm-2.6.18-92.el5-2.0.4-2.el5.i686.rpm
oracleasmlib-2.0.3-1.el5.i386.rpm
  
4、配置asm 设备(rac2也需要执行)   
[root@rac1 ~]# cd /root   
[root@rac1 ~]# rpm -ivh oracleasm-support-2.0.4-1.el5.i386.rpm  
[root@rac1 ~]# rpm -ivh oracleasm-2.6.18-92.1.10.el5-2.0.4-1.el5.i686.rpm  
[root@rac1 ~]# rpm -ivh oracleasmlib-2.0.3-1.el5.i386.rpm
  
配置ASMLib
(以下操作需要在两个节点上执行)
[root@rac1 ~]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
  
This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting  <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.
  
Default user to own the driver interface []: oracle
Default group to own the driver interface []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration:           [  OK  ]
Creating /dev/oracleasm mount point:                       [  OK  ]
Loading module "oracleasm":                                [  OK  ]
Mounting ASMlib driver filesystem:                         [  OK  ]
Scanning system for ASM disks:                             [  OK  ]
  
以上操作将加载oracleasm.o驱动,并且mount上ASM文件系统,同时我们可以通过以下命令来手工的卸载和加载ASMLib
[root@rac1 ~]# /etc/init.d/oracleasm disable   //出错检查/var/log/messages文件,确认需要更新的内核版本,这个可以不用执行
  
[root@rac1 ~]# /etc/init.d/oracleasm enable    //这个要执行
  
添加init文件使系统启动时自动加载ASMLib
[root@rac1 ~]# cd /etc/rc3.d
[root@rac1 ~]# ln -s ../init.d/oracleasm S99oracleasm
[root@rac1 ~]# ln -s ../init.d/oracleasm K01oracleasm
重新启动系统,确认ASMLib已经可以自动加载
[root@rac1 ~]#lsmod |grep oracleasm
oracleasm      44436  1
以下操作只需在一个节点上操作
创建ASM磁盘(说明:createdisk 是针对分区,不是针对磁盘,即:先应将磁盘分区)
(如果重新做了新的磁盘,你需要用deletedisk 删除了,再生成,保险一点)
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1  
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1   
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sde1   
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL4 /dev/sdf1   
以下操作需在两个节点上操作
[root@rac1 ~]# /etc/init.d/oracleasm scandisks
[root@rac1 ~]# /etc/init.d/oracleasm listdisks
   
[root@rac1 ~]# /etc/init.d/oracleasm listdisks   //列出ASM磁盘
VOL1
VOL2
VOL3
VOL4
如果要删除ASM磁盘通过以下命令
[root@rac1 ~]# /etc/init.d/oracleasm deletedisk VOL4
注意:
    如果是在RAC环境中的某一个节点中添加了ASM磁盘,那么需要在其他的节点上运行scandisk来获取这种变化
[root@rac1 ~]# /etc/init.d/oracleasm scandisks
OK,现在已经完成了创建ASM实例的物理基础,下面开始安装数据库

论坛徽章:
0
6 [报告]
发表于 2008-10-21 16:41 |只看该作者
七、安装Clusterware
注意:    时间同步很重要,否则安装过程出错.因为vmware的时间问题,我在安装到同步文件到rac2这步时,每2秒同步一次时间,不然安装出错.
     在这项配置中,除非特别说明,所有操作都是基于oracle用户的.
  
1、利用ftp,把10201_clusterware_linux32.zip下载到rac1上(用oracle用户下载),并解压
$ cd /home/oracle
$ unzip -q 10201_clusterware_linux32.zip
$ rm -rf 10201_clusterware_linux32.zip
  
2、检查安装环境
在安装crs之前,建议先利用CVU(Cluster Verification Utility)检查 CRS 的安装前环境 (需要先安装cvuqdisk-1.0.1-1.rpm ,位于clusterware/rpm/目录下)
[oracle@rac1]$ /home/oracle/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
  
需要注意几点,其返回的信息中有几个错误可忽略~~
  
.与VIP 查找一组适合的接口有关,错误信息如下:
错误信息如下:
ERROR:
Could not find a suitable set of interfaces for VIPs.
  
这是一个bug,Metalink中有详细说明,doc.id:338924.1,如说明中所述,可以忽略该错误,没什么问题.
  
.有一堆包的验证会出现错误,要么提示找不到,要么是版本不对.例如:
Check: Package existence for "compat-gcc-7.3-2.96.128"
   Node Name                       Status                          Comment         
   ------------------------------  ------------------------------  ----------------
   node2                           missing                         failed         
   node1                           missing                         failed         
Result: Package existence check failed for "compat-gcc-7.3-2.96.128".
  
...........
...........
这之类的吧
  
不用管它们,这也是一个BUG,只要确认节点中都已经安装了正确版本的 compat-* 包即可.
  
.内存检查失败
可以忽略的错误,内存差一点并不会影响到crs的安装,只是慢一些而已.
  
  
2、开始安装crs
  
会遇到Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2这个错误
解决方法如下:(这个方法还没有成功,还没有找到CentOS具体的配置,你在运行runInstaller的时候,需要加上-ignoreSysPrereqs参数,系统检查的时候,强制下一步)
$cd /home/oracle/clusterware/install
$cp oraparam.ini oraparam.ini.bak
$gedit oraparam.ini
### #[Certified Versions]  
Linux=redhat-3,SuSE-9,redhat-4,centos-5,UnitedLinux-1.0,asianux-1,asianux-2]  
再添加  
[Linux-CentOS release 5.2 (Final)-optional]  
TEMP_SPACE=80  
SWAP_SPACE=150  
MIN_DISPLAY_COLORS=256  
  
解决中文乱码的方法:安装JDK方法
把jdk-1_5_0_16-linux-i586-rpm.bin从SUN公司网站下下来以后,ftp到rac1,rac2上(root权限)
# cd /root
# chmod 777 jdk-1_5_0_16-linux-i586-rpm.bin
# ./jdk-1_5_0_16-linux-i586-rpm.bin
按回车到文件最后,输入yes就可以了.
# rm -rf jdk-1_5_0_16-linux-i586-rpm.bin
# exit
  
如果使用中文安装,安装出现的乱码主要原因来自于oracle自带的jre,所以我们首先安装自己的java的jre安装好后
$ cd  /home/oracle/clusterware
$ export ORACLE_HOME=/home/oracle/app/crs
$./runInstaller -ignoreSysPrereqs  -jreLoc /usr/java/jdk1.5.0_16/jre
rac的安装并没有太明显的主从关系,一般我们认为,在哪个上面执行了安装,哪个就是主(实际也不完全是这样,主节点安装的时候,也会自动将文件复制到其它节点的)
这里我们选择rac1进行安装~~
  
  
安装图形界面的步骤:
下一步(N) -->  
下一步(N) -->  
下一步(N) -->  
是(Y) -->  
(1个警告,1个要求待验证.)下一步(N) -->  
是(Y) -->   
添加(A) -->  
从上到下,依次是: rac2.localdomain , rac2-priv.localdomain , rac2-vip.localdomain  -->  
确定(O)  -->  
下一步(N) -->  
选中eth0,点击 编辑(E) -->  
把 专用 选择成 公用 -->  
确定 -->  
下一步(N) -->  
外部冗余(E) -->  
在空白处输入 /dev/raw/raw1 -->  
下一步(N) -->  
外部冗余(E) -->  
在空白处输入 /dev/raw/raw2 -->
下一步(N) -->  
(如果这时报 请检查/dev/raw/raw2是否有oracle权限时
在rac1,rac2上执行:
# chown oralce:oinstall /dev/raw/raw2
# chmod 660 /dev/raw/raw2
就行了.
下一步(N) -->  
)
安装(I),现在等着,大概1小20时分钟时间
  
  
关于磁盘冗余
指定OCR使用外部冗余还是内部冗余,如果服务器作了raid,不需要内部冗余,直接选择外部冗余.
指定表决磁盘(所谓表决磁盘,实际就是一个文件),仍然使用外部冗余.
   
  
3、(一定会碰到这个错误,请在rac1的root.sh执行之前做,rac1,rac2都要做)
错误描述:在/home/oracle/app/crs/bin下,运行vipca就会有这个错误
(这个错误一定会碰见,因此在rac1在执行./root.sh之后,请先解决这个错误)
/home/oracle/app/crs/jdk/jre//bin/java: error while loading sharedlibraries:  libpthread.so.0: cannot open shared object file: No suchfile or directory
可以按照如下方式解决:
  
修改vipca文件(需要在两个节点上操作)
[oracle@rac2 bin]$ cp /home/oracle/app/crs/bin/vipca /home/oracle/app/crs/bin/vipca.bak
[oracle@rac2 bin]$ gedit /home/oracle/app/crs/bin/vipca
找到如下内容:
        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
        fi
        #End workaround
在fi后新添加一行:
unset LD_ASSUME_KERNEL
  
以及srvctl文件 (需要在两个节点上操作)
[oracle@rac2 bin]$ cp /home/oracle/app/crs/bin/srvctl /home/oracle/app/crs/bin/srvctl.bak
[oracle@rac2 bin]$ gedit /home/oracle/app/crs/bin/srvctl
找到如下内容:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
同样在其后新增加一行:
unset LD_ASSUME_KERNEL
  
4、在rac1,rac2上,执行orainstRoot.sh和root.sh脚本.
$ su - root
# cd /home/oracle/app/oracle/oraInventory
# ./orainstRoot.sh
# cd /home/oracle/app/crs
# ./root.sh
  
  
遇到Native: listNetInterfaces:[3]的解决办法:(这个的时机是在rac1,rac2都执行完root.sh后,点确定之前,如果错误没有出现,可以不做这一步)
现象:
[root@rac2 bin]#  ./vipca
Error 0(Native: listNetInterfaces:[3])
   [Error 0(Native: listNetInterfaces:[3])]
解决办法:
[root@rac2 bin]# ./oifcfg iflist
eth0  192.168.1.0
eth1  10.0.0.0
[root@rac2 bin]#  ./oifcfg setif -global eth0/192.168.1.0:public
[root@rac2 bin]#  ./oifcfg setif -global eth1/10.0.0.0:cluster_interconnect
[root@rac2 bin]# ./oifcfg getif
eth0  192.168.1.0  global  public
eth1  10.0.0.0  global  cluster_interconnect
然后新开一个终端,要运行
# unset LANG
# /home/oracle/app/crs/bin/vipca  
进行配置
  
  
遇到:IP地址 "rac1-vip" 已被使用.请输入一个未使用的 IP 地址.的解决办法:
手工重新配置VIP
使用root用户,在rac2上操作(需要图形界面)(这个的时机是在rac1,rac2都执行完root.sh后,点确定之前)
[root@rac2 bin]# unset LANG
[root@rac2 bin]# /home/oracle/app/crs/bin/vipca   
Next
选择eth0
填写rac1和rac2的vip地址,如:
rac1        rac1-vip.localdomain        192.168.1.200         255.255.255.0
rac2        rac2-vip.localdomain        192.168.1.201         255.255.255.0
Next
vipca开始自动配置
  
遇到:
Warning: Cannot convert string "-isas-song ti-medium-r-normal--*-140-*-*-c-*-
gb2312.1980-0" to type FontStruct 的解决办法:
先敲入unset LANG以取消语言设定,然后出来的GUI界面就是英文的,我想只能这样好受一点,总比乱码好一点吧.
  
  
**************************************************************************
启动vip时失败报错,查看日志/home/oracle/app/crs/log/rac1/racg/ora.rac1.vip.log
Default gateway is not defined
设好网关,重试,OK
  
启动ons失败报错,查看日志/home/oracle/app/crs/log/rac1/racg/ora.rac1.ons.log
Failed to get IP for localhost
vi /etc/hosts
添加127.0.0.1              rac1 localhost.localdomain localhost
重试,OK
配置好以后会有一个 eth0:1的虚拟网卡,ip地址为vip
重试 oracle cluster verfication utility ,通过,OK
被*包围的这部分我安装的时候没有出现,但我保留.
  
host and port number already configrued in OCR
**************************************************************************
  
5、最后一步 oracle cluster verfication utility 可能会失败:
  
Checking existence of VIP node application (required)
Check failed.
Check failed on nodes:
         rac2,rac1
  
执行成功后返回图形界面,点击ok,这时开始执行环境配置.
如果在/home/oracle/app/oracle/oraInventory/logs/installActions...文件中
报WARNING: RAC2.localdomain:6200 already configured.WARNING: RAC1.localdomain:6200 already configured.的错误
请执行
$cd /home/oracle/app/crs/bin
$racgons remove_config rac1.localdomain:6200
$racgons remove_config rac2.localdomain:6200
只需要在rac1上执行就行.
至此,Clusterware安装完毕.
  
重新启动两台操作系统
CRS 安装结束  
从/home/oracle/app/crs/bin 目录中运行 olsnodes 验证安装已成功,例如:  
用oracle用户登录
$ cd /home/oracle/app/crs/bin
$ olsnodes
rac1
rac2
Once CRS 已安装并运行;
  
禁止Clusterware在系统重启后自动启动的方法:
# /etc/init.d/init.crs disable
启动Clusterware在系统重启后自动启动的方法:
# /etc/init.d/init.crs enable
  
  
[oracle@rac1 ~]$ /home/oracle/app/crs/bin./crs_stat -t
Name           Type           Target    State     Host         
------------------------------------------------------------
ora.rac1.gsd   application    ONLINE    UNKNOWN   rac1         
ora.rac1.ons   application    ONLINE    UNKNOWN   rac1         
ora.rac1.vip   application    ONLINE    ONLINE    rac1         
ora.rac2.gsd   application    ONLINE    UNKNOWN   rac2         
ora.rac2.ons   application    ONLINE    UNKNOWN   rac2         
ora.rac2.vip   application    ONLINE    ONLINE    rac2   
  
[oracle@rac1 bin]$ crs_stop -all
Attempting to stop `ora.rac1.vip` on member `rac1`
Attempting to stop `ora.rac2.vip` on member `rac2`
Stop of `ora.rac2.vip` on member `rac2` succeeded.
Stop of `ora.rac1.vip` on member `rac1` succeeded.
  
[oracle@rac1 bin]$ crs_start -all
Attempting to start `ora.rac1.vip` on member `rac1`
Attempting to start `ora.rac2.vip` on member `rac2`
Start of `ora.rac1.vip` on member `rac1` succeeded.
Start of `ora.rac2.vip` on member `rac2` succeeded.
上面的这些crs_stat -t输出是我多次安装时出错的状态,
我装好了一次,状态如下:
[oracle@rac1 bin]$ crs_stat -t
Name           Type           Target    State     Host         
------------------------------------------------------------
ora.rac1.gsd   application    ONLINE    ONLINE    rac1         
ora.rac1.ons   application    ONLINE    ONLINE    rac1         
ora.rac1.vip   application    ONLINE    ONLINE    rac1         
ora.rac2.gsd   application    ONLINE    ONLINE    rac2         
ora.rac2.ons   application    ONLINE    ONLINE    rac2         
ora.rac2.vip   application    ONLINE    ONLINE    rac1   
  
查看CRS服务状态
$ ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
  
结果显示正确就可以.不报错的话当然就不需要执行了,如果没有错误你应该也找不到configToolFailedCommands.sh文件.
  
重新启动两台计算机后,如果发现有unknown的状态,解决方法如下:
$ crs_stop -f ora.rac1.gsd
$ crs_start -f ora.rac1.gsd
crs_stop -f 强制关闭,如果不强制-f关闭,那么实在不知道怎么办了.
  
如果crs_stop -f还是启动不了的话,请执行以下语句:
停止CRS:
# /etc/init.d/init.crs stop //或者
# ./crsctl stop crs //或者
$ ./crs_stop –all
启动CRS:
# /etc/init.d/init.crs start //或者
$ ./crsctl start crs
然后等待90秒以后,执行以下指令:
$ ./crsctl check crs
$ ./crs_stat -t
如果还发现有unknown的状态,解决方法如下:
$ ./crs_stop -f ora.rac1.gsd     //关闭unknown状态的节点,ora.rac1.gsd 这个是我的例子,自己相应地改就是了.
$ ./crs_start -f ora.rac1.gsd
最后实现的效果是:
[oracle@rac1 bin]$ crs_stat -t
Name           Type           Target    State     Host         
------------------------------------------------------------
ora.rac1.gsd   application    ONLINE    ONLINE    rac1         
ora.rac1.ons   application    ONLINE    ONLINE    rac1         
ora.rac1.vip   application    ONLINE    ONLINE    rac1         
ora.rac2.gsd   application    ONLINE    ONLINE    rac2         
ora.rac2.ons   application    ONLINE    ONLINE    rac2         
ora.rac2.vip   application    ONLINE    ONLINE    rac1   
  
遇到: 在运行 ./olsnodes 报: 的错误时的解决办法:
# ./oracleasm  scandisks
# ./oracleasm  listdisks
# reboot
重新启动后,就可以了。
  
遇到CRS-0184: Cannot communicate with the CRS daemon.的错误
解决方法:
$ su - root
# /etc/init.d/init.crs start   启动底层服务,rac1,rac2都要启动
# exit
等待90秒钟
(不建议使用以下的解决办法)
$ cd /home/oracle/app/crs/bin
$ ./crsctl start resources  启动资源
如果还是启动不了
更改两个节点的/etc/security/limits.conf
修改下面的配置:
  
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
重新启动系统:
一切正常:
如果遇到unkown,见上面的解决办法.
现在可以安装 Oracle RAC 软件的其余部分了.
**********************************************************************************************
建议:现在就关机,把rac1,rac2虚拟机备份一个,以防后面做错,前面的就白做了.
**********************************************************************************************

论坛徽章:
0
7 [报告]
发表于 2008-10-21 16:42 |只看该作者
八、安装Database软件
(保证$ ./crsctl check crs  $ ./crs_stat -t ,这两个命令执行的结果都是正常)
(要新开启一个终端,防止ORACLE_HOME=/home/oracle/app/crs的影响,我们要的位置是ORACLE_HOME=/home/oracle/app/oracle)
1.开始安装 (oracle用户登录)
$ cd /home/oracle/databases  
$ ./runInstaller -ignoreSysPrereqs  -jreLoc /usr/java/jdk1.5.0_16/jre  
2.安装图形界面的步骤:
下一步(N) -->  
企业版(E)(1.26GB)下一步(N) -->  
下一步(N) -->  
全选(S) -->  
下一步(N) -->  
(1个警告,3个要求待验证.)下一步(N) -->  
是(Y) -->  
  //可能出现 : 问是否升级 选择 否(N) -->  
仅安装数据库软件(S) -->   
下一步(N) -->  
安装(I),现在等着,大概2小时分钟时间
10:51 - 12:54
  
然后在rac1,rac2上,执行root.sh
$ su - root
# cd /home/oracle/app/oracle/product/10.2.0/db_1
# ./root.sh
都是回车
--> 确定
注意点:
1.选择安装节点时,把所有节点都选上
2.选择配置选项时,只安装数据库软件,数据可以留以后再配
     选择:install database software only
3.同样要注意时间同步问题.
  
  
$ su - root
# /etc/init.d/init.crs stop   启动底层服务
报Error while stopping resources.Possible cause : CRSD is down的错误
解决办法:
在重新启动两台虚拟机前,关闭服务(两台都要执行)
# cd /etc/init.d
# ./init.crs disable  
重新启动后,两台计算机都要执行
# cd /etc/init.d
# ./init.crs enable
# ./init.crs start
# ./init.crs stop
# ./init.crs start
就可以了执行(crs_stat -t遇到unknown节点)
$ ./crs_stop -f ...
$ ./crs_start -f ...
比如说: ora.rac1.gsd UNKNOWN
$ ./crs_stop -f ora.rac1.gsd
$ ./crs_start -f ora.rac1.gsd
就可以了.
[oracle@rac1 bin]$ ./crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2
  
  
九、创建数据库和ASM实例
(保证$ ./crsctl check crs  $ ./crs_stat -t ,这两个命令执行的结果都是正常)
显示是乱码的解决方法:
如果你用命令行进入dbca 的,先敲入unset LANG以取消语言设定,然后出来的GUI界面就是英文的,我想只能这样好受一点,总比乱码好一点吧
1.开始安装 (oracle用户登录)
$ cd /home/oracle/app/oracle/product/10.2.0/db_1/bin
$ unset LANG
$ dbca
  
2.安装图形界面的步骤:
Oracle Real Application Clusters database Next -->  
Create a Database Next -->
Select All Next -->  
Custom Database Next-->  
"RAC.WORLD" and "RAC" Next -->
不选择什么  Next -->  
输入数据库密码 Next -->
"Automatic Storage Management (ASM)"  Next -->  
Create initialization parameter file(IFILE) Next -->  
输入sys新的密码 -->  
Yes (DBCA will now create and start the ASM instance)  -->
Yes (Do you want listener on port 1521)  -->
Create New -->  
Disk Group Name 取名字叫 orclvol ,并选中 OCL-VOL1,OCL-VOL2,OCL-VOL3,OCL-VOL4 点ok -->  
Next -->  
Data Area: +ORCLVOL(不用改变) Next -->  
勾选 Specify Flash Recovery Area ,选择Browse... -->
点击 ok -->  
Flash Recovery Area: +ORCLVOL ,Flash Recovery Area Size:2048 MB (不用改变) ,不要勾选 Enable Archiving(归档日志) -->
取消 Oracle Data Mining ,Oracle Text , Oracle OLAP , Oracle Spatial ,留下Enterprise Manager Repository勾选 -->
点击 Standard Database Components...按钮 -->  
不选择 Oracle XML DB,勾选 Oracle JVM -->  
ok -->
Next -->  
Next -->  
选择 Custom ,其他缺省 -->  
Next -->  
Next -->  
Finish -->  
ok
安装完后 ,exit
现在等着很长的时间,因为我是从晚上0:19,在第二天早上6:19发现有集群上的错误,从新启动,到6:52才才装好.反正一句话,这个时间安装得长.
测试一下:
http://192.168.1.100:1158/em
  
安装的过程中
出现 fatal error:ora.rac2.LISTENER_RAC2.lsnr 或者类似的资源 不能启动
解决办法:
$ crs_stop -f ora.rac2.LISTENER_RAC2.lsnr
$ crs_start -f ora.rac2.LISTENER_RAC2.lsnr
$ crs_stop -f ora.rac2.ASM2.asm
$ crs_start -f ora.rac2.ASM2.asm
  
[oracle@rac2 bin]$ ./crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....C1.inst application    ONLINE    ONLINE    rac1
ora....C2.inst application    ONLINE    ONLINE    rac2
ora.RAC.db     application    ONLINE    ONLINE    rac2
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2
  
ora....C2.lsnr : ora.rac2.LISTENER_RAC2.lsnr
ora....C1.lsnr : ora.rac1.LISTENER_RAC1.lsnr
ora....SM2.asm : ora.rac2.ASM2.asm
ora....SM1.asm : ora.rac1.ASM1.asm
ora....C1.inst : ora.RAC.RAC1.inst
ora....C2.inst : ora.RAC.RAC2.inst

论坛徽章:
0
8 [报告]
发表于 2008-10-21 16:44 |只看该作者
测试检查 RAC 实例连接:(在rac1,rac2上分别测试)
验证您能够连接到每个节点上的实例和服务。(注意:这里的password,需要你输入你创建数据库的时候,赋予sys,system,那个初始密码)
sqlplus system/password@rac1  
sqlplus system/password@rac2
sqlplus system/password@rac
登录上后,都执行一下: SQL>select * from gv$instance; 有结果返回就正常了。
再执行
SQL>select instance_name,host_name,archiver,thread#,status from gv$instance;
INSTANCE_NAME   HOST_NAME           ARCHIVER          THREAD# STATUS
RAC2            rac2.localdomain    STOPPED           2       OPEN
RAC1            rac1.localdomain    STOPPED           1       OPEN
  
测试检查数据库配置:(在rac1,rac2上分别测试)
[oracle@rac1 ~]$ export ORACLE_SID=RAC1  // ORACLE_SID=RAC2 ,但不能是 ORACLE_SID=RAC,没有这个资源
[oracle@rac1 ~]$ sqlplus / as sysdba;
SQL> show sga
  
Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size             113247824 bytes
Database Buffers          167772160 bytes
Redo Buffers                2973696 bytes
  
SQL> select file_name,bytes/1024/1024 from dba_data_files;
FILE_NAME                                     BYTES/1024/1024   
+ORCLVOL/rac/datafile/system.262.665602059    400
+ORCLVOL/rac/datafile/undotbs1.263.665602155  200
+ORCLVOL/rac/datafile/sysaux.264.665602193    120
+ORCLVOL/rac/datafile/undotbs2.266.665602251  200
+ORCLVOL/rac/datafile/users.267.665602287     5
+ORCLVOL/rac/datafile/wisettms.273.665626799  100
  
//wisettms是我刚建的,是我通过http://192.168.1.100:1158/em方式进入创建的。
  
SQL> select  group#, type, member,is_recovery_dest_file  from v$logfile order by group#;
GROUP# TYPE    MEMBER                                       IS_REC
1      ONLINE  +ORCLVOL/rac/onlinelog/group_1.258.665601953 NO
1      ONLINE  +ORCLVOL/rac/onlinelog/group_1.259.665601963 YES
2      ONLINE  +ORCLVOL/rac/onlinelog/group_2.260.665601973 NO
2      ONLINE  +ORCLVOL/rac/onlinelog/group_2.261.665601981 YES
3      ONLINE  +ORCLVOL/rac/onlinelog/group_3.268.665608153 NO
3      ONLINE  +ORCLVOL/rac/onlinelog/group_3.269.665608175 YES
4      ONLINE  +ORCLVOL/rac/onlinelog/group_4.270.665608195 NO
4      ONLINE  +ORCLVOL/rac/onlinelog/group_4.271.665608215 YES
SQL> quit
  
[oracle@rac1 ~]$ export ORACLE_SID=+ASM1  // ORACLE_SID=+ASM2 ,但不能是 ORACLE_SID=+ASM,没有这个资源
[oracle@rac1 ~]$ sqlplus / as sysdba;
SQL> show sga
Total System Global Area   92274688 bytes
Fixed Size                  1217884 bytes
Variable Size              65890980 bytes
ASM Cache                  25165824 bytes
  
SQL> show parameter asm_disk
NAME                                 TYPE    VALUE
asm_diskgroups                       string  ORCLVOL
  
SQL> select group_number, name, allocation_unit_sizealloc_unit_size, state, type, total_mb,usable_file_mb,FREE_MB fromv$asm_diskgroup;
GROUP_NUMBER NAME      ALLOC_UNIT_SIZE STATE    TYPE    TOTAL_MB USABLE_FILE_MB  FREE_MB
1            ORCLVOL   1048576         MOUNTED  NORMAL  8188     1350            4747
  
  
SQL> select name,path,header_status,total_mbfree_mb,trunc(bytes_read/1024/1024)read_mb,trunc(bytes_written/1024/1024) write_mb from v$asm_disk;
  
  
测试命令: sqlplus / as sysdba ,分别登录到rac1,rac2上执行select instance_name,host_name from v$instance;
具体结果如下:
[oracle@rac2 ~]$ sqlplus / as sysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Sep 16 23:53:32 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> conn sys/password@rac1 as sysdba
Connected.
SQL> select instance_name,host_name from v$instance;
INSTANCE_NAME                    HOST_NAME
-----------------------------------------------------------------------------------------------------------
RAC1                             rac1.localdomain
SQL>quit
  
测试单个服务:(注意:这里的password,需要你输入你创建数据库的时候,赋予sys,system,那个初始密码)
[oracle@rac1 admin]$ sqlplus / as sysdba
SQL> conn sys/password@rac1 as sysdba
Connected.
  
SQL> SELECT instance_name, host_name FROM v$instance;
INSTANCE_NAME        HOST_NAME
RAC1                 rac1.localdomain
  
SQL> conn sys/password@rac2 as sysdba;
Connected.
SQL> select instance_name,host_name from v$instance;
INSTANCE_NAME      HOST_NAME
RAC2               rac2.localdomain
  
SQL> quit
  
测试集群实例服务:(注意:这里的password,需要你输入你创建数据库的时候,赋予sys,system,那个初始密码)
[oracle@rac1 admin]$ sqlplus / as sysdba
SQL> conn sys/password@rac1 as sysdba
Connected.
SQL> SELECT * FROM v$active_instances;
INST_NUMBER-----------INST_NAME
           1           rac1.localdomain:RAC1
           2           rac2.localdomain:RAC2
SQL> SELECT inst_id, username, sid, serial# FROM gv$session WHERE username IS NOT NULL;
  
  
遇到:
SQL> conn sys/password@rac2 as sysdba;
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
Warning: You are no longer connected to ORACLE.
解决方法如下: 没有找到,最好重新装rac系统。
  
  
测试命令: 察看listner 基本信息,listener.ora, tnsnames.ora
在rac1上:
[oracle@rac2 ~]$ cd app/oracle/product/10.2.0/db_1/network/admin/
[oracle@rac1 admin]$ cat listener.ora  
# listener.ora.rac1 Network Configuration File: /home/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora.rac1
# Generated by Oracle configuration tools.
  
LISTENER_RAC1 =
   (DESCRIPTION_LIST =
     (DESCRIPTION =
       (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.localdomain)(PORT = 1521)(IP = FIRST))
       )
       (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)(IP = FIRST))
       )
       (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
       )
     )
   )
  
在rac2上:
[oracle@rac2 ~]$ cd app/oracle/product/10.2.0/db_1/network/admin/
[oracle@rac2 bin]$ more /home/oracle/app/oracle/product/10.2.0/db_1/network/adm
in/listener.ora
# listener.ora.rac2 Network Configuration File: /home/oracle/app/oracle/product/
10.2.0/db_1/network/admin/listener.ora.rac2
# Generated by Oracle configuration tools.
  
LISTENER_RAC2 =
   (DESCRIPTION_LIST =
     (DESCRIPTION =
       (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521)(IP = FIRST))
       )
       (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521)(IP = FIRS
T))
       )
       (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
       )
     )
   )
  
测试命令: 察看tnsnames.ora 基本信息, rac1 和rac2是一样的,这里只显示rac1上的内容
[oracle@rac1 ~]$ cd app/oracle/product/10.2.0/db_1/network/admin/
[oracle@rac1 admin]$  cat tnsnames.ora  
# tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
  
RAC =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.localdomain)(PORT = 1521))
     (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.localdomain)(PORT = 1521))
     (LOAD_BALANCE = yes)
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = RAC.WORLD)
     )
   )
  
LISTENERS_RAC =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.localdomain)(PORT = 1521))
     (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.localdomain)(PORT = 1521))
   )
  
RAC2 =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.localdomain)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = RAC.WORLD)
       (INSTANCE_NAME = RAC2)
     )
   )
  
RAC1 =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.localdomain)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = RAC.WORLD)
       (INSTANCE_NAME = RAC1)
     )
   )
测试Listener状态:(rac1,rac2都需要运行)
在rac1上:
[oracle@rac1 ~]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 17-SEP-2008 00:29:55
Copyright (c) 1991, 2005, Oracle.  All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_RAC1
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                16-SEP-2008 17:01:55
Uptime                    0 days 7 hr. 28 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /home/oracle/app/oracle/product/10.2.0/db_1/network/log/listener_rac1.log
Listening Endpoints Summary...
   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.200)(PORT=1521)))
   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1521)))
   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Services Summary...
Service "+ASM" has 1 instance(s).
   Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
Service "+ASM_XPT" has 1 instance(s).
   Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
Service "RAC.WORLD" has 2 instance(s).
   Instance "RAC1", status READY, has 2 handler(s) for this service...
   Instance "RAC2", status READY, has 1 handler(s) for this service...
Service "RAC_XPT.WORLD" has 2 instance(s).
   Instance "RAC1", status READY, has 2 handler(s) for this service...
   Instance "RAC2", status READY, has 1 handler(s) for this service...
The command completed successfully
  
在rac2上:
[oracle@rac2 ~]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 17-SEP-2008 00:32:39
Copyright (c) 1991, 2005, Oracle.  All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_RAC2
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                16-SEP-2008 17:02:05
Uptime                    0 days 7 hr. 30 min. 34 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /home/oracle/app/oracle/product/10.2.0/db_1/network/log/listener_rac2.log
Listening Endpoints Summary...
   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.201)(PORT=1521)))
   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.101)(PORT=1521)))
   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Services Summary...
Service "+ASM" has 1 instance(s).
   Instance "+ASM2", status BLOCKED, has 1 handler(s) for this service...
Service "+ASM_XPT" has 1 instance(s).
   Instance "+ASM2", status BLOCKED, has 1 handler(s) for this service...
Service "RAC.WORLD" has 2 instance(s).
   Instance "RAC1", status READY, has 1 handler(s) for this service...
   Instance "RAC2", status READY, has 2 handler(s) for this service...
Service "RAC_XPT.WORLD" has 2 instance(s).
   Instance "RAC1", status READY, has 1 handler(s) for this service...
   Instance "RAC2", status READY, has 2 handler(s) for this service...
The command completed successfully
[oracle@rac2 ~]$  
  
  
启动数据库步骤:
1、首先 能使用$crs_stat -t 命令查看系统状态,如果不能,请执行以下方法:
在两台计算机上都要运行
a、# cd /etc/init.d
    # ./init.crs stop
    # ./init.crs disable
b、两台计算机都需要重新启动
    # reboot
c、两台计算机都需要执行
    # cd /etc/init.d
    # ./init.crs enable
    # ./init.crs start
等待90秒钟,再用crs_stat -t 在两台计算机上测试一下:
    只要不是 ,不管有多少的unknown 都行.
2、其次,使用srvctl操作数据库,不用crs_stop -f ,crs_start -f 来启动服务,因为crs_stop -f,crs_start -f启动服务,你不知道资源启动的先后顺序,牛人可以用这些命令.
a、$ ./srvctl start nodeapps -n rac1  //在rac1上执行
    $ ./srvctl start nodeapps -n rac2  //在rac2上执行
    $ ./srvctl start instance -d rac -i rac1  //在rac1上执行
    $ ./srvctl start instance -d rac -i rac2  //在rac2上执行
    $ ./crs_stat -t  
如果是这样:
表示启动成功,否则,最好是哪个不能启动好,重新启动哪个的操作系统,按照1 、2 步骤来.
  
  
以下这个文档有参考价值:
CRS及相关服务的常用命令的演示
1、查看状态的命令
# su–oracle --先切换到oracle用户
$ crs_stat -t --查看crs及所有的service的状态
$ crsctl check crs --用crsctl命令,检查crs相关服务的状态
$ srvctl status nodeapps -n rac1 (rac2) --使用srvctl查看所有节点上的服务是否正常
$ srvctl status database -d rac --使用srvctl查看数据库状态
启动和关闭相关服务的命令
# su – oracle
$ crs_start–all --启动所有的crs服务
$ crs_stop–all --停止所有的crs服务
$ crsctl start crs --启动crs服务
$ crsctl stop crs --停止crs服务
$ srvctl start nodeapps -n rac1(rac2) --启动某节点上所有的应用
$ srvctl stop nodeapps -n rac1(rac2) --停止某节点上所有的应用
$ srvctl start listener -n rac1(rac2) --启动某个节点的listener
$ srvctl stop listener -n rac1(rac2) --停止某个节点的listener
$ srvctl start instance–d rac–i rac1(rac2) --启动某个instance
$ srvctl stop instance–d rac–i rac1(rac2) --停止某个instance
$ srvctl start database–d rac --启动数据库
$ srvctl stop database–d rac --停止数据库
  
nodeapps : 涉及 gsd , ons , lsnr 这三个服务
   
  
停止Oracle10g RAC的方法:
$ lsnrctl stop (每个节点上停止监听,也可以用srvctl来操作)
$ emctl stop dbconsole (每个节点停止dbconsole)
$ srvctl stop database -d rac (停止数据库所有实例)
$ srvctl stop nodeapps -n rac1 (停节点1服务)
$ srvctl stop nodeapps -n rac2 (停节点2服务)
# /etc/init.d/init.crs stop (root 停cluster 软件)
或者用 $ crs_stop -all
然后# init 0 关闭服务器,或者如果重新启动#init 6
  
启动Oracle10g RAC的方法:
(如果OS重新启动,那么下面的所有服务是自动打开的【除了dbconsole】,不用手工执行了)。
  
$ lsnrctl start (每个节点上启动监听,也可以用srvctl来操作)
$ emctl start dbconsole (每个节点启动dbconsole)
$ srvctl start database -d rac (启动数据库所有实例)
$ srvctl start nodeapps -n rac1 (启动节点1服务)
$ srvctl start nodeapps -n rac2 (启动节点2服务)
# /etc/init.d/init.crs start (root 启动cluster 软件)
或者用 $ crs_start -all
  
  
ora....C2.lsnr : ora.rac2.LISTENER_RAC2.lsnr
ora....C1.lsnr : ora.rac1.LISTENER_RAC1.lsnr
ora....SM2.asm : ora.rac2.ASM2.asm
ora....SM1.asm : ora.rac1.ASM1.asm
ora....C1.inst : ora.RAC.RAC1.inst
ora....C2.inst : ora.RAC.RAC2.inst
  
$ srvctl start nodeapps -n rac1 (启动节点1服务)
我估计等价于
$ crs_start ora.rac1.LISTENER_RAC1.lsnr
$ crs_start ora.rac1.gsd
$ crs_start ora.rac1.ons
$ crs_start ora.rac1.vip
  
如果执行srvctl,报告有资源错误,首先是在rac1,rac2上都执行
# cd /etc/init.d
# ./init.crs stop
都停下后,执行
# ./init.crs start
等待90秒后,
$ ./crs_stat -t
如果还有没有ONLINE的资源,就使用
$ ./crs_stop -f ...
$ ./crs_start -f ...
就可以了。
  
终于贴完了!^_^,希望对你们有帮助!快乐就好!

论坛徽章:
0
9 [报告]
发表于 2009-02-18 08:44 |只看该作者
在Centos 下和rhel下是否一样?

论坛徽章:
0
10 [报告]
发表于 2009-02-18 23:05 |只看该作者

好东西

一直在REDHAT下面做测试,还没在CENTOS下做过,有空试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP