zoukankan      html  css  js  c++  java
  • Centos6.5搭建oracle11g RAC集群

    一、基本概念

    RAC( Real Application Clusters-----真正的应用集群)

    RAC数据库是Oracle公司数据库的集群解决方案、高可用性解决方案。两个或多个服务器之间通过一个内部的私有网络互相连接起来,使用集群软件将集群中所有的服务器融合成一个整体,构成一个集群。

    集群内部的所有服务器共享存储,所有服务器都接入公共网络,通过集群唯一的别名对外形成逻辑上单一的数据库提供服务,对内实现集群数据库的高可用性、节点间的负载均衡和Failover(失败切换)。

    物理结构:

    • 集群的节点(Cluster node)——2 个到 N 个节点或者主机运行 Oracle Database Server。
    • 共享存储(shared Storage)——RAC 需要共享存储设备让所有的节点都可以访问数据文件。独立于实例之外。
    • 私有网络(Network Interconnect)——RAC 之间需要一个高速互联的私有网络来处理通信和 Cache Fusion。
    • 对外服务的网络(Production Network)——RAC 对外服务的网络。客户端和应用都通过这个网络来访问。

    RAC的特点:

    • 双机并行。RAC是一种并行模式,并不是传统的主备模式。RAC集群的所有成员都可以同时接收客户端的请求并处理。
    • 高可用性。集群中只要有一个节点存活,就能正常对外提供服务。
    • 易伸缩性。RAC可以非常容易地添加、删除节点。

    Oracle 11gR2版本中推出了网格即插即用(Grid Plug and Play,GPnP),可以实现节点的快速添加。

    • 高吞吐量。随着节点数的增加,整个RAC的吞吐量也在不断增长。

    存储管理软件——ASM(Automated Storage Management,自动存储管理)

    为Oracle默认的存储管理方式。

    ASM是建立在裸设备基础上,没有任何文件系统对它进行格式化。

    ASM能够实现镜像和条带化,支持动态地添加、删除磁盘,并且能自动实现重新平衡。

     

    集群管理软件——Clusterware

    从Oracle 11g开始,Clusterware作为Grid Infrastructure的一部分被安装和使用。安装和运行Clusterware的服务器可以具备不同机型、不同配置,但同一个集群必须安装相同的操作系统。

     

    数据库管理软件——RAC database

    与集群管理软件配合,用以实现RAC的高可用性;

     

    私有IPPublic IP

    专用(私有)IP地址只用于内部群集处理,如心跳侦测,服务器间的同步数据用。

     

    虚拟IPVirtual IP

    当一个群集节点出现故障时,数据库应用程序通过虚拟IP地址进行故障切换,同时有均衡负载的作用。

     

    公共IPPublic IP

    公共IP地址是正常的(真实的)IP地址,通常DBA和SA使用公共IP地址在来管理存储、系统和数据库。

     

    监听IPSCAN IP

    从Oracle 11g R2开始,新增了加监听IP地址(SCAN IP)

    由于每增加一个RAC节点就要增加一个VIP,为了简化维护,11gR2之后引入了scanIP用于给客户连接使用,一个集群中最多三个,如果使用/etc/hosts文件解析scan ip,因为不能做轮训的负载均衡,所以就只要一个可以了。

    这样,不论集群数据库是否有添加或者删除节点的操作,均不会对Client产生影响。

     

    二、环境搭建

        两台服务器,至少配有两张网卡,内存2G以上,硬盘30G;

        操作系统linux redhat 6.5 x86-64(12c开始不支持32位)

    配置网络:

     Public IP必须与Private IP分属两张不同的网卡;

    编辑/etc/hosts文件,配置内容如下:

    [root@rac-1 network-scripts]# cat /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    #127.0.0.1 的解析不能删掉

    vi /etc/hosts

    #Public IP 172.17.166.71 rac-1

    172.17.166.72 rac-2

    #Private IP

    192.168.166.71 rac-1-priv

    192.168.166.72 rac-2-priv

    #Virtual IP172.17.166.69  rac-1-vip

    172.17.166.70  rac-2-vip

    #scan IP

    172.17.166.30 rac-scan

    创建用户和组

    在节点rac-1rac-2上执行以下命令:

    groupadd -g 501 oinstall

    groupadd -g 502 dba

    groupadd -g 503 oper

    groupadd -g 504 asmadmin

    groupadd -g 505 asmoper

    groupadd -g 506 asmdba

    useradd -g oinstall -G dba,asmdba,oper oracle

    useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid

    用户创建之后要给用户添加密码

    passwd grid

    passwd oracle

    设置grid用户的环境变量:

    [root@ rac-1 ~]# su -grid

    [grid@rac-1 ~]$ vim .bash_profile

    export ORACLE_SID=+ASM1

    export ORACLE_BASE=/u01/app/grid

    export ORACLE_HOME=/u01/app/11.2.0/grid

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib

    export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"

    export PATH=$ORACLE_HOME/bin:$PATH

    export LANG=en_US

    umask 022

    设置oracle用户环境变量

    [root@ rac-1 ~]# su - oracle

    [oracle@ rac-1 ~]$ vi ~/.bash_profile

    export ORACLE_SID=rac1

    export ORACLE_BASE=/u01/app/oracle

    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib

    export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"

    export TMP=/tmp

    export TMPDIR=$TMP

    export PATH=$PATH:$ORACLE_HOME/bin

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

    umask 022

    注意:另外一台数据库实例名须做相应修改:

    Oracle:export ORACLE_SID=rac2

    grid:export ORACLE_SID=+ASM2

     

    创建所需目录和设置权限

    在节点rac-1rac-2上执行以下命令:

    mkdir -p /u01/app/oracle

    mkdir -p /u01/app/grid

    mkdir -p /u01/app/11.2.0/grid

    chown -R grid:oinstall /u01/app/grid

    chown -R grid:oinstall /u01/app/11.2.0

    chown -R oracle:oinstall /u01/app/oracle

    chmod -R 775 /u01

    mkdir -p /u01/app/oraInventory

    chown -R grid:oinstall /u01/app/oraInventory

    chmod -R 775 /u01/app/oraInventory

    修改配置文件

    在节点rac-1、rac-2修改以下配置文件

    1. selinux的配置文件

    setenforce 0           #立即生效,临时关闭,重启恢复

    vi /etc/selinux/config

    设置SELINUX=disabled,#永久关闭,重启生效

     

    2.修改/etc/pam.d/login

    [root@rac-1 ~]# vi /etc/pam.d/login

    添加以下内容:

    session required pam_limits.so

    3.修改limits.conf

    由于oracle软件拥有者的默认硬限制不足以安装和配置oracle grid infrastructure

    cp /etc/security/limits.conf /etc/security/limits.conf.bak

    vi /etc/security/limits.conf

    添加以下内容:

    oracle soft nproc 2047

    oracle hard nproc 16384

    oracle soft nofile 1024

    oracle hard nofile 65536

    oracle soft stack 10240

     

    grid soft nproc 2047

    grid hard nproc 16384

    grid soft nofile 1024

    grid hard nofile 65536

    grid soft stack 10240

     

    4.修改/etc/profile

    cp /etc/profile /etc/profile.bak

    vi /etc/profile

    在文件最后添加以下内容:

    #set oracle rac env

    if [ $USER = "ORACLE" ] || [ $USER = "GRID" ];then

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

           ulimit -p 16384

           ulimit -n 65536

        else

           ulimit -u 16384 -n 65536

        fi

        umask 022

    fi

     

    5.修改/etc/sysctl.conf

    cp /etc/sysctl.conf /etc/sysctl.conf.bak

    vi /etc/sysctl.conf

    添加以下内容:

    fs.aio-max-nr = 1048576

    fs.file-max = 6815744

    kernel.shmall = 2097152

    kernel.shmmax = 1054472192  #1/2物理内存(单位M)*1024*1024

    kernel.shmmni = 4096

    kernel.sem = 250 32000 100 128

    net.ipv4.ip_local_port_range = 9000 65500

    net.core.rmem_default = 262144

    net.core.rmem_max = 4194304

    net.core.wmem_default = 262144

    net.core.wmem_max = 1048586

    net.ipv4.tcp_wmem = 262144 262144 262144

    net.ipv4.tcp_rmem = 4194304 4194304 4194304

     

    [root@rac-1 ~]sysctl -p

    使修改参数立即生效。

    停止并删除ntp服务以及其他不需要的服务

    CTSS时间同步服务作为Oracle Clusteware的一部分被安装,在系统中,如果察觉到时间同步服务或者时间同步服务配置,那么CTSS将以观察模式(Oberver Mode)启动和运行,不执行时间同步操作。CTSS守护进程能随时被安装,并将一直运行,但是只有在系统符合配置条件情况下才会起作用。如果NTP不存在于任何的集群服务器中,CTSS将被激活,接管集群的时间管理工作,以活动模式(Active Mode)启动和运行,使用集群其中一个服务器作为参考服务器,同步集群中的其他服务器的时间。

     

    建议使用CTSS,所以关闭ntp服务,并关闭开机自启动。

    在节点rac-1、rac-2停用ntp服务,并删除ntp服务的配置。

    [root@rac-1 ~]# service ntpd status

    ntpd is stopped

    [root@rac-1 ~]# chkconfig ntpd off

    [root@rac-1 ~]# cp /etc/ntp.conf /etc/ntp.conf.bak

    [root@rac-1 ~]# rm -rf /etc/ntp.conf

    同样,在rac-2上也停止并删除ntp服务。

    其他不需要的服务也一并关掉开机自启,有些可能因为就没有安装这个服务报错,可以忽略;

    chkconfig autofs off

    chkconfig acpid off

    chkconfig sendmail off

    chkconfig cups-config-daemon off

    chkconfig cpus off

    chkconfig xfs off

    chkconfig lm_sensors off

    chkconfig gpm off

    chkconfig openibd off

    chkconfig pcmcia off

    chkconfig cpuspeed off

    chkconfig nfslock off

    chkconfig ip6tables off

    chkconfig iptables off

    chkconfig rpcidmapd off

    chkconfig apmd off

    chkconfig sendmail off

    chkconfig arptables_jf off

    chkconfig microcode_ctl off

    chkconfig rpcgssd off

    配置oracle,grid 用户SSH对等性

    (11g之后不配也行,后面安装软件的时候会有图形化的ssh配置)

    在节点rac-1和rac-2上配置oracle、gird用户ssh对等性。

    su - oracle

    mkdir ~/.ssh

    chmod 700 ~/.ssh

    ssh-keygen -t rsa

    一路回车

    ssh-keygen -t dsa

    一路回车(两个节点都要生成)

    返回节点1:

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

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

    ssh rac-2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

    ssh rac-2 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

    scp ~/.ssh/authorized_keys oracle@rac-2:~/.ssh/authorized_keys

    验证,节点rac-1、rac-2

    ssh rac-1 date

    ssh rac-2 date

    ssh rac-1-priv  date

    ssh rac-2-priv  date

    重复上述步骤,以grid用户配置其对等性。

    配置yum源,安装必要软件

    vi /etc/yum.repos.d/base.repo

    [base]

    name=base

    baseurl=ftp://172.17.62.160/pub/centos6.5  #也可以使用本地yum源 file:///挂载点

    enable=1

    gpgcheck=0

    rm -rf /etc/yum.repos.d/CentOS-*

    yum clean all

    yum list

    yum install -y  binutils*  compat-libstdc*  elfutils-libelf*  gcc*  glibc*  ksh*  libaio*  libgcc* libstdc*  make*  sysstat*  unixODBC*  libaio-devel*  glibc-devel.i686 libaio.i686 libaio-devel.i686  libstdc++-devel.i686 unixODBC-devel.i686 compat-libcap1*  compat-libcap1.i686  expat* 

    上传ORACLE 11g的安装介质,并解压

    为便于将来安装软件,分别将其move到oracle用户和grid用户的家目录:

    [root@rac-1 ~]# mv database/ /home/oracle/

    [root@rac-1 ~]# mv grid/ /home/grid/

    确认一下两个节点RPM包cvuqdisk-1.0.9-1.rpm是否安装。

    #rpm -qa|grep cvuqdisk

    如果没装,在两个节点执行如下

    [root@rac-1 ~]#cd /home/grid/grid/rpm/

    [root@rac-1 ~]#rpm -ivh cvuqdisk-1.0.9-1.rpm

    [root@rac-1 ~]#scp  /home/grid/grid/rpm/cvuqdisk-1.0.9-1.rpm root@rac-2:/root

    [root@rac-2 ~]# rpm -ivh cvuqdisk-1.0.9-1.rpm

    添加共享存储

    磁盘规划如下:

    /dev/sdb

    1024MB

    OCR

    /dev/sdc

    1024MB

    VotingDisk

    /dev/sdd

    10240MB

    配置DATA磁盘组,存放数据库

    /dev/sde

    10240MB

    配置FLASH磁盘组,用于闪回区

    磁盘同时挂载给两台服务器,配置multipath多路径,由于redhat6以后oracle不再支持asmlib(仅原生redhat6 kernel)故采用udev的方式配置asm

    主节点rac-1:

    [root@rac-1 ~]#  scsi_id --whitelisted --replace-whitespace --device=/dev/sdb

    36000c297937b5900e61de1f6c8ce7ada

    [root@rac-1 ~]#  scsi_id --whitelisted --replace-whitespace --device=/dev/sdc

    36000c29950ca49868a7c9b259533ef8c

    [root@rac-1 ~]#  scsi_id --whitelisted --replace-whitespace --device=/dev/sdd

    36000c29ae3c78012d3713d8c6ec4afd8

    [root@rac-1 ~]#  scsi_id --whitelisted --replace-whitespace --device=/dev/sde

    36000c293944d73c1fff875cc1ac69e4d

    2个节点rac-1和rac-2:

    把上面查询的结果写入下面的文件:

    rac-1&rac-2:

    [root@rac-1 ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules

    KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c297937b5900e61de1f6c8ce7ada", NAME="asm-DATA1", OWNER="grid", GROUP="asmdba", MODE="0660"#每个磁盘的规则必须是在一行,不能有回车

    KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29950ca49868a7c9b259533ef8c", NAME="asm-DATA2", OWNER="grid", GROUP="asmdba", MODE="0660"

    KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29ae3c78012d3713d8c6ec4afd8", NAME="asm-FRA", OWNER="grid", GROUP="asmdba", MODE="0660"

    KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c293944d73c1fff875cc1ac69e4d", NAME="asm-OCR", OWNER="grid", GROUP="asmdba", MODE="0660"

    [root@rac-1 rules.d]#  start_udev

    [root@rac-1 rules.d]#  ls -l /dev/asm*

    [root@rac-1 rules.d]# ls -l /dev/asm*

     

     

    至此,环境准备完成,建议重启一次服务器;

    安装前预检查配置信息

    [grid@rac-1 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac-1,rac-2 -fixup -verbose

    i386类的依赖软间可能因为版本问题,检查不成功

    /bin/rm: cannot remove `/tmp/bootstrap': Operation not permitted

    ./runcluvfy.sh: line 99: /tmp/bootstrap/ouibootstrap.log: Permission denied

    权限不足导致,

    [root@rac-1 ~]# chown -R grid:oinstall /tmp/bootstrap

    --为grid赋权

    安装Grid软件

    确保"rac1"和"rac2"已经启动,grid软件的安装需要图形化界面,如果安装服务器的时候没有安装图形化界面,需要先安装图形化界面,然后登录Xmanger。也可以选择使用VNC

    1.打开Xstart,新建会话,协议选择SSH,输入用户名密码,命令选择GNOME,高级选择Xstart sample;

    2.登录图形化界面后,新建一个Terminal,切换到grid用户,

    .

     

     

    xhost + 这个命令将允许别的用户启动的图形程序将图形显示在当前屏幕上。
    一般与DISPLAY共同使用

    [grid@rac-1 ~]$./runInstaller

    第1步:默认即可。选择"Install and Configure Oracle Grid Infrastructure for a Cluster".

     

    第2步:选择高级安装.

     

    第3步:选择语言

     

    第4步:因为没有使用DNS解析地址,故去掉Configure GNS,设置SCAN Name与/etc/hosts文件一致,其他默认。

     VIP不可ping通

    第5步:选择Add,添加节点

     

    Public Hostname输入rac-2, Virtual Hostname输入rac-2-vip

    验证ssh等效性。

    1)        如果前置未设置ssh等效性:选择ssh connectivty,输入OS password:grid(grid用户密码),点击setup,等待即可,成功则下一步。然后点击“Test”.

    2)        如果前面已经设置了ssh等效性:可以点击“Test”,或直接下一步。

     

    点击"Next",出现[INS-40912]错误:

     

    是由于当前VIP能够ping通造成,禁用VIP地址所在网卡即可;

    ifdown ethX

    第6步:选择网卡;

     

    第7步:默认即可."Oracle Automatic Storage Management(Oracle ASM)"

     

    第8步:创建ASM磁盘组。若未发现磁盘,则点击change Discovery Path,输入磁盘所在地址。

    /dev/ *

     

     

    external:外部冗余,不对数据库文件镜像;

    normal:常规冗余,使用2份镜像存储,至少需要两块磁盘;

    high:高冗余,使用三份镜像存储,至少需要三块磁盘;

    创建CRS磁盘组OCRVOTING,选择external-->/dev/asm-diskb,/dev/asm-diskc

    9步:设置ASM password(密码oracle),警告INS-30011密码不推荐,忽略。

    点击"Yes"

     

    第10步:默认即可."Do not use Intellgent Platform Management Interface(IPM)"

    IPMI为了失败隔离使用,安装时可以按需配置,后期也可以使用CRSCTL工具配置它

     

    第11步:默认即可.

    第12步:默认即可.

    第13步:默认即可。

    第14步:提示的假如只有些包未安装(例如i386的包),则忽略,下一步。

    出现elfutils-libelf-devel和pdksh包缺少的提示,也可以忽略。

    第15步:默认即可。点击"finish."开始setup

    第16步:安装进程。

    65%的时候会从一个节点向另一个节点拷贝文件会比较慢,但是如果卡半天还没反应的话,看下节点防火墙关了没。

    提示执行脚本。

    一定要以root帐户执行,并且不能同时执行。

    先执行rac-1 /u01/app/oraInventory/orainstRoot.sh,

    再执行rac-2 /u01/app/oraInventory/orainstRoot.sh

    然后,先执行rac-1 /u01/app/11.2.0/grid/root.sh

    再执行 rac-2 /u01/app/11.2.0/grid/root.sh

    rac-1执行root.sh时报错:

    /g01/app/11.2.0/grid/bin/clscfg.bin: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory

    Failed to create keys in the OLR, rc = 127, 32512

    OLR configuration failed

    是由于缺少包导致的。

    解决方法:

    在2个节点上重新安装上此包。

     [root@rac-1 Packages]# rpm -ivh compat-libcap1-1.10-1.x86_64.rpm

    warning: compat-libcap1-1.10-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY

    Preparing...                ########################################### [100%]

       1:compat-libcap1         ########################################### [100%]

    CRS-4124: Oracle High Availability Services startup failed.
    CRS-4000: Command Start failed, or completed with errors.
    ohasd failed to start: Inappropriate ioctl for device
    ohasd failed to start at /g01/app/11.2.0/grid/crs/install/rootcrs.pl line 443.

    oracle的BUG

    解决方法:

    出现pa user cert的时候在另一个窗口不停的执行下面的命令,直到命令执行成功

    /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

    如果root脚本执行失败,执行下面命令清除环境,再执行脚本。

    [root@rac1 ~]# perl $GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force

    rac-1和rac-2都执行完后。点击"OK"

    点击"OK"后,继续安装

    如果出现INS-20802 Oracle Cluster Verifaction Utility failed。可以skip

    提示:INS-32091,Software Installation was successful.But some configuration assistants failed,were cancelled or skipped. Are you sure you want to continue?

    选择"Yes"。

    第18步:Finished。点击"Close".

    Oracle Grid Infrastructure安装完成。

    确认集群安装成功

    检查crs状态:

    [root@rac-1 ~]# su - grid

    [grid@rac-1 ~]$ crsctl check crs

    CRS-4638: Oracle High Availability Services is online

    CRS-4537: Cluster Ready Services is online

    CRS-4529: Cluster Synchronization Services is online

    CRS-4533: Event Manager is online

    检查Clusterware资源:

    [grid@rac-1 ~]$ crs_stat -t -v

    Name           Type           R/RA   F/FT   Target    State     Host       

    ----------------------------------------------------------------------

    ora....ER.lsnr ora....er.type 0/5    0/     ONLINE    ONLINE    rac-1   

    ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    rac-1   

    ora....TING.dg ora....up.type 0/5    0/     ONLINE    ONLINE    rac-1   

    ora....DATA.dg ora....up.type 0/5    0/     ONLINE    ONLINE    rac-1   

    ora...._FRA.dg ora....up.type 0/5    0/     ONLINE    ONLINE    rac-1   

    ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    rac-1   

    ora.cvu        ora.cvu.type   0/5    0/0    ONLINE    ONLINE    rac-2   

    ora.gsd        ora.gsd.type   0/5    0/     OFFLINE   OFFLINE              

    ora....network ora....rk.type 0/5    0/     ONLINE    ONLINE    rac-1   

    ora.oc4j       ora.oc4j.type  0/1    0/2    ONLINE    ONLINE    rac-1   

    ora.ons        ora.ons.type   0/3    0/     ONLINE    ONLINE    rac-1   

    ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac-1   

    ora....E1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac-1   

    ora....de1.gsd application    0/5    0/0    OFFLINE   OFFLINE              

    ora....de1.ons application    0/3    0/0    ONLINE    ONLINE    rac-1   

    ora....de1.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac-1   

    ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac-2   

    ora....E2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac-2   

    ora....de2.gsd application    0/5    0/0    OFFLINE   OFFLINE              

    ora....de2.ons application    0/3    0/0    ONLINE    ONLINE    rac-2   

    ora....de2.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac-2   

    ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    rac-1   

    ora.testdb.db  ora....se.type 0/2    0/1    ONLINE    ONLINE    rac-1   

    注:

    oc4j、gsd默认服务是禁用的

    [grid@rac-1 ~]$

    检查集群节点:

    [grid@rac-1 ~]$ olsnodes -n

    rac-1       1

    rac-2       2

    检查两个节点上的Oracle TNS监听器进程:

    [grid@rac-1 ~]$ ps -ef|grep lsnr|grep -v 'grep'

    grid      3783     1  0 12:56 ?        00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit

    grid      3910     1  0 12:58 ?        00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit

    [grid@rac-1 ~]$ ps -ef|grep lsnr|grep -v 'grep'|awk '{print $9}'

    LISTENER

    LISTENER_SCAN1

    [grid@rac-1 ~]$

    确认针对Oracle Clusterware文件的Oracle ASM功能:

    [grid@rac-1 ~]$ srvctl status asm  -a

    ASM is running on rac-1,rac-2

    ASM is enabled.

    检查Oracle集群注册表(OCR):

    [grid@rac-1 ~]$ ocrcheck

    Status of Oracle Cluster Registry is as follows :

            Version                  :          3

            Total space (kbytes)     :     262120

            Used space (kbytes)      :       2964

            Available space (kbytes) :     259156

            ID                       : 1851285791

            Device/File Name         : +OCRVOTING

                                        Device/File integrity check succeeded

                                        Device/File not configured

                                        Device/File not configured

                                        Device/File not configured

                                        Device/File not configured

            Cluster registry integrity check succeeded

            Logical corruption check bypassed due to non-privileged user

    检查表决磁盘:

    [grid@rac-1 ~]$ crsctl query css votedisk

    ##  STATE    File Universal Id                File Name Disk group

    --  -----    -----------------                --------- ---------

     1. ONLINE   0a64312bf16a4f71bfe1809754879085 (/dev/asm-diskb) [OCRVOTING]

    Located 1 voting disk(s).

    [grid@rac-1 ~]$

     

    安装ORACLE软件

    #开启一个Terminal终端

    #xhost +

    #export DISPLAY=:0.0

    #su - oracle

    $./runInstaller

    第1步: 默认即可。点击"Next",如果输入邮箱,会报下面这个警告,故不填邮箱;

    第2步:选择"Install database software only".

    第3步:选择"Oracle Real Application Clusters database installation"。点击"Select All",选择所有的节点。

    设置SSH.这里输入oracle用户的密码oracle.

    第4步:选择语言.

    第5步:选择"Enterprise Edition"

    第6步:选择oracle安装目录。默认即可。

    第7步:选择用户组。默认即可。

    第8步:执行安装前预检查。

    检查结果显示, warning."Single Client Access Name(SCAN),忽略即可。勾选"Ignore All"。

    第9步:点击"finish",开始安装。

    第10步:Install Product进行中。显示安装进度。如下图所示。

    弹出提示:在rac-1,rac-2上执行root.sh脚本。

    第11步:Finish. The installation of Oracle Database was succesful.点击"Close".完成oracle software的安装。

     

    创建ASM磁盘组

    也可以在安装ORACLE软件之前先创建ASM磁盘组。

    如下图所示。在节点rac-1新开一个终端窗口。

    #xhost +

    #export DISPLAY=:0.0

    #su - grid

    $ asmca

    弹出以下画面。在Disk Groups显示了,我们在安装Grid时创建的CRS磁盘组(OCRVOTING).

     

    根据实际情况建立你所需要的asm磁盘组,举个栗子:

     

    在"Disk Groups"标签,点击"Create",如下图。

    点击"Show All",显示所有磁盘。

    创建RACDB_DATA磁盘组。在Disk Group Name,输入RACDB_DATA,Redundanc选择External。选择

    /dev/asm-diskd.

     

    点击"OK",创建RACDB_DATA。

    提示:Disk Group RACDB_DATA创建成功。点击"OK".

     

    如下图所示。

     

    建立完成后,点击"Mount All",挂载所有磁盘组。在State列都变为Mounted(1 of  2).

    如果mount失败,或者在这里没有Mount All。在后面dbca创建数据库会遇到问题。

     

    然后,点击"Exit",退出ASMCA。完成RACDB_DATA和RACDB_FRA磁盘组创建。

    这时,在rac-1,rac-2上,运行asmcmd可以查看ASM磁盘组。

    创建RAC数据库

    如下图所示。以oracle用户运行dbc

    运行dbca,弹出Database Configuration Assistant画面。

     

    选择"Oracle Real Application Clusters (RAC) database",点击"NEXT"

    第1步:选择"Create a Dtabase"

    第2步:选择"General Purpose or Transaction Processing"

    第3步:选择Configuration Type:Admin-Managed. Global Database Name:testdb. SID Prefix:testdb.

    点击"Select ALL". 这里一定要选择全部节点.

    第4步:配置Enterprise Managert 和 Automatic Maintenance Tasks.

    第5步:设置密码。"Use the Same Administrative Password for All Accounts"

    点击"Yes"

    第6步: Storage Type: Automatic Storage Management(ASM).

    Storage Location:选择"Use Oracle-Managed Files".设置数据文件存放位置,在"Databse Area",点击"Browse",选择+RACDBA_DATA.

    Sp-

    要求设置ASMSNMP密码

    然后,报以下错误ORA-01017.

    解决:以grid用户给asmsnmp设置密码。然后再点击上图的"Retry"。

    第7步:设置FRA和归档。定义快速恢复区(FRA)大小时,一般用整个卷的大小的90%。

    点击"Browse",选择RACDB_FRA.

    第8步:设置Sample Schemas和Custom Scripts.一般不勾选"Sample Schemas".

    选择"No scripts to run"

    第9步:设置内存、SGA和PGA、字符集、连接模式。

    选择Typical,SGA and PGA,先用默认的738MB.后面根据情况也可以调整。

    或者根据规划的生产需求,定制SGA和PGA Size,如下图。

    默认Processes是150.

    设置字符集。

    设置connection mode.

    第10步:点击"Next"

    第11步:开始创建数据库。选择"Create Database".

    创建过程中。

    弹出下图,提示Database creation complete.和相应的提示信息。

    点Exit,退出。

    RAC安装完成。

  • 相关阅读:
    elastic
    Leetcode题库 第十行
    Leetcode题库-实现strStr()
    Redis持久化
    Redis的数据结构及应用场景
    Redis缓存的淘汰策略
    Redis缓存常见问题
    Redis面试题1
    消息队列的原理及选型
    【转载】java高并发/mysql/mybatis/spring博客
  • 原文地址:https://www.cnblogs.com/yuky/p/9304212.html
Copyright © 2011-2022 走看看