Oracle12C R2已经出来有一段时间了,一直想搞搞RAC可是由于安装Oracle12C R2 RAC对系统资源的高要求,使得每次在自己的虚拟机上安装都失败(失败的原因主要是由于内存太小所致),前几天在工作不忙的时候打开计算机啥也不做,就开几个虚拟机做RAC实验,最后也算成功了;---我自己的笔记本内存16G I7的内核

1、环境准备:

操作系统:Linux7.2-64

软件:linuxx64_12201_database 

     linuxx64_12201_grid_home             

 ASM磁盘组:使用裸设备

Oracle12C R2+RAC

安装介质:

软件包

名称

Linux7.164

操作系统

linuxx64_12201_database

数据库软件包

 linuxx64_12201_grid_home

数据库集群软件

ASM磁盘

共享存储

 

IP分配:

主机名

主机IP

PRIV

VIP

rac1

192.168.2.100

10.0.0.1

192.168.2.101

rac2

192.168.2.200

10.0.0.2

192.168.2.201

sacnIP

192.168.2.210



ISCSI服务器IP

192.168.2.88

两个节点只需配置公网和私有IP即可,虚拟IPscanIPhosts文件指定

 

安装目录:

Oracle软件

/opt/oracle/product/12/db

grid 软件

/opt/12/grid

CRS 软件

+DATT/testa/


---注明下:我做实验使用的共享存储盘  是采用ISCSI,单独开了一台服务器做的,本次做测试一共开了3台虚拟机(两台数据库主机各6G内存,ISCSI服务器500M)
ISCSI服务器共享存储配置步骤省略,需要用到的命令如下:

客户端发现目标服务器共享磁盘:

[root@rac2 Server]# iscsiadm -m discovery -t sendtargets -p192.168.2.88

挂载目标服务器共享磁盘

[root@rac2 ~]# iscsiadm -m node --loginall=all


2、开始部署RAC

2.1修改主机/etc/host解析文件(两节点都修改)

 [root@rac1~]# vim /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1               localhost

::1            localhost6.localdomain6 localhost6

192.168.2.100   rac121

192.168.2.101  rac121-vip

10.0.0.1       rac121-priv

192.168.2.200   rac122

192.168.2.201  rac122-vip

10.0.0.2       rac122-priv

192.168.2.210  scan-rac

[root@rac2 ~]# vim /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1               localhost

::1            localhost6.localdomain6 localhost6

192.168.2.100   rac121

192.168.2.101  rac121-vip

10.0.0.1      rac121-priv

192.168.2.200   rac122

192.168.2.201  rac122-vip

10.0.0.2       rac122-priv

192.168.2.210  scan-rac

2.2 安装所需软件包(两个节点都执行)

[root@121 Packages]# yum -y install binutils*glibc* libstdc* libaio* libX* make* sysstat* compat-* glibc-* unix*

2.3.修改linux内核参数(两个节点都执行)

 [root@121~]# vi/etc/sysctl.conf   (要根据自己服务器的内存合理配置)

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

添加以下内容:--具体的大小值 由自己的内存决定,自行调整

fs.aio-max-nr =1048576

fs.file-max =6815744

kernel.shmall =2097152

kernel.shmmax = 2147483648

kernel.shmmni =4096

kernel.sem = 25032000 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

 

 

 [root@121~]# sysctl -p --使设置生效

2.4 修改系统参数(两个节点都执行)

[root@121 ~]# vim /etc/pam.d/login

session    required     pam_limits.so

 

[root@122 ~]# vim /etc/pam.d/login

session    required     pam_limits.so

2.5 创建oraclegrid用户(两个节点都执行)

创建oracle用户与grid用户

[root@121 ~]# groupadd -g400 oinstall

[root@121 ~]# groupadd -g 401 dba

[root@121 ~]# groupadd -g 402 asmadmin

[root@121 ~]# groupadd -g 403 asmdba

[root@121 ~]# groupadd -g 404 asmoper

[root@121 ~]# groupadd -g 405 oper

[root@121 ~]# useradd -u 400 -g oinstall -Gasmadmin,asmdba,asmoper,dba grid

[root@121 ~]# useradd -u 401 -g oinstall -Gdba,asmdba,asmadmin,oper oracle

# passwd oracle 

# passwd grid

2.6 设置oracle用户与grid用户参数限制(两个节点都要做)

[root@121 ~]# vim /etc/security/limits.conf

oracle         soft    nproc   2047

oracle         hard    nproc   16384

oracle         soft    nofile  1024

oracle         hard    nofile  65536做

grid              soft    nproc   2047

grid           hard    nproc   32768

grid           soft    nofile  1024

grid           hard    nofile  65536

2.7 创建oracle用户与grid用户所需目录(两个节点都执行)

[root@rac121 ~]# mkdir -p /opt/grid                  

[root@rac121 ~]# mkdir -p /opt/12/grid                

[root@rac121 ~]# mkdir -p /opt/oracle/product/12/db  

[root@rac121 ~]# mkdir -p /opt/oracle/oradata        

[root@rac121 ~]# chown -R grid.oinstall /opt/grid    

[root@rac121 ~]# chown -R grid.oinstall /opt/12

[root@rac121 ~]# chown -R oracle.oinstall /opt/oracle/

[root@rac121 ~]# chmod -R 775 /opt/   

2.8 分别设置oracle用户和grid用户环境变量:(两个节点都执行)

第一个节点:Oracle环境变量

export PATH

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=/opt/oracle/product/12/db

export ORACLE_SID=testdb

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

第一个节点:grid环境变量

export ORACLE_BASE=/opt/grid

export ORACLE_HOME=/opt/12/grid

export ORACLE_SID=+ASM1

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

 

第二个节点:Oracle环境变量

export PATH

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=/opt/oracle/product/12/db

export ORACLE_SID=testdb

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

 

第二个节点:grid环境变量

export ORACLE_BASE=/opt/grid

export ORACLE_HOME=/opt/12/grid

export ORACLE_SID=+ASM2

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

2.9 配置rac1rac2两个节点的SSH互信关系(两个节点都执行)

配置两个节点SSH信任:

[root@rac121 ~]# su - oracle

[oracle@rac121 ~]$ mkdir ~/.ssh

[oracle@rac121 ~]$ chmod 700 ~/.ssh/

[oracle@rac121 ~]$ cd ~/.ssh/

[oracle@rac121 .ssh]$ ssh-keygen -t rsa

[oracle@rac121 .ssh]$ ssh-keygen -t dsa

[oracle@rac121 .ssh]$ cat id_rsa.pub >> authorized_keys

[oracle@rac121 .ssh]$ cat id_dsa.pub >> authorized_keys

 

[root@rac121 ~]# su – grid

[grid@rac121 ~]$ mkdir ~/.ssh

[grid@rac121 ~]$ cd ~/.ssh/

[grid@rac121 .ssh]$ cd ..

[grid@rac121 ~]$ chmod 700 ~/.ssh/

[grid@rac121 ~]$ cd ~/.ssh/

[grid@rac121 .ssh]$ ssh-keygen -t rsa

[grid@rac121 .ssh]$ ssh-keygen -t dsa

[grid@rac121 .ssh]$ cat id_rsa.pub >> authorized_keys

[grid@rac121 .ssh]$ cat id_dsa.pub >> authorized_keys

(节点二也要执行上述操作,然后将两个节点的公钥与私钥进行整合,分别拷贝到两个节点中)

完成后进行测试,是否成功

在两个节点切换到oraclegrid用户执行下属操作,(不输入密码就成功验证)

[root@rac121 ~]# su - oracle

[oracle@rac1 ~]$ ssh rac1 date

Thu Nov 27 04:56:46 EST 2014

[oracle@rac121 ~]$ ssh rac2 date

Thu Nov 27 04:56:48 EST 2014

[oracle@rac121 ~]$ ssh rac1-priv date

Thu Nov 27 04:56:54 EST 2014

[oracle@rac121 ~]$ ssh rac2-priv date

Thu Nov 27 04:56:57 EST 2014

3、挂载共享磁盘(在两个节点依次执行)

 客户端发现目标服务器共享磁盘:

[root@121 Server]# iscsiadm -m discovery -t sendtargets -p192.168.2.88

 挂载目标服务器共享磁盘

[root@122 ~]# iscsiadm -m node --loginall=all

3.1、设置可用的ASM磁盘

[root@121~]# vim  hao.sh   ---编辑脚本

for i in c d e f g j h i j

do 

echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id--whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\"" 

done

 

[root@121~]# sh hao.sh    ----执行脚本

运行脚本得到如下内容:

KERNEL=="sd?", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="14945540000000000ef376caea6d46a84b299aa2af675ec33",SYMLINK+="asm-diskc", OWNER="grid",GROUP="asmadmin", MODE="0660"

KERNEL=="sd?", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="1494554000000000046b356d577df32a8ebb1bc37aa63263b",SYMLINK+="asm-diskd", OWNER="grid",GROUP="asmadmin", MODE="0660"

KERNEL=="sd?", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="149455400000000000dbef13af1d00493893edc4ce2ba0109",SYMLINK+="asm-diske", OWNER="grid",GROUP="asmadmin", MODE="0660"

KERNEL=="sd?", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="14945540000000000fa5fccd4e81b51abc3795d66e58fb835",SYMLINK+="asm-diskf", OWNER="grid",GROUP="asmadmin", MODE="0660"

KERNEL=="sd?", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="14945540000000000545ef7c7a91cd370b7287e7498981e57",SYMLINK+="asm-diskg", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd?", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="1494554000000000078e745363d1683b432ae66cb39a2171d",SYMLINK+="asm-diskj", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd?", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="1494554000000000024c7e5803c9b66544cbc6e847bc36dcd",SYMLINK+="asm-diskh", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id--whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14945540000000000a633b36c46b565abe1bf9735cc854e85",SYMLINK+="asm-diski", OWNER="grid",GROUP="asmadmin", MODE="0660"

KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id--whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1494554000000000078e745363d1683b432ae66cb39a2171d",SYMLINK+="asm-diskj", OWNER="grid",GROUP="asmadmin", MODE="0660”

 

然后将上面的内容添加到系统文件:

[root@rac2~]# vim /etc/udev/rules.d/70-persistent-ipoib.rules

 

运行系统命令重新扫描磁盘:

[root@rac2 ~]# partprobe

 

然后查看裸设备是否创建成功

[root@rac121 ~]# ls -l /dev/sd*


4、安装grid软件:

注意:grid软件要解压到 grid用户的家目录,我们本次环境的home目录:

export ORACLE_HOME=/opt/12/grid

所以,把软件放到/opt/12/grid目录下,然后解压就可以了:

[grid@rac121 ~]$ cd /opt/12/grid/

[grid@rac121 grid]$ unzip  linuxx64_12201_grid_home


4.1、开始安装grid软件,如下所示:


wKiom1k_pPPQnbO2AAA7-FZNMMg341.png-wh_50

wKioL1k_pPSCvGDqAABIS9qEcno137.png-wh_50

wKioL1k_pPXSltUKAABByY2TZ-A856.png-wh_50

wKiom1k_pPaQRZBLAAA75L7LfKY034.png-wh_50

wKiom1k_pPegXIH7AAA3v7ypMWo943.png-wh_50

wKioL1k_pPiShd3NAAA8zf5c1wI320.png-wh_50

wKioL1k_pPnwbY4VAABaLNsZ8_U638.png-wh_50

wKiom1k_pPqTyfnRAAA9j2UYj18258.png-wh_50

wKiom1k_pPujpep3AABL8QHS-vA149.png-wh_50

wKiom1k_pPzxovjZAAA89z0JIYE636.png-wh_50

wKiom1k_pPyRXTk8AABKNArOxC0284.png-wh_50


出现上述图后,需要在两个节点执行脚本;

每个脚本依次在节点1和节点2上执行:

执行第二个脚本最后出现下图结构就说明执行成功了:

wKiom1k_pVzy1eplAAFOOnaBMr0160.png-wh_50

执行完脚本以后,这些往下执行就可以:

wKiom1k_peyTrsyWAAETDlFro1E065.png-wh_50

wKioL1k_pe3AOlp_AABTZh4jdlM201.png-wh_50

wKiom1k_pe-QFX3eAAG_MF_cBRQ954.png-wh_50

当我们执行完成后,如上图所示可能会报错,不过经过查看日志我们发现这个错没关系,可以忽略;


检查grid状态:---从下面的信息可以看到 我们安装的没有问题

[grid@rac121 ~]$crs_stat -t

Name           Type           Target    State    Host       

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

ora....SM.lsnrora....er.type ONLINE    ONLINE    rac121     

ora.DATA.dg    ora....up.type ONLINE    ONLINE   rac121     

ora....ER.lsnrora....er.type ONLINE    ONLINE    rac121     

ora....AF.lsnrora....er.type OFFLINE   OFFLINE              

ora....N1.lsnrora....er.type ONLINE    ONLINE    rac121     

ora.MGMTLSNR   ora....nr.type ONLINE    ONLINE   rac121     

ora.asm        ora.asm.type   ONLINE   ONLINE    rac121     

ora.chad       ora.chad.type  ONLINE   ONLINE    rac121     

ora.cvu        ora.cvu.type   ONLINE   ONLINE    rac121     

ora.mgmtdb     ora....db.type ONLINE    ONLINE   rac121     

ora....networkora....rk.type ONLINE    ONLINE    rac121     

ora.ons        ora.ons.type   ONLINE   ONLINE    rac121     

ora.proxy_advmora....vm.type OFFLINE   OFFLINE              

ora.qosmserverora....er.type ONLINE    ONLINE    rac121     

ora....21.lsnrapplication    ONLINE    ONLINE   rac121     

ora.rac121.onsapplication    ONLINE    ONLINE   rac121     

ora.rac121.vipora....t1.type ONLINE    ONLINE    rac121     

ora....22.lsnrapplication    ONLINE    ONLINE   rac122     

ora.rac122.onsapplication    ONLINE    ONLINE   rac122     

ora.rac122.vipora....t1.type ONLINE    ONLINE    rac122     

ora.scan1.vip  ora....ip.type ONLINE    ONLINE   rac121     

[grid@rac121 ~]$


4.3、使用grid用户创建ASM磁盘组:

[grid@rac121 ~]$  /opt/12/grid/bin/asmca   ---执行命令

wKiom1k_ptyw-0ovAADOoaWOve4826.png-wh_50

wKiom1k_pt2gF73cAAC0AJmmuPs703.png-wh_50

wKioL1k_pt7A4eBTAAB-yrmL4fs599.png-wh_50

从上面的图我们可以看到,我们需要的ASM磁盘组已经创建好了,接着安装Oracle软件即可:


5、使用Oracle用户开始,首先安装Oracle软件:

解压软件后开始安装,如下图所示:

wKioL1k_qAjjqNTBAAC__c_H_4I778.png-wh_50

wKioL1k_qAmAgHBXAACfmPEuPTY347.png-wh_50

wKiom1k_qAqhNwXGAAC-1uSC6AU914.png-wh_50

wKiom1k_qAuDtLEgAABZ9p3JhuQ407.png-wh_50

wKioL1k_qAyD-PeCAAEVh0_1A84605.png-wh_50

wKiom1k_qA3zuY70AADujB046Xs432.png-wh_50

wKiom1k_qA_yTneTAAE2oqZ7AF8172.png-wh_50

wKioL1k_qBCSkhKWAAENwZnPgh8098.png-wh_50

wKioL1k_qBOg1PQ_AACnr9nMs9g669.png-wh_50

wKiom1k_qBzjeF9VAAEMS4vhjNE902.png-wh_50

安装上图的提示,执行root.sh脚本即可,然后会看到下图安装成功的提示:

wKiom1k_qHzAgIR_AABsQ3Mf87E573.png-wh_50


5.2、使用DBCA创建数据库:


wKiom1k_qW3QN3zZAAC5ZJ6_XcE914.png-wh_50

wKioL1k_qW7g0bRzAADOvlKb0c0229.png-wh_50

wKioL1k_qXaDBAmEAADlLAMAuf8370.png-wh_50

wKiom1k_qYzSDHLCAACiE-qs2sg361.png-wh_50

wKioL1k_qZLhNvJtAAEYKgymeNc673.png-wh_50

wKiom1k_qZPyGRfxAAEhtfgb8FE767.png-wh_50

wKiom1k_qZSxgop5AAC5zN-g_bQ572.png-wh_50

wKioL1k_qZaAHaGXAADLCn4j1ig477.png-wh_50

wKioL1k_qZeSR448AADBgR7apGY439.png-wh_50

wKiom1k_qZnCMbBAAAD_9kzg7O4351.png-wh_50

wKioL1k_qZvRvOL7AAEVLjDoQ8o347.png-wh_50

wKiom1k_qZyzcwXBAADfav0M1J0337.png-wh_50

wKiom1k_qZ6iPP9iAAC9-5mvKpQ905.png-wh_50

wKioL1k_qZ-B41yaAACq6E9kGJc949.png-wh_50

wKioL1k_qaGCS1yxAADARuKdbzs187.png-wh_50

wKiom1k_qaOjxR0OAACdnw4Srds749.png-wh_50


至此安装步骤已经完整了,就等着安装完成就可以了,