ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 一步一步搭建RAC

一步一步搭建RAC

原创 Linux操作系统 作者:hdoracle 时间:2012-04-16 02:03:52 0 删除 编辑

大概步骤:

1.  2台服务器, 双网卡,都手动指定IP

2.  HOSTS文件写好公有、私有及虚拟IP

3.  创建ORACLE账号、OINSTALL组、DBA组,2者用户属组信息要一致

4.  2者配置内核挂起检测模块HANGCHECK-TIMER

5.  配置2ORACLE账号信任关系 公钥和私钥的建立并测试连接

6.  局域网内搭建一台NTP服务器,2者连接实现时间同步

7.  连接共享存储设备分配空间/DEV/RAW/RAW1 /DEV/RAW/RAW2

8.  解压CLUSTERWARE软件包,到软件目录下以ORACLE身份运行/RUNCLUVFY.SH来校验安装可行性,将相关软件包都补齐

9.  安装CLUSTER,其中将OCR/DEV/RAW/RAW1,VOTING DISK/DEV/RAW/RAW2

10. 安装完后到$CRS_HOME/BIN下运行/VIPCA,设置VIP

11. 完成后执行/CRS_STAT –T 2VIP,GSD,ONS进程是否正常启动

12. CRS安装完成

13. 接着运行数据库软件包执行安装数据库软件

14. 安装完成后将CRS停止./CRSCTL STOP CRS,然后解压P8202632_10205补丁包安装升级补丁

15.完成运行DBCA,安装数据库,选择集群模式,存储选择ASM,创建磁盘组,直到完成

16. 数据库安装完成

17. 集群安装完成

 

 

 

 

 

 

 

第一步:

.创建虚拟机,创建目录rac1 ,rac2 ,share用于放磁盘

   创建rac1,创建虚拟机时磁盘14g,scsi 0:0 再增加一个网卡,

    ,创建第一块共享磁盘0.5Gocr.vmdk SCSI 1:0

       创建第二块共享磁盘0.5Gvoting.vmdk SCSI 1:1

       创建第三块共享磁盘3G,asm1.vmdk  SCSI 1:2

       创建第四块共享磁盘3Gasm2.vmdk  SCSI 1:3

       创建第五块共享磁盘3Gasm3.vmdk  SCSI 1:4

       创建第六块共享磁盘3Gasm4.vmdk SCSI 1:5

这一步也够折腾人的,用vm server2.0.2 的创建虚拟机会自动创建跟虚拟机名字的目录,所以先不要创建rac1目录,不然会自动创建一个rac1_1的目录

2.安装linux

     安装好linux后,退出安装光盘,安装VMtool,VM-vmtool,双击vmware

    两个网卡的IP:eth0:192.168.1.103   eth1:192.168.0.103

              

# vmware-config-tools.pl

          2   800*600

       

      SecureCRT连接上:

   

安装ORACLE之前,要安装RPM

     图片插补进来唉

          rpm -ivh *.rpm

    查看rpm包的安装情况

          rpm -qa | grep gcc

        

      vi /etc/hosts

      增加以下信息:

      127.0.0.1  localhost.lzy.com  localhost
#public
192.168.1.103  rac1.lzy.com    rac1
192.168.1.104   rac2.lzy.com   rac2
#private
192.168.2.103   rac1-priv.lzy.com    rac1
192.168.2.104   rac2-priv.lzy.com     rac2
#vip
192.168.1.111   rac1-vip.lzy.com      rac1
192.168.1.112   rac2-vip.lzy.com      rac2

      vi /etc/sysctl.conf

      增加内核参数

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

 

 

   /sbin/sysctl -p    内核参数生效

   

   vi /etc/security /limits.conf

*               soft    nproc   2047

*               hard    nproc   16384

*               soft    nofile  1024

*               hard    nofile  65536

 

 

 

    vi /etc/pam.d/login

       ession required   /lib/security/pam_limits.so

 

   cat /etc/selinux/config

      SELINUX=disable

   service iptables status  防火墙是否关闭

 

   vi /etc/modprobe.conf   

    options hangcheck-timer   hangcheck_tick=30  hangcheck_margin=180

   modprobe  -v hangcheck-timer

 

  groupadd oinstall

  groupadd dba

  

  useradd -g oinstall G dba  oracle

  passwd oracle

 

  mkdir -p /oracle/product/10.2.0/crs

  mkdir -p /oracle/product/10.2.0/asm

  mkdir -p /oracle/product/10.2.0/db_1

  chown -R oracle:oinstall /oracle

  ls -l

 

  rsh on

  rlogin on

  service xinetd  reload

  su - oracle

  vi .bash_profile

   #Oracle Settings

     export PS1=" ‘/bin/hostname –s’  -> "

     export EDITOR=vi

     export TMP=/tmp

     export TMPDID=$TMP 

     export ORACLE_BASE=/oracle

     export ASM_HOME=/oracle/product/10.2.0/asm

     export ORACLE_CRS_HOME=/oracle/product/10.2.0/crs

     export ORACLE_HOME=/oracle/product/10.2.0/db_1

     export ORACLE_SID=orcl1

     export PATH=$ORACLE_HOEM/bin:$ORACLE_CRS_HOME/bin:/usr/sbin:$PATH 

     export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/lib:/usr/slib:$PATH

     export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

     

     alias sqlplus="rlwrap sqlplus"

     alias rman="rlwrap rman"

     stty erase ^H

     umask  022

     

     if [ $USER = "oracle" ]; then

           if [ $SHELL = "/bin/ksh" ]; then

              ulimit -p 16384

              ulimit -n 65536

           else 

               ulimit -u 16384 -n 65536

           fi

      fi

   

    source .bash_profile

    关机:

    su -

    init 0

    

  修改虚拟机的vmx文件     

      disk.locking = "FALSE"

      diskLib.dataCacheMaxSize = "0"

      scsi1.sharedBus = "virtual"

 

      scsi1:0.mode的下面一行

 

      scsi1:0.deviceType = "disk"

      scsi1:1.deviceType = "disk"

      scsi1:2.deviceType = "disk"

      scsi1:3.deviceType = "disk"

      scsi1:4.deviceType = "disk"

      scsi1:5.deviceType = "disk"



      rac1目录下的内容,复制一份到rac2目录,然后同时打开rac1,rac2

      rac2进行适当 的修改,网卡,机器名

配置时间服务器

rac1

#  chkconfig ntpd on

  service ntpd status

  service ntpd start



rac2

   启动xmanager passive

   

   export DISPLAY=192.168.1.100:0.0

   system-config-date

   设置rac1为时间服务器

    Enable NetWork Time Protocol  先上

    server  192.168.1.100    

    vi /etc/rc.local

       while [ 1 ] ; do ntpdate rac1 1>/dev/null 2>&1; sleep 2; done &

rac1

    建立ssh有效性

  su - oracle

   mkdir ~/.ssh

   chmod 700 ~/.ssh

   ssh-keygen -t rsa

   ssh-keygen -t dsa

  

rac2

   su - oracle

   mkdir ~/.ssh

   chmod 700 ~/.ssh

   ssh-keygen -t rsa

   ssh-keygen -t dsa



rac1

   cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

   cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

   ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

   ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

   scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys

测试SSH等效性:

ssh rac1 date

ssh rac2 date

ssh rac1.**e.com date

ssh rac2.**e.com date

ssh rac1-priv date

ssh rac2-priv date

ssh rac1-priv.**e.com date

ssh rac2-priv.**e.com date

 

rac2

ssh rac1 date

ssh rac2 date

ssh rac1.**e.com

ssh rac2.**e.com

ssh rac1-priv date

ssh rac2-priv date

ssh rac1-priv.**e.com date

ssh rac2-priv.**e.com date

 

rac2ntpd关闭

su -

service ntpd status

service ntpd stop   

   ---******************备份***********************************

rac1

su - oracle

exec /usr/bin/ssh-agent $SHELL

/usr/bin/ssh-add

 

rac2   

su - oracle

exec /usr/bin/ssh-agent $SHELL

/usr/bin/ssh-add

 

 

rac1

配置裸设备服务,oracle用户要有权限

修改裸设备配置文件

vi /etc/sysconfig/rawdevices

#两个512M的磁盘

   /dev/raw/raw1   /dev/sdb1

   /dev/raw/raw2   /dev/sdc1

:wq

配置权限

vi /etc/udev/permissions.d/50-udev.permisssions

#raw devices

 

#raw /*:root.:disk:0660

raw/*:oracle:dba:0660

:wq

 

chkconfig --list rawdevices

service rawdevices restart

检查权限oracle,dba

cd /dev/raw

ll

 

rac2

配置裸设备服务,oracle用户要有权限

修改裸设备配置文件

vi /etc/sysconfig/rawdevices

   /dev/raw/raw1   /dev/sdb1

   /dev/raw/raw2   /dev/sdc1

:wq

配置权限

vi /etc/udev/permissions.d/50-udev.permisssions

#raw devices

 

#raw /*:root.:disk:0660

raw /*:oracle:dba:0660

:wq

 

chkconfig --list rawdevices

service rawdevices restart

检查裸设备的权限

cd /dev/raw

ll

 

创建ASM磁盘:

两个节点都安装RPM三个ASM

 

查看Linux内核

uname -rm

下载ASM三个包

cd /asmrpm

rpm -ivh *.rpm

rpm -qa | grep oacleasm

两个节点都安装好ASM

 

rac1  创建ASM磁盘

/etc/init.d/oracleasm configure

     oracle

     dba

     y

     y

检测ASM驱动是否加载l

1.lsmod | grep asm      

2.cat /proc/filesystems

3.df  -ha

 

创建ASM磁盘:

/etc/init.d/oracleasm createdisk VOL1 /dev/sdd1

/etc/init.d/oracleasm createdisk VOL2 /dev/sde1

/etc/init.d/oracleasm createdisk VOL3 /dev/sdf1

/etc/init.d/oracleasm createdisk VOL4 /dev/sdg1

检查创建是否成功

cd /dev/oracleasm/disks

ll

 

          /etc/init.d/oracleasm listdisks

          /dtc/init.d/oracleasm querydisk VOL1

         

         rac2创建ASM磁盘 

         /etc/init.d/oracleasm scandisks

         /etc/init.d/oracleasm listdisks

 

          配置ASM磁盘

          /etc/init.d/oracleasm configure

     oracle

     dba

     y

     y

 /etc/init.d/oracleasm scandisks

 /etc/init.d/oracleasm listdisks

---------------------*******备份 *********************

6.下载安装oracle  clusterware

 chown -R oracle:oinstall clusterware

 chown -R oracle:oinstall database

 rac1

 chmod -R 775 /oracle  

 

 

rac2

  cd /oracle

  ls -l

  chmod -R 775 /oracle

 

rac1 安装clusterware

  su - oracle

  export DISPLAY=172.30.0.32:0.0

 

  exec /usr/bin/ssh-agent $SHELL

  /usr/bin/ssh-add

 

           cd /oracle/clusterware

           检测环境是否可以安装clusterware

            /oracle/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2          

 

           cd /oracle/clusterware

              ./runInstaller

              path :/oracle/ ...../crs

         Specify Cluster Configuration

          add

          rac2.**e.com

          rac2-priv.**e.com

          rac2-vip.**e.com

 

        Specify Network Interface Usage   

          eth0   public

 

           OCR:  extend  : /dev/raw/raw1

       Voting Disk Congfiguration

               extend : /dev/raw/raw2

             root用户:执行两个脚本: /oracle/oraInventory/orainstRoot.sh

/oracle/product/10.2.0/crs/root.sh

 

          如果报错: 

         解决eth0 is not public .

           export DISPLAY=172.30.0.32:0.0

          /oracle/product/10.2.0/crs/bin/vipca   

          eth0 rac1 : rac1-vip.**e.com

                  rac2 : rac2-vip.**e.com

         rac1:

         安装好后:

         crs_stat -t 

        

          rac2

          crs_stat -t

 

 

------------------****************备份***********************************

 

 

rac1   

 

 7.单独安装ASM  ASM管理多实例

  便于升级

  cd /oracle/database

  export DISPLAY=172.30.0.32:0.0

  ./runInstaller

  specify home details

      OraASM10g_home1

     /oracle/product/10.2.0/asm

  Cluster Installation

     rac1

     rac2

Select Configuration Option

    configure ASM

Configure automatic storage managerment

   data

   normal

   选择orcl:vol1

          orcl:vol2

   执行脚本:完成安装

 

安装数据库软件:

  ./runInstaller

    Install database software only

 

  执行脚本:安装完成

rac1:

配置:listener

  netca

 

  crs_stat -t    查看listener

 

rac2

 

crs_stat -t

 

创建另一个ASM磁盘组

 dbca

  configure ASM

select rac1 rac2

create new

create disk group

  RECOVERY

  normal

  orcl:vol3

  orcl:vol4

  

创建数据库

dbca

select rac1 rac2

 

   gobal service name:test1

 

available asm

   data

 

use oracle-manage files

 

不创建  database service

 

创建好后检查状态

rac1

crs_stat -t

crs_stat -t -v

rac2

crs_stat -t

crs_stat -t -v

 

rac1

stat nnodeapps -n rac1

stat nnodeapps -n rac2

 

srvctl status asm -n rac1

srvctl status asm -n rac2

 

srvctl status database -d firstrac

 

crsctl check crs

 

sqlplus /nolog

conn /as sysdba

 

select instance_name,host_name ,archiver,thread# ,status from gv$instance;

 

exit;

 

sqlplus system/oracle@testrac1

 

sqlplus system/oracle@testrac2

 

sqlplus system/oracle@testrac

 

export ORACLE_SID=testrac1

sqlplus /as sysdba

show sga

select file_name from dba_datafiles;

exit

 

export ORACLE_SID=+ASM1

sqlplus / as sysdba

show sga

 

 

 

启动数据库

 

$srvctl start nodeapps -n rac1

$srvctl start nodeapps -n rac2

$srvctl start asm -n rac1

$srvctl start asm -n rac2

$srvctl start instance -d racdb -i racdb1

$srvctl start instance -d racdb -i racdb2

 

可以用以下方动启动crs:

 

$/etc/init.d/init.cssd start

$/etc/init.d/init.crs start

rac1-> ./init.crs start

 

Startup will be queued to init within 90 seconds.

 

rac1-> ./init.cssd start

 

Startup will be queued to init within 90 seconds.

 

rac1  -> crs_start -f ora.rac1.gsd

CRS-1028: Dependency analysis failed because of:

'Resource in UNKNOWN state: ora.rac1.gsd'

 

CRS-0223: Resource 'ora.rac1.gsd' has placement error.

两节点的时间不一样,安装节点的时间必须小于另外节点

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26879006/viewspace-721253/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 今天的误区
请登录后发表评论 登录
全部评论

注册时间:2012-04-13

  • 博文量
    13
  • 访问量
    26108