设为首页 收藏本站
查看: 1032|回复: 0

[经验分享] Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档

[复制链接]

尚未签到

发表于 2016-5-15 00:57:47 | 显示全部楼层 |阅读模式
  基于Redhat 5和redhat 4的RAC区别在对raw的处理上。之前做的是redhat 4.7的RAC实验。准备做一个Redhat 5.4的环境。
  
  RAC的一些概念性和原理性知识:
  http://blog.csdn.net/xujinyang/article/details/6837273
  
  RAW+ASM+ REDHAT 4.7 RAC文档
  http://blog.csdn.net/xujinyang/article/details/6829656
  
  服务器主机名
  rac1
  rac2
  公共IP地址(eth0)
  10.85.10.1
  10.85.10.2
  虚拟IP地址(eth0)
  10.85.10.3
  10.85.10.4
  私有IP地址(eth1)
  192.168.1.200
  192.168.1.201
  ORACLE RAC SID
  rac1
  rac1
  集群实例名称
  rac
  OCR(oracle集群注册表)
  /dev/raw/raw1/dev/sdb1200M
  /dev/raw/raw2/dev/sdb2200M
  表决磁盘(voting disk)
  /dev/raw/raw3/dev/sdc1200M
  /dev/raw/raw4/dev/sdc2200M
  /dev/raw/raw5/dev/sdc3200M
  ASM
  /dev/sdd110GVOL1for Oracle Data
  /dev/sdd15GVOL2for flash_recovery_area
  数据库备份
  /dev/sde110G(mkfs -t ext3 /dev/sde1)

  
  
  实验平台:Oracle 10gR2 RAC + RHEL 5.4 +VMServer 2.0
  
  安装步骤:
  1.安装前准备及OS安装配置
  2.安装Oracle 10gR2 clusterware
  3.安装Oracle 10gR2 database
  4.配置netca
  5.创建ASM实例
  6.配置dbca创建数据库
  7.检查RAC状态
  
  一.安装前准备及OS安装配置
  Host OS准备
  1.从Oracle OTN下载oracle 10gR2 for x86 linux,下2个zip,一个是clusterware zip,一个是database zip, comp CD可选.
  2.准备的RHEL 5.4 (x86)
  3.查看Redhat 5.4内核版本:
  [iyunv@redhat5 ~]#uname -a
  Linux redhat5 2.6.18-164.el5xen#1 SMP Tue Aug 18 16:06:30 EDT 2009 i686 i686 i386 GNU/Linux
  4.从Oracle OTN下载ASM, ASMLib, ASMLib support,这些都是针对你的kernel的,不要下错
  http://www.oracle.com/technology/tech/linux/asmlib/index.html
  该页面有下载地址,注意选择CPU类型。里面有asmlib和support。在同一个页面。
  5. VMServer 2.0
  虚拟机Workstation,GSX Server和ESX之间的区别
  http://blog.csdn.net/xujinyang/article/details/6925637
  
  Vmware SERVER简介
  http://blog.csdn.net/xujinyang/article/details/6925653
  
  
  一.OS安装
  1.在vmware server中创建redhat 5虚拟机,取名rac1.内存800M,硬盘15GB。
  2.加上一块NIC网卡。RAC实验需要2块网卡。
  3.用vdiskmanager创建Share Disk。--如果用存储的话,就不用这么折腾了。直接挂上就能分了。
  先创建F:/VM/racshare目录,然后把创建的磁盘文件放到这个目录下。根据前面的分析,我们要创建4个文件。
  在dos下进入vmware的安装目录,找到vmware-vdiskmanager.exe程序,然后执行如下命令:
  vmware-vdiskmanager.exe -c -s 400Mb -a lsilogic -t 2 F:/VM/racshare/ocr.vmdk
  vmware-vdiskmanager.exe -c -s 600Mb -a lsilogic -t 2 F:/VM/racshare/votingdisk.vmdk
  vmware-vdiskmanager.exe -c -s 15000Mb -a lsilogic -t 2 F:/VM/racshare/asm4data.vmdk
  vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 F:/VM/racshare/backup.vmdk
  
  4.到rac1的目录,打开rac1.vmx ,在最后空白处添加这几段内容(一定要最后)
  
  scsi1.present = "TRUE"
  scsi1.virtualDev = "lsilogic"
  scsi1.sharedBus = "virtual"
  --这段是打开scsi1上的使用,并且设置成virtual, controller设置成lsilogic,然后依次添加
  
  scsi1:1.present = "TRUE"
  scsi1:1.mode = "independent-persistent"
  scsi1:1.filename = "F:/VM/racshare/ocr.vmdk"
  scsi1:1.deviceType = "plainDisk"
  
  scsi1:2.present = "TRUE"
  scsi1:2.mode = "independent-persistent"
  scsi1:2.filename = "F:/VM/racshare/votingdisk.vmdk"
  scsi1:2.deviceType = "plainDisk"
  
  scsi1:3.present = "TRUE"
  scsi1:3.mode = "independent-persistent"
  scsi1:3.filename = "F:/VM/racshare/asm4data.vmdk"
  scsi1:3.deviceType = "plainDisk"
  
  scsi1:4.present = "TRUE"
  scsi1:4.mode = "independent-persistent"
  scsi1:4.filename = "F:/VM/racshare/backup.vmdk"
  scsi1:4.deviceType = "plainDisk"
  
  --最后添加这个,这段是对vmware使用共享硬盘的方式进行定义,必须添加
  disk.locking = "false"
  diskLib.dataCacheMaxSize = "0"
  diskLib.dataCacheMaxReadAheadSize = "0"
  diskLib.DataCacheMinReadAheadSize = "0"
  diskLib.dataCachePageSize = "4096"
  diskLib.maxUnsyncedWrites = "0"
  
  保存退出之后,启动虚拟机就可以看到刚才添加的硬盘了.
  
  5.安装完redhat 5操作系统后,关机,安装的时候把所有包都装上。
  按照1-5的步骤创建节点rac2.
  
  Redhat的2个序列号:
  redhat 5.0 : 2515dd4e215225dd
  redhat 5.4 SN:49af89414d147589
  
  因为是测试环境,在做之前先关闭不需要的系统启动耗时服务
# chkconfig cups off
# chkconfig sendmail off
# chkconfig isdn off
# chkconfig smartd off
# chkconfig iptables off
  
  6.配置你的2个网卡的固定IP,hostname, DNS, gateway, time server (NTP),这一步也可以在安装系统时配置
  
  根据前面的规划,设置IP地址。可以在redhat界面上进行修改,也可以修改下面2个文件:
  /etc/sysconfig/network-script/ifcfg-eth0
  /etc/sysconfig/network-script/ifcfg-eth1
  
  修改机器名,IP和网关--默认网关必须设置,不然vipca报错
  [iyunv@raw1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  ONBOOT=yes
  BOOTPROTO=static
  IPADDR=10.85.10.119
  NETMASK=255.255.255.0
  GATEWAY=10.85.10.253
  
  修改主机名
  vi /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=raw1
  
  修改完之后重启生效:
  /etc/rc.d/init.d/network restart重新启动
  
  查看DNS:
  cat /etc/resolv.conf
  
  
  7.同步时间:
  1)在rac1上启动time-stream服务,并设置为自动动
  [iyunv@rac1 ~]# chkconfig time-stream on
  在redhat 4中,是: #chkconfig time on
  
  2)在rac2上添加任务,每一分钟和rac1进行一次时间同步。
  [iyunv@rac2 ~]# crontab -l
  */1 * * * * rdate -s 10.85.10.1
  
  rac对节点间时间较敏感,RAC不能容忍节点间时钟不同步,否则RAC会Down掉,而且在安装vipca的时候也会报错。具体时间同步参考我的blog:
  
  Linux时间同步配置
  http://blog.csdn.net/xujinyang/article/details/6924299
  
  linux下修改日期和时间
  http://blog.csdn.net/xujinyang/article/details/6925658
  
  8.安装结束后,进入OS,修改解析文件:/etc/hosts
  如下
  注:机器名和public名要一样
  
  127.0.0.1 localhost (必须要这样)
  
  10.85.10.1 rac1
  10.85.10.2 rac2
  192.168.1.200 rac1-priv
  192.168.1.201 rac2-priv
  10.85.10.3 rac1-vip
  10.85.10.4 rac2-vip
  
  两个node都要一样.
  修改后要确认这个hosts都正确(ping)
  
  
  9.建立用户等效性
  建立等效用户之后,2个结点直接Oracle用户互相访问就不在需要密码了,这样就为RAC管理提供了可能性,如果等效性没有配好,RAC肯定是装不起来的。
  
  1)在RAC1,RAC2两个节点上添加group add dba oinstall组,创建oracle用户,主组oinstall,附加组是dba.
  #groupadd oinstall
  #groupadd dba
  #useradd -g oinstall -G dba oracle
  #passwd oracle
  
  2)建立等效用户
  在rac1:
  
  [oracle@rac1 ~]$ mkdir ~/.ssh
  [oracle@rac1 ~]$ chmod 700 ~/.ssh
  [oracle@rac1 ~]$ ssh-keygen -t rsa
  [oracle@rac1 ~]$ ssh-keygen -t dsa
  
  在rac2:
  [oracle@rac2 ~]$ mkdir ~/.ssh
  [oracle@rac2 ~]$ chmod 700 ~/.ssh
  [oracle@rac2 ~]$ ssh-keygen -t rsa
  [oracle@rac2 ~]$ ssh-keygen -t dsa
  
  3)切换回rac1,接着执行:
  [oracle@raw1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  [oracle@raw1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  
  提示:下列命令会提示你输入rac2的oracle密码,按照提示输入即可,如果失败可重新尝试执行命令。
  Rac1节点:
  [oracle@rac1 ~]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
  
  Rac2节点:
  [oracle@rac2 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  [oracle@rac2 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  [oracle@rac2 ~]$scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys
  
  4)确保2个node都有相互的结点信息。两机相互执行。
  
  [oracle@rac1 ~]$ ssh rac1 date
  [oracle@rac1~]$ ssh rac2 date
  [oracle@rac1 ~]$ ssh rac1-priv date
  [oracle@rac1 ~]$ ssh rac2-priv date
  
  切换至rac2执行
  [oracle@rac2 ~]$ ssh rac1 date
  [oracle@rac2~]$ ssh rac2 date
  [oracle@rac2 ~]$ ssh rac1-priv date
  [oracle@rac2 ~]$ ssh rac2-priv date
  
  10.在2个结点上创建目录
  
  [iyunv@rac1 ~]# mkdir -p /u01/app/oracle
  [iyunv@rac1 ~]# chown -R oracle:oinstall /u01
  [iyunv@rac1 ~]# chmod -R 777 /u01
  
  这个目录给oracle和clusterware系统的
  
  11.修改/etc/sysctl.conf,添加这些kernel参数
  
  net.core.rmem_default=262144
  net.core.wmem_default=262144
  net.core.rmem_max=262144
  net.core.wmem_max=262144
  
  kernel.shmall = 131072000
  kernel.shmmax = 524288000
  kernel.shmmni = 4096
  kernel.sem = 250 32000 100 128
  fs.file-max = 65536
  net.ipv4.ip_local_port_range = 1024 65000
  
  # sysctl -p立刻生效
  
  kernel.shmall为物理内存除以pagesize;
  kernel.shmmax为物理内存的一半;
  fs.file-max为512乘以processes (如128个process则为65536);
  net.ipv4.ip_local_port_range/net.core.rmem_default/net.core.rmem_max三个参数设置和官方文档不一样,这是根据metalink 343431.1最新要求更改的;
  net.ipv4.tcp_rmem/net.ipv4.tcp_wmem两个参数一般情况下无需设置,除非是在Dataguard/Streams等需很多网络传输情况下;
  
  其它参数根据官方文档要求设置即可.
  
  具体内容参考我的blog:
  Linux内核参数及Oracle相关参数调整
  http://blog.csdn.net/xujinyang/article/details/6830493
  
  
  12.设置用户资源限制,2个节点都要执行
  因为所有的进程都是以Oracle身份来运行的,因此需要定义Oracle用户能够使用的系统资源数量。
  
  vi /etc/security/limits.conf
  --使用HugePage内存技术,添加下面2行
  Oracle soft memlock 5242880
  Oracle hard memlock 524280
  --进程句柄数量
  oracle soft nproc 2047
  oracle hard nproc 16384
  --文件句柄
  oracle soft nofile 65536
  oracle hard nofile 65536
  
  将下面一行添加到/etc/pam.d/login文件中:
  session required /lib/security/pam_limits.so
  
  13.配置hangcheck-timer模块,2个节点都要执行
  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的和。
  
  1)查看模块位置:
  [iyunv@rac1 ~]#find /lib/modules -name "hangcheck-timer.ko"
  /lib/modules/2.6.18-164.el5/kernel/drivers/char/hangcheck-timer.ko
  /lib/modules/2.6.18-164.el5xen/kernel/drivers/char/hangcheck-timer.ko
  
  2)配置系统启动时自动加载模块,在/etc/rc.d/rc.local中添加如下内容
  [iyunv@rac1 ~]# modprobe hangcheck-timer
  [iyunv@rac1 ~]# vi /etc/rc.d/rc.local
  modprobe hangcheck-timer
  
  3)配置hangcheck-timer参数,在/etc/modprobe.conf中添加如下内容:
  [iyunv@rac1 ~]# vi /etc/modprobe.conf
  options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
  
  4)确认模块加载成功:
  [iyunv@rac1 ~]# grep Hangcheck /var/log/messages | tail -2
  Sep7 19:53:03 rac1 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).
  Sep7 19:53:03 rac1 kernel: Hangcheck: Using monotonic_clock().
  
  14.格式化分区
  我们之前添加了4块硬盘,在分区的时候,ocr我们要划分成2个100M,分别来存放ocr配置文件,votingdisk我们要分成3个100M的。Asm4data要分成两个,10G存放数据文件,5G用在flashback上。Backup我们分成一个区。
  在一个结点执行格式化就可以了,因为他们是共享的。
  
  [iyunv@rac1 ~]# fdisk –l
  [iyunv@rac1 ~]# fdisk /dev/sdb
  Command (m for help): n
  Command action
  eextended
  pprimary partition (1-4)
  p
  Partition number (1-4):1--分区号1,等格式化技术后对应sdb1
  First cylinder (1-200, default 1):
  Using default value1 –分区开始点
  Last cylinder or +size or +sizeM or +sizeK (1-200, default 200):+100M--把sdb1设置成100m
  
  Command (m for help): n
  Command action
  eextended
  pprimary partition (1-4)
  p
  Partition number (1-4):2--设置分区sdb2
  First cylinder (97-200, default 97):
  Using default value97--开始点
  Last cylinder or +size or +sizeM or +sizeK (97-200, default 200):
  Using default value200--结束点
  
  Command (m for help):w--写数据
  The partition table has been altered!
  Calling ioctl() to re-read partition table.
  WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
  The kernel still uses the old table.
  The new table will be used at the next reboot.
  Syncing disks.
  [iyunv@rac1 ~]#fdisk -l
  …
  Disk /dev/sdb: 209 MB, 209715200 bytes
  64 heads, 32 sectors/track, 200 cylinders
  Units = cylinders of 2048 * 512 = 1048576 bytes
  Device BootStartEndBlocksIdSystem
  /dev/sdb11969828883Linux
  /dev/sdb29720010649683Linux
  …
  这里就是分区的效果
  
  其他的操作类似,最终的格式化的效果是:
  
  [iyunv@rac1 ~]# fdisk -l
  /dev/sda125119581371951083Linux
  /dev/sda212502008093+82Linux swap / Solaris
  /dev/sdb1110110340883Linux
  /dev/sdb210220010137683Linux
  /dev/sdc119910136083Linux
  /dev/sdc210019810137683Linux
  /dev/sdc319930010444883Linux
  /dev/sdd111217977552183Linux
  /dev/sdd2121819125582587+83Linux
  /dev/sde11127410233373+83Linux
  
  注:格式化时候,在另一个节点要重启一下系统,不然识别不了。
  
  
  15.配置raw设备
  
  所谓raw设备,就是通过字符方式访问的设备,也就是读写设备不需要缓冲区。在Linux下,对磁盘值提供了块方式的访问。要想通过字符方式访问,必须配置raw设备服务,并且Oracle用户对这些raw设备必须有访问的权限。
  
  Redhat 5和4在裸设备的配置上不一样。关于4上raw的配置参考:
  RAW+ASM+ REDHAT 4.7 RAC文档
  http://blog.csdn.net/xujinyang/article/details/6829656
  
  redhat 5上raw的配置也可以参考:
  Redhat 5中裸设备(raw)的配置
  http://blog.csdn.net/xujinyang/article/details/6925675
  
  在2个节点上做如下操作:
  
  1)修改/etc/udev/rules.d/60-raw.rules文件
  添加如下内容:
  ACTION=="add", KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
  ACTION=="add", KERNEL=="sdb2",RUN+="/bin/raw /dev/raw/raw2 %N"
  ACTION=="add", KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw3 %N"
  ACTION=="add", KERNEL=="sdc2",RUN+="/bin/raw /dev/raw/raw4 %N"
  ACTION=="add", KERNEL=="sdc3",RUN+="/bin/raw /dev/raw/raw5 %N"
  ACTION=="add",KERNEL=="raw[1-5]", OWNER="oracle", GROUP="oinstall", MODE="660"
  
  这里有个小插曲,见:
  http://blog.csdn.net/xujinyang/article/details/6837267
  
  2)重启服务:
  [iyunv@rac1 ~]# start_udev
  Starting udev:[OK]
  
  3)查看raw设备:
  [iyunv@rac1 ~]# ls -lrt /dev/raw
  total 0
  crw-rw---- 1 oracle oinstall 162, 5 Sep8 03:18 raw5
  crw-rw---- 1 oracle oinstall 162, 4 Sep8 03:18 raw4
  crw-rw---- 1 oracle oinstall 162, 1 Sep8 03:18 raw1
  crw-rw---- 1 oracle oinstall 162, 3 Sep8 03:18 raw3
  crw-rw---- 1 oracle oinstall 162, 2 Sep8 03:18 raw2
  raw的配置,也可以直接使用raw来实现。
  [iyunv@qs-dmm-rh2 mapper]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
  touch /var/lock/subsys/local
  
#####
# Oracle Cluster Registry (OCR) devices
#####
chown root:oinstall /dev/mapper/ocr**
chmod 660 /dev/mapper/ocr*
raw /dev/raw/raw1 /dev/mapper/ocrp1
raw /dev/raw/raw2 /dev/mapper/ocrp2
raw /dev/raw/raw3 /dev/mapper/ocrp3
raw /dev/raw/raw4 /dev/mapper/ocrp4
#sleep 2
chown root:oinstall /dev/raw/raw1
chown root:oinstall /dev/raw/raw2
chown root:oinstall /dev/raw/raw3
chown root:oinstall /dev/raw/raw4
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4
#####
# Oracle Cluster Voting disks
#####
chown oracle:oinstall /dev/mapper/voting*
chmod 660 /dev/mapper/voting*
raw /dev/raw/raw5 /dev/mapper/votingdiskp1
raw /dev/raw/raw6 /dev/mapper/votingdiskp2
raw /dev/raw/raw7 /dev/mapper/votingdiskp3
raw /dev/raw/raw8 /dev/mapper/votingdiskp4
#sleep 2
chown oracle:oinstall /dev/raw/raw5
chown oracle:oinstall /dev/raw/raw6
chown oracle:oinstall /dev/raw/raw7
chown oracle:oinstall /dev/raw/raw8
chmod 660 /dev/raw/raw5
chmod 660 /dev/raw/raw6
chmod 660 /dev/raw/raw7
chmod 660 /dev/raw/raw8
  
  16.在两个node上都安装ASMLibs, tools, support三个rpm文件.注意内核版本要和linux一致。
  
  # rpm -ivh *.rpm --nodeps --force
  
  然后运行/etc/init.d/oracleasm configure
  回答oracle , dba, y, y就可以了
  
  linux挂在windows共享的盘
  1.启动nfs服务:service nfs start
  2. mount -o username=share,password=share //10.85.10.80/RAC /mnt
  
  17.创建ASM磁盘
  在一个node上:
  通过以root用户身份运行以下命令来标记由ASMLib使用的磁盘:/etc/init.d/oracleasm createdisk DISK_NAME device_name(提示:DISK_NAME应由大写字母组成。当前版本有一个错误,即假如使用小写字母,ASM实例将无法识别磁盘。)
  
  记住,ASM在linux下面处理的对象是partition,不是disk,所以你那些vmdk要linux下面partition好才能用,所以先fdisk一下在创建.
  
  /etc/init.d/oracleasm createdisk VOL1 /dev/sdd1
  /etc/init.d/oracleasm createdisk VOL2 /dev/sdd2
  
  创建好后,在这个node上运行/etc/init.d/oracleasm listdisks查看。
  
  18.在另外一个node上
  /etc/init.d/oracleasm scandisks
  /etc/init.d/oracleasm listdisks查看
  
  19.在每个node上配置Oracle的profile文件
  
  Su -oracle
  Cd /home/oracle
  
  修改oracle用户家目录下的.bash_profile。注意ORACLE_SID,和后面建库要一致。
  
  # User specific environment and startup programs
  PATH=$PATH:$HOME/bin
  export ORACLE_BASE=/u01/app/oracle
  export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
  export ORA_CRS_HOME=$ORACLE_BASE/product/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
  
  
  第二个节点的ORACLE_SID=rac2其他都一样。
  
  
  二.安装Oracle 10gR2 clusterware
  
  1.用Xmanager软件连上虚拟机之后运行clusterware的安装软件,Xmanager支持图形界面,所以能省很多事。
  主要要先修改/etc/redhat-release文件,不然会报错。
  [iyunv@rac2 ~]# more /etc/redhat-release
  redhat-4
  
  2.确认你的安装目录是/u01/app/oracle/product/crs
  
  3.增加相关结点信息
  rac1 rac1-priv rac1-vip
  rac2 rac2-priv rac2-vip
  
  4.指定eth0的类型时public
  
  5.指定OCR和Voting Disk
  一般而言,如果采用存储来存放OCR和Voting Disk.存储本身就提供了redundancy策略,此时我们可以选择External Redundancy选项,此时Oracle就不在考虑软件冗余了。如果没有使用存储设备或者存储为RAID0,那么就可以使用Oracle自己提供的软件冗余机制Normal Redundancy选项,此时就会激活Mirror Location选项.用来指定镜像文件位置,Oracle的Clusterware在运行时会维护这个Mirror文件的内容同步。
  
  
  OCR最多只有一份冗余:
  /dev/raw/raw1
  /dev/raw/raw2
  
  Voting Disk最多可以定义2份冗余:
  /dev/raw/raw3
  /dev/raw/raw4
  /dev/raw/raw5
  
  6.开始安装了,结束时会提示用root在每个节点上运行orainstRoot.Sh和root.Sh脚本,在第二个结点上运行root.Sh后自动调用vipca这个命令,在第二个结点运行root.Sh之前要修改一下vipca命令,不然可能会报错。
  
  RAC安装时需要执行4个脚本及意义
  http://blog.csdn.net/xujinyang/article/details/6829665
  
  注意:VIPCA命令也是用ROOT用户来运行的,只需要在一个结点运行就可以了。
  
  
  进入$CRS_HOME/bin/目录,用vi来修改vipca和srvctl 2个命令。
  
  问题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命令:
  
  # ./oifcfg setif -global eth0/10.85.10.0:public
  # ./oifcfg setif -global eth1/192.168.1.0:cluster_interconnect
  # ./oifcfg getif
  eth0 10.85.10.0 global public
  eth1 192.168.1.0 global cluster_interconnect
  
  --注意这里最后一个是0. 代表一个网段。 在一个节点设置之后,其他节点也能看到。
  
  然后在手工运行vipca添加nodeapps resource即可。
  
  问题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中解析不了。就报这个错误!
  
  7.clusterware就安装结束.
  
  确认一下.
  $ /u01/app/oracle/product/crs/bin/olsnodes -n
  rac1
  rac2
  $ ls -l /etc/init.d/init.*
  -r-xr-xr-x 1 root root 1951 Oct 4 14:21 /etc/init.d/init.crs*
  -r-xr-xr-x 1 root root 4714 Oct 4 14:21 /etc/init.d/init.crsd*
  -r-xr-xr-x 1 root root 35394 Oct 4 14:21 /etc/init.d/init.cssd*
  -r-xr-xr-x 1 root root 3190 Oct 4 14:21 /etc/init.d/init.evmd*
  
  检查CRS安装启动情况:用Root用户执行:
  $CRS_HOME/bin/crsctl check crs
  CSS appears healthy
  CRS appears healthy
  EVM appears healthy
  
  表明CRS安装完成,并且启动成功
  [iyunv@rac1 bin]# ./crs_stat -t -v
  NameTypeR/RAF/FTTargetStateHost
  ----------------------------------------------------------------------
  ora.rac1.gsdapplication0/50/0ONLINEONLINErac1
  ora.rac1.onsapplication0/30/0ONLINEONLINErac1
  ora.rac1.vipapplication0/00/0ONLINEONLINErac1
  ora.rac2.gsdapplication0/50/0ONLINEONLINErac2
  ora.rac2.onsapplication0/30/0ONLINEONLINErac2
  ora.rac2.vipapplication0/00/0ONLINEONLINErac2
  
  注:如果clusterware安装失败,再次运行安装程序,里面可以把之前的安装删除掉,删除之后在进行安装。
  
  
  三.安装Oracle 10gR2 database
  
  1.检查Oracle的相关包。Oracle 10g需要如下包
  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
  
  To see which versions of these packages are installed on your system, run the following command:
  rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common /
  gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21
  
  2.在Xmanager中用oracle用户,运行database的runInstaller
  3.ORACLE安装目录指定到/u01/app/oracle/product/10.2.0/db_1
  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状态。
  
  
  五.创建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
  
  7.创建完成后,能看到组的状态是Mount, ASM组必须mount之后才能使用。
  
  注意: asm 对应的device 需要oracle 用户的权限,如:
  chown oracle:oinstall /dev/mapper/device_name
  
  ASM的相关信息参考blog:
  Oracle ASM详解
  http://blog.csdn.net/xujinyang/article/details/6837288
  
  在这里,如果asm服务必须要启动。如果没有启动,就手动启动它。具体参考:
  Oracle RAC启动与关闭
  http://blog.csdn.net/xujinyang/article/details/6829632
  
  [iyunv@rac1 bin]# ./crs_stat -t
  NameTypeTargetStateHost
  ------------------------------------------------------------
  ora....SM2.asm applicationONLINEONLINErac1
  ora....C1.lsnr applicationONLINEONLINErac1
  ora.rac1.gsdapplicationONLINEONLINErac1
  ora.rac1.onsapplicationONLINEONLINErac1
  ora.rac1.vipapplicationONLINEONLINErac1
  ora....SM1.asm applicationONLINEONLINErac2
  ora....C2.lsnr applicationONLINEONLINErac2
  ora.rac2.gsdapplicationONLINEONLINErac2
  ora.rac2.onsapplicationONLINEONLINErac2
  ora.rac2.vipapplicationONLINEONLINErac2
  
  六.配置dbca创建数据库
  
  1.用oracle用户运行dbca
  2.选择custom database
  3.输入数据库的全局名,比如rac
  4.输入系统的角色建立密码
  5.选择ASM来存储,分别选择我们刚创建的DATA和FLASH_RECOVERY_AREA组
  6.Database Services这里,你选择Add你一个新的service,随便叫名字,比如oltp。然后选择TAF Policy,是Basic。这个服务在RAC的Failover中会用到,如果在这里没有配置,也可以通过dbca命令,选择Services Management来进行配置。具体参考blog:
  Oracle RAC Failover详解
  http://blog.csdn.net/xujinyang/article/details/6829647
  
  7.开始创建数据库
  
  
  
  七.检查RAC运行状态
  
  1.
  [iyunv@rac1 bin]# ./srvctl status database -d rac
  Instance rac2 is running on node rac1
  Instance rac1 is running on node rac2
  
  2.
  [iyunv@rac1 bin]# ./crs_stat -t
  NameTypeTargetStateHost
  ------------------------------------------------------------
  ora.rac.dbapplicationONLINEONLINErac1
  ora....oltp.cs applicationONLINEONLINErac2
  ora....ac1.srv applicationONLINEONLINErac2
  ora....ac2.srv applicationONLINEONLINErac1
  ora....c1.inst applicationONLINEONLINErac2
  ora....c2.inst applicationONLINEONLINErac1
  ora....SM2.asm applicationONLINEONLINErac1
  ora....C1.lsnr applicationONLINEONLINErac1
  ora.rac1.gsdapplicationONLINEONLINErac1
  ora.rac1.onsapplicationONLINEONLINErac1
  ora.rac1.vipapplicationONLINEONLINErac1
  ora....SM1.asm applicationONLINEONLINErac2
  ora....C2.lsnr applicationONLINEONLINErac2
  ora.rac2.gsdapplicationONLINEONLINErac2
  ora.rac2.onsapplicationONLINEONLINErac2
  ora.rac2.vipapplicationONLINEONLINErac2
  
  
  
  
  ------------------------------------------------------------------------------

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-217014-1-1.html 上篇帖子: Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档 下篇帖子: Firestar告JBoss/Hibernate侵犯ORM专利, RedHat受牵连
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表