Install Oracle 12c R2 RAC On CentOS 7

1. 配置操作系统

  1. 检查系统的内核和程序包要求

    # rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
    bc \
    binutils \
    compat-libcap1 \
    compat-libstdc++-33 \
    elfutils-libelf-devel \
    glibc \
    glibc-devel \
    gcc-c++ \
    ksh \
    libaio \
    libaio-devel \
    libgcc \
    libstdc++ \
    libstdc++-devel \
    libX11 \
    libXau \
    libXi \
    libXtst \
    libXrender  \
    libXrender-devel \
    make \
    net-tools \
    nfs-utils \
    smartmontools \
    sysstat \
    unixODBC \
    unixODBC-devel
    
    binutils-2.27-27.base.el7 (x86_64)
    bc-1.06.95-13.el7 (x86_64)
    binutils-2.27-27.base.el7 (x86_64)
    compat-libcap1-1.10-7.el7 (x86_64)
    compat-libstdc++-33-3.2.3-72.el7 (x86_64)
    elfutils-libelf-devel-0.170-4.el7 (x86_64)
    glibc-2.17-222.el7 (x86_64)
    glibc-devel-2.17-222.el7 (x86_64)
    gcc-c++-4.8.5-28.el7 (x86_64)
    ksh-20120801-137.el7 (x86_64)
    libaio-0.3.109-13.el7 (x86_64)
    libaio-devel-0.3.109-13.el7 (x86_64)
    libgcc-4.8.5-28.el7 (x86_64)
    libstdc++-4.8.5-28.el7 (x86_64)
    libstdc++-devel-4.8.5-28.el7 (x86_64)
    libX11-1.6.5-1.el7 (x86_64)
    libXau-1.0.8-2.1.el7 (x86_64)
    libXi-1.7.9-1.el7 (x86_64)
    libXtst-1.2.3-1.el7 (x86_64)
    libXrender-0.9.10-1.el7 (x86_64)
    libXrender-devel-0.9.10-1.el7 (x86_64)
    make-3.82-23.el7 (x86_64)
    net-tools-2.0-0.22.20131004git.el7 (x86_64)
    nfs-utils-1.3.0-0.54.el7 (x86_64)
    smartmontools-6.5-1.el7 (x86_64)
    sysstat-10.1.5-13.el7 (x86_64)
    unixODBC-2.3.1-11.el7 (x86_64)
    unixODBC-devel-2.3.1-11.el7 (x86_64)
    
  2. 禁用Transparent HugePages
    参考文档,禁用Transparent HugePages

  3. 自动SSH配置
    编辑/etc/ssh/sshd_config文件

    # vim /etc/ssh/sshd_config
    LoginGraceTime 0
    
  4. 安装图形界面包

    # yum -y install xclock
    # yum -y install xterm
    

    在所有集群节点上,重复以上操作

2. 准备Oracle RAC的集群节点

2.1 用户账户

  1. 使用以下命令创建OS组。 以“root”用户身份输入以下命令:
    # /usr/sbin/groupadd oinstall
    # /usr/sbin/groupadd dba
    # /usr/sbin/groupadd asmadmin
    # /usr/sbin/groupadd asmdba
    # /usr/sbin/groupadd asmoper
    
  2. 使用以下命令创建将拥有Oracle软件的用户:
    # /usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -m grid
    # /usr/sbin/useradd -g oinstall -G dba,asmdba -d /home/oracle -m oracle
    
  3. 设置用户密码
    # passwd oracle
    Changing password for user oracle.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    
    # passwd grid
    Changing password for user grid.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    
    
    在每个节点上重复步骤1到步骤3。

2.2 网络

虚拟IP地址必须与公共IP地址位于同一子网中

  1. 配置网卡

    #私有网卡配置
    # vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=enp0s8
    UUID=aa785d9b-39f2-444e-bd3a-2335cf002e40
    DEVICE=enp0s8
    ONBOOT=yes
    IPADDR=10.10.10.34
    PREFIX=24
    
    #公共网卡配置
    # vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=enp0s3
    UUID=a7d3ba66-757d-4760-b6f3-1c9bb8d95474
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.34
    PREFIX=24
    GATEWAY=192.168.56.1
    IPV6_PRIVACY=no
    
  2. 配置/etc/hosts文件

    # vi /etc/hosts
    # PUBLIC
    192.168.56.34  rac1
    192.168.56.35  rac2
    # PRIVATE
    10.10.10.34  rac1priv
    10.10.10.35  rac2priv
    #VIP 
    192.168.56.134  rac1vip
    192.168.56.135  rac2vip
    #SCAN IP 
    192.168.56.123  scanip
    

    在每个节点上重复步骤1到步骤2。ip修改成对应节点

2.3 集群的时间同步

从Oracle 11g开始,Oracle已经对集群同步开发了ctss服务。所以,可以直接禁用NTPD服务;

Oracle的ctss节点时间同步服务会自动检测ntpd服务,如果ntpd服务存在并且在运行,则ctss服务进入观察者模式,节点间的时间同步由ntpd服务来做。

如果ctss发现ntpd服务不存在,则直接接管结群的时间同步任务。

关闭ntpd服务
service ntpd stop

#禁止开机自启动。
systemctl disable ntpd.service

#重命名ntpd的配置文件
# mv /etc/ntp.conf /etc/ntp.conf.bak

2.4 配置内核参数

创建或编辑/etc/sysctl.d/97-oracle-database-sysctl.conf文件,添加或编辑类似于以下内容的行:

/etc/sysctl.conf文件已被弃用

# vim /etc/sysctl.d/97-oracle-database-sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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 = 1048576

#/sbin/sysctl --system

* Applying /usr/lib/sysctl.d/00-system.conf ...
* Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ...
kernel.yama.ptrace_scope = 0
* Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq = 16
kernel.core_uses_pid = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /usr/lib/sysctl.d/60-libvirtd.conf ...
fs.aio-max-nr = 1048576
* Applying /etc/sysctl.d/97-oracle-database-sysctl.conf ...
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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 = 1048576
* Applying /etc/sysctl.d/99-sysctl.conf ...
* Applying /etc/sysctl.conf ...

# /sbin/sysctl -a

在每个节点上重复以上操作

2.5 为oracle用户设置shell限制

为了提高Linux系统上软件的性能,必须增加oracle用户的shell限制

  1. 将以下行添加到/etc/security/limits.conf文件中:
    grid soft nproc 2047
    grid hard nproc 16384
    grid soft nofile 1024
    grid hard nofile 65536
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack  10240
    
  2. /etc/pam.d/login文件中添加或编辑以下行:
    session required pam_limits.so
    
  3. 对默认的shell启动文件进行以下更改,将以下行添加到/etc/profile文件中:
    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
    
    在每个节点上重复以上操作

2.6 创建目录

  1. 以root用户,创建Oracle Inventory 目录
    # mkdir -p /u01/app/oraInventory
    # chown -R grid:oinstall /u01/app/oraInventory
    # chmod -R 775 /u01/app/oraInventory
    
  2. 以root用户,创建GI HOME目录
    # mkdir -p /u01/app/grid
    # mkdir -p /u01/app/12.2.0/grid
    # chown -R grid:oinstall /u01/app/grid
    # chmod -R 775 /u01/app/grid
    # chown -R grid:oinstall /u01/app/12.2.0
    # chmod -R 775 /u01/app/12.2.0/
    
  3. 以root用户,创建Oracle Base目录
    # mkdir -p /u01/app/oracle
    # mkdir /u01/app/oracle/cfgtoollogs #needed to ensure that dbca is able to run after the rdbms installation.
    # chown -R oracle:oinstall /u01/app/oracle
    # chmod -R 775 /u01/app/oracle
    
  4. 以root用户,创建Oracle RDBMS Home目录
    # mkdir -p /u01/app/oracle/product/12.2.0/db_1
    # chown -R oracle:oinstall /u01/app/oracle/product/12.2.0/db_1
    # chmod -R 775 /u01/app/oracle/product/12.2.0/db_1
    
    在每个节点上重复以上操作

2.7 配置用户环境变量

  1. oracle 用户
    $ vi .bash_profile
    umask=022
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1
    export ORACLE_SID=orcl1         
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
    
  2. grid 用户
    $ vi .bash_profile
    umask=022
    export ORACLE_BASE=/u01/app/grid
    export ORACLE_HOME=/u01/app/12.2.0/grid
    export ORACLE_SID=+ASM1      
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
    
    在每个节点上重复以上操作,注意ORACLE_SID改成对应的名称

3. 准备Oracle RAC的共享存储

集群中的每个节点都需要外部共享磁盘来存储Oracle Clusterware(Oracle Cluster Registry和Voting Disk)文件以及Oracle Database文件。在识别适当的磁盘设备时,请遵循以下准则:

  • ASM磁盘组中的所有磁盘应具有相同的大小并具有相同的性能特征。

  • 磁盘组不应在单个物理磁盘设备上包含多个分区。

  • Oracle RAC不支持将逻辑卷用作ASM磁盘组中的磁盘。

用于执行安装的用户帐户(通常为“oracle”)必须具有写入权限才能在指定的路径中创建文件

3.1 共享磁盘

此次实验,我是在VirtualBox添加共享磁盘上使用ASM进行集群件和数据库存储。

3.1.1 分区共享磁盘
  1. 使用fdisk命令对/dev/sdb磁盘进行分区,步骤如下:
    # fdisk /dev/sdb
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table
    Building a new DOS disklabel with disk identifier 0xb837475d.
    
    Command (m for help): n   
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-83886079, default 2048): 
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): +1G
    Partition 1 of type Linux and of size 1 GiB is set
    
    Command (m for help): n
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): p
    Partition number (2-4, default 2): 2
    First sector (2099200-83886079, default 2099200): 
    Using default value 2099200
    Last sector, +sectors or +size{K,M,G} (2099200-83886079, default 83886079): +1G
    Partition 2 of type Linux and of size 1 GiB is set
    
    Command (m for help): n
    Partition type:
       p   primary (2 primary, 0 extended, 2 free)
       e   extended
    Select (default p): p
    Partition number (3,4, default 3): 3  
    First sector (4196352-83886079, default 4196352):    
    Using default value 4196352
    Last sector, +sectors or +size{K,M,G} (4196352-83886079, default 83886079): +30G
    Partition 3 of type Linux and of size 30 GiB is set
    
    Command (m for help): n
    Partition type:
       p   primary (3 primary, 0 extended, 1 free)
       e   extended
    Select (default e): p
    Selected partition 4
    First sector (67110912-83886079, default 67110912): 
    Using default value 67110912
    Last sector, +sectors or +size{K,M,G} (67110912-83886079, default 83886079): 
    Using default value 83886079
    Partition 4 of type Linux and of size 8 GiB is set
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    
  2. 集群的所有节点上运行以下命令来加载更新的块设备:
    # /sbin/partprobe
    
3.1.2 手工映射ASM磁盘
  1. 使用文本编辑器为Oracle ASM设备创建UDEV规则文件
    # vim /etc/udev/rules.d/99-oracle-asmdevices.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=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
    ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N"
    ACTION=="add", KERNEL=="raw[1-4]",OWNER="grid",GROUP="oinstall",MODE="660"
    
  2. 将rules.d文件复制到群集上的所有其他节点上
    # scp /etc/udev/rules.d/99-oracle-asmdevices.rules root@rac2:/etc/udev/rules.d/
    
  3. 以root用户运行partprobe命令
    # /sbin/partprobe /dev/sdb1
    # /sbin/partprobe /dev/sdb2
    # /sbin/partprobe /dev/sdb3
    # /sbin/partprobe /dev/sdb4
    
  4. 加载规则并重新启动UDEV服务
    # systemctl restart systemd-udev-trigger.service
    

3.2 在Linux上设置磁盘I/O调度程序

为了获得Oracle ASM的最佳性能,Oracle建议您使用Deadline I/O Scheduler

# cat /sys/block/sdb/queue/scheduler
noop [deadline] cfq 

# 若不是deadline模式,用以下命令进行更改
# echo deadline > /sys/block/${ASM_DISK}/queue/scheduler

4. 配置互信

  1. 利用oracle自带的sshUserSetup.sh脚本,配置互信
    # su - grid
    $ cd /opt/database/sshsetup
    $ ./sshUserSetup.sh -user grid -hosts "rac1 rac2" -advanced -noPromptPassphrase
    
    # su - oracle
    $ cd /opt/database/sshsetup
    $ ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -advanced -noPromptPassphrase    
    
  2. 验证ssh
    每个节点的oracle用户与grid用户都需验证
    $ ssh rac1 date
    $ ssh rac2 date
    $ ssh rac1priv date
    $ ssh rac2priv date
    

5. 安装 Oracle Grid Infrastructure

5.1 解压GI软件包

$ su - grid
$ cd  /u01/app/12.2.0/grid
$ unzip linuxx64_12201_grid_home.zip

5.2 安装grid前检查

$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose

安装cvuqdisk

# rpm -ivh cvuqdisk-1.0.10-1.rpm

5.3 利用图形界面安装grid

利用Xstart工具调用远程桌面。
在这里插入图片描述

运行gridSetup.sh脚本
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
由于粗心,编辑/etc/hosts文件时,把vip写在不同网段中,更改后这一步骤能过去了

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
GIMR需要37712MB空间,需要新添加磁盘了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

问题点:

  1. 物理内存至少8GB

    凑钱给我买内存吧,不然凑不齐16g内存。。

  2. 未在集群节点上配置并运行“avahi-daemon”守护程序

    systemctl start avahi-daemon.socket
    systemctl enable avahi-daemon.socket

  3. /dev/shm问题

    修改/etc/fstab文件,增加tmpfs /dev/shm tmpfs defaults,size=4G 0 0内容,mount -o remount /dev/shm重新生效

  4. NOZEROCONF没有设置

    编辑/etc/sysconfig/network添加NOZEROCONF=yes

  5. ASM权限问题

    修改为asmadmin权限,chown grid:asmadmin /dev/raw/raw[1-5]

  6. resolv.cnf问题

    mv /etc/resolv.conf /etc/resolv.conf.bak

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
集群每个节点以root用户运行:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/12.2.0/grid/root.sh

运行/u01/app/12.2.0/grid/root.sh脚本,到步骤18,出现以下错误,断开连接,图形界面消失 。。。。( ̄﹏ ̄;)

2018/11/29 21:32:47 CLSRSC-343: Successfully started Oracle Clusterware stack
2018/11/29 21:32:47 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.

Socket error Event: 32 Error: 10053.
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(192.168.56.34) at 21:36:15.

Type `help' to learn how to use Xshell prompt.
[c:\~]$ 

谷歌说是编辑/etc/sysconfig/network-scripts/ifcfg-enp0s3 文件,增加以下内容:
NM_CONTROLLED=no

重新安装吧,需先删除安装失败的文件。

rm -rf /u01/app/12.2.0/grid/*
rm -rf /u01/app/grid/*
rm -rf /u01/app/oraInventory/*
rm -rf /etc/ora*
rm -rf /tmp/.oracle
rm -rf /tmp/OraInstall*
rm -rf /opt/ORCLfmap
rm -rf /var/tmp/.orac*
dd if=/dev/zero of=/dev/sdb1 bs=1M count=1024
dd if=/dev/zero of=/dev/sdb2 bs=1M count=1024
dd if=/dev/zero of=/dev/sdb3 bs=1M count=1024

在这里插入图片描述

在这里插入图片描述
这次自动关机。。。。( ̄﹏ ̄;),删除文件重新开始吧。

这次选择NO,表示MIGR与ocr和votedisk在一个ASM磁盘组进行安装。
在这里插入图片描述

在这里插入图片描述

6. 安装Oracle DB软件

oracle用户调取图像界面,进行安装
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

( ̄﹏ ̄;)
安装失败。。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值