vitualbox安装CentOS7.9(core)搭建11gRAC

一、硬件及软件准备

在这里插入图片描述

二、RAC集群配置规划

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

三、安装Linux

磁盘分区时, 除开/boot分区其余全部创建vg_root卷组
在vg_root卷组的基础上根据上面的系统规划分区
(可不做)

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

两台主机的公共IP和私有IP的网卡名字要相同,比如:
rac1 : rac1主机的enp0s8网卡
rac1-priv : rac1主机的enp0s3网卡
rac2 : rac2主机的enp0s8网卡
rac2-priv : rac2主机的enp0s3网卡

关闭防火墙(所有主机)

# 关闭防火墙
$ systemctl stop firewalld.service

# 永久禁用
$ systemctl disable firewalld.service

在这里插入图片描述

关闭selinux(所有主机)

$ vi /etc/selinux/config
$ setenforce 0
$ getenforce

Linux初始化配置(所有主机)

将两个节点的网络IP写进两台主机的hosts文件:

$ vi /etc/hosts

# Public Network
192.168.56.101 rac1
192.168.56.103 rac2
# Public Virtual IP (VIP) addresses
192.168.56.111 rac1-vip
192.168.56.113 rac2-vip
# Private Interconnect RAC心跳
192.168.56.111 rac1-priv
192.168.56.113 rac2-priv
# Single Client Access Name (SCAN)
192.168.56.200 rac-scan
127.0.0.1 localhost

四、安装RAC所需的Linux程序包(所有主机)

yum install binutils -y
yum install compat-libcap1 -y
yum install compat-libstdc++-33 -y
yum install gcc gcc-c++ -y
yum install ksh -y
yum install libaio-devel -y
yum install sysstat -y

yum install unixODBC* -y

五、创建用户和组(所有主机)

在两个节点上执行

1、创建组

groupadd -g 1100 oinstall
groupadd -g 1101 dba
groupadd -g 1102 oper
groupadd -g 1103 asmadmin
groupadd -g 1104 asmdba
groupadd -g 1105 asmoper

2、创建grid用户

useradd -u 1000 -g oinstall -G asmadmin,asmdba,asmoper,dba -d /home/grid grid

3、创建oracle用户

useradd -u 1001 -g oinstall -G dba,oper,asmdba -d /home/oracle oracle

4、设置密码

echo "oracle:oracle" | chpasswd
echo "grid:grid" | chpasswd

六、配置用户环境变量(所有主机)

在两个节点执行

rac1

1、设置用户grid的环境变量

在grid用户下的~/.bash_profile 添加:
在为每个 Oracle RAC 节点设置 Oracle 环境变量时,确保为每个 RAC 节点指定唯一的ASM SID。
rac1:ORACLE_SID=+ASM1
rac2:ORACLE_SID=+ASM2

#add for grid
export ORACLE_SID=+ASM1 #节点rac2上要改为:+ASM2
export ORACLE_BASE=/oracle/app/grid
export ORACLE_HOME=/oracle/app/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH
export TMP=/tmp
export TMPDIR=/tmp

2、设置用户oracle的环境变量
在oracle用户下的~/.bash_profile 添加:

#add for oracle
export ORACLE_SID=racdb1 #节点rac2上要改为: racdb2
export ORACLE_HOSTNAME=rac1 #节点rac2上要改为: rac2
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
export TMP=/tmp
export TMPDIR=/tmp
#export ORACLE_TERM=xterm
#export NLS_LANG=SIMPLIFIED\ CHINESE_CHINA.ZHS16GBK
#export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
#export PS1="[\${ORACLE_SID}@`hostname` \${PWD}]$ "

rac2

1、设置用户grid的环境变量

在grid用户下的~/.bash_profile 添加:
在为每个 Oracle RAC 节点设置 Oracle 环境变量时,确保为每个 RAC 节点指定唯一的ASM SID。
rac1:ORACLE_SID=+ASM1
rac2:ORACLE_SID=+ASM2

#add for grid
export ORACLE_SID=+ASM2
export ORACLE_BASE=/oracle/app/grid
export ORACLE_HOME=/oracle/app/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH
export TMP=/tmp
export TMPDIR=/tmp

2、设置用户oracle的环境变量
在oracle用户下的~/.bash_profile 添加:

#add for oracle
export ORACLE_SID=racdb2
export ORACLE_HOSTNAME=rac2
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
export TMP=/tmp
export TMPDIR=/tmp
#export ORACLE_TERM=xterm
#export NLS_LANG=SIMPLIFIED\ CHINESE_CHINA.ZHS16GBK
#export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
#export PS1="[\${ORACLE_SID}@`hostname` \${PWD}]$ "

七、验证用户nobody是否存在

验证用户 nobody 存在
安装软件之前,执行以下过程,以验证在两个 Oracle RAC 节点上存在用户 nobody:

$ id nobody
# 显示以下信息
uid=99(nobody) gid=99(nobody) groups=99(nobody)

# 如果该命令显示了 nobody 用户的信息,则无需创建该用户。
# 如果用户 nobody 不存在,则输入以下命令进行创建:
$ /usr/sbin/useradd nobody

八、root创建Oracle基目录等路径(所有主机)

$ mkdir -p /oracle/app/grid
$ mkdir -p /oracle/app/11.2.0/grid
$ chown -R grid:oinstall /oracle
$ mkdir -p /oracle/app/oracle
$ chown oracle:oinstall /oracle/app/oracle
$ chmod -R 775 /oracle

九、设置内核参数和资源限制(所有主机)

1、设置内核参数

要检查已拥有的内存容量,键入以下命令:

[root@rac1 ~]# cat /proc/meminfo | grep MemTotal

要检查已分配的交换容量,键入以下命令:

[root@rac1 ~]# cat /proc/meminfo | grep SwapTotal

内核参数的设置值大于或等于推荐值:

[root@rac1 ~]# cat >> /etc/sysctl.conf <<EOF
#add for oracle
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
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
fs.aio-max-nr = 1048576
EOF

要在当前运行的系统中激活新的内核参数值:

[root@rac1 ~]# sysctl -p

2、设置用户oracle和grid的资源限制

要改善 Linux 系统上的软件性能,必须对 Oracle 软件所有者用户(grid、oracle)增加以下资源限制:
• 打开文件描述符的最大数 nofile
• 可用于单个用户的最大进程数 nproc
• 进程堆栈段的最大大小 stack

在每个 Oracle RAC 节点上,以 root 用户身份运行以下命令:

[root@rac1 ~]# cat >> /etc/security/limits.conf <<EOF
# add for oracle and grid
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
EOF

查看设定值

[root@rac1 ~]# tail -n 15 /etc/security/limits.conf

在每个 Oracle RAC 节点上,在 /etc/pam.d/login 文件中添加或编辑下面一行内容(如果不存在此行):

[root@rac1 ~]# cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
EOF

以oracle或grid用户登录,检查设定的值:

# 1)nproc:
ulimit -Su
ulimit -Hu
# 2)nofile:
ulimit -Sn
ulimit -Hn
# 3)stack:
ulimit -Ss
ulimit -Hs

十、配置grid和oracle用户互信(所有主机)

简单来说就是在任意一个主机上的grid用户可以登陆另一台主机的grid,oracle同样

  1. 在每个用户下生成密钥对
$ /usr/bin/ssh-keygen -t dsa

执行后会生成一个 .ssh 文件夹, 里面有两个文件:
id_dsa.pub 公钥
id_dsa 私钥

  1. 所有节点的公钥id_dsa.pub合并生成一个文件authorized_keys
# rac1 grid 可登陆到rac2 grid
# 复制rac1 grid下的id_dsa.pub到authorized_keys
[grid@rac1 .ssh]# cat id_dsa.pub >> authorized_keys
# 复制rac2 grid下的公钥内容到rac1的authorized_keys中即可

# rac2 grid 可登陆到rac1 grid
# 复制rac2 grid下的id_dsa.pub到authorized_keys
[grid@rac2 .ssh]# cat id_dsa.pub >> authorized_keys
# 复制rac1 grid下的公钥内容到rac2的authorized_keys中即可

# rac1 oracle 可登陆到rac2 oracle
# 复制rac1 oracle下的id_dsa.pub到authorized_keys
[oracle@rac1 .ssh]# cat id_dsa.pub >> authorized_keys
# 复制rac2 oracle下的公钥内容到rac1的authorized_keys中即可

# rac2 oracle 可登陆到rac1 oracle
# 复制rac2 oracle下的id_dsa.pub到authorized_keys
[grid@rac1 .ssh]# cat id_dsa.pub >> authorized_keys
# 复制rac1 oracle下的公钥内容到rac2的authorized_keys中即可

十一、上传RAC安装包(rac1上执行)

https://wss1.cn/f/7k3di3yisbk 复制链接到浏览器打开
grid用户登录rac1,创建RAC安装包存放路径:

[grid@rac1 ~]$ mkdir /oracle/soft

自行上传文件到Linux

[root@rac1 soft]# ls -l /oracle/soft/
总用量 3323832
drwxr-xr-x 2 grid oinstall 4096 127 17:14 asmlib
-rw-r--r-- 1 grid oinstall 1239269270 611 2017 linux.x64_11gR2_database_1of2.zip
-rw-r--r-- 1 grid oinstall 1111416131 611 2017 linux.x64_11gR2_database_2of2.zip
-rw-r--r-- 1 grid oinstall 1052897657 611 2017 linux.x64_11gR2_grid.zip

[root@rac1 soft]# ls -l /oracle/soft/asmlib/
总用量 132
-rw-r--r-- 1 grid oinstall 13300 126 10:12 oracleasmlib-2.0.4-1.el6.x86_64.rpm
-rw-r--r-- 1 grid oinstall 74984 126 10:12 oracleasm-support-2.1.8-1.el6.x86_64.rpm

十二、防止stty命令引发的安装错误(所有主机)

在每台主机的grid和oracle用户的.bash_profile文件末尾加入以下语句:

if [ -t 0 ]; then
stty intr ^C
fi

在这里插入图片描述

在 Oracle Grid Infrastructure 或 Oracle RAC 软件的安装过程中,
OUI 使用 SSH 运行命令并将文件复制到其他节点。在安装过程中,系统中的隐藏文件(例如 .bashrc 或 .cshrc)如果包含stty 命令,
则会导致生成文件错误和其他安装错误。
要避免该问题,必须在每个 Oracle 安装所有者的用户主目录中修改这些文件以取消所有 STDERR 输出

十三、创建共享磁盘

  1. 将节点 rac1,rac2 关机

  2. 创建固定大小的虚拟硬盘
    在这里插入图片描述
    在这里插入图片描述

  3. 添加到主机
    依次添加三个共享盘, 两台主机都要添加
    在这里插入图片描述

十四、安装并配置 ASMLib 2.0 (rac1上执行)

[root@rac1 ~]# cd /oracle/soft/asmlib/
# 安装 oracleasm-support
[root@rac1 asmlib]# rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm

# 安装 kmod-oracleasm
[root@rac1 asmlib]# yum install kmod-oracleasm -y

# 安装 oracleasmlib
[root@rac1 asmlib]# rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm

# 在两个 Oracle RAC 节点上执行以下命令检查:
[root@rac1 asmlib]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%

安装后重启所有节点,否则在配置ASMLib可能出现无法加载ASMLib模块错误!

十五、集群时间同步服务(所有节点)

[root@racnode1 ~]# /sbin/service ntpd stop
[root@racnode1 ~]# chkconfig ntpd off
[root@racnode1 ~]# mv /etc/ntp.conf /etc/ntp.conf.original
[root@racnode1 ~]# rm /var/run/ntpd.pid

十六、安装 Grid Infrastructure

  1. 集群 Grid Infrastructure 安装前的任务(所有节点)
    登陆到grid用户
    解压上传的grid压缩包

在所有节点上安装用于 Linux 的 cvuqdisk 程序包
位于 rac1 节点中安装介质的 rpm 目录下:
/oracle/soft/grid/rpm/cvuqdisk-1.0.7-1.rpm

rac1:

[root@rac1 rpm]# export CVUQDISK_GRP=oinstall
[root@rac1 rpm]# rpm -ivh cvuqdisk-1.0.7-1.rpm

将安装包发送到rac2 上同样安装

  1. 为集群安装 Oracle Grid Infrastructure(rac1)

1)安装图形化–root
先在windows上安装xmanager并打开xmanager-Passive

yum -y groupinstall "X Window System"
yum -y install xorg-x11-apps
# 生效
init 5 或者 startx
# 设置语言为英文
export LANG=en
# 测试图形界面是否可用
export DISPLAY=本机IP:0
xclock

2)执行安装–grid

[grid@rac1 ~]$ cd /oracle/soft/grid
[grid@rac1 grid]$ export DISPLAY=主机IP:0.0
[grid@rac1 grid]$ export LANG=en
[grid@rac1 grid]$ ./runInstaller

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

以root用户按顺序执行
1.[root@rac1 ~]# /oracle/app/oraInventory/orainstRoot.sh
2.[root@rac2 ~]# /oracle/app/oraInventory/orainstRoot.sh
3.[root@rac1 ~]# /oracle/app/11.2.0/grid/root.sh
出现Adding daemon to inittab新开一个rac1的窗口执行:
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
4.[root@rac2 ~]# /oracle/app/11.2.0/grid/root.sh
出现Adding daemon to inittab新开一个rac2的窗口执行:
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

asmca创建磁盘组-数据和FRA

[grid@rac1 grid]$ asmca

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

十七、Grid Infrastructure 安装后任务

验证 Oracle Clusterware 安装

1、检查 CRS 状态
[grid@rac1 ~]$ 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

2、检查 Clusterware 资源
注:在 Oracle Clusterware 11g 第 2 版 (11.2) 中不再使用 crs_stat 命令。
[grid@rac1 ~]$ crs_stat -t -v

3、检查集群节点
[grid@rac1 ~]$ olsnodes -n
rac1 1
rac2 2

检查两个节点上的 Oracle TNS 监听器进程
[grid@rac1 ~]$ ps -ef | grep lsnr | grep -v ‘grep’ | grep -v ‘ocfs’ | awk ‘{print $9}’
LISTENER_SCAN1
LISTENER

确认针对 Oracle Clusterware 文件的 Oracle ASM 功能
[grid@rac1 ~]$ srvctl status asm -a
ASM is running on rac1,rac2
ASM is enabled.

检查 Oracle 集群注册表 (OCR)
[grid@rac1 ~]$ ocrcheck

检查表决磁盘
[grid@rac1 ~]$ crsctl query css votedisk

十八、在RAC中安装 Oracle Database 11g软件

在节点rac1执行安装过程 ,其他节点在安装过程中选中即可。

1、使用oracle用户解压安装软件
[root@rac1 ~]# cd /oracle
[root@rac1 oracle]# chmod 777 soft/
[root@rac1 soft]# chown oracle linux.x64_11gR2_database_*

2、解压第一个压缩包
[oracle@rac1 soft]$ unzip linux.x64_11gR2_database_1of2.zip

3、解压第二个压缩包
[oracle@rac1 soft]$ unzip linux.x64_11gR2_database_2of2.zip

[oracle@rac1 soft]$ du -sh database/
2.4G database/

[oracle@rac1 soft]$ cd database/

设置DISPLAY
[oracle@rac1 database]$ export DISPLAY=主机IP:0
[oracle@rac1 database]$ export LANG=en

[oracle@rac1 database]$ ./runInstaller

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

十九、创建数据库(rac1)

[grid@rac1 ~]$ crsctl status resource -t

设置DISPLAY
[oracle@rac1 database]$ export DISPLAY=主机IP:0
[oracle@rac1 database]$ export LANG=en
[oracle@rac1 database]$ dbca

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

二十、在 RAC 环境中开启归档

1)设置集群参数为false

[oracle@rac1 ~]$ sqlplus / as sysdba
SQL> alter system set cluster_database=false scope=spfile sid='racdb1';

2)停止集群数据库
以 oracle 用户身份关闭所有 访问集群化数据库的实例:

[oracle@rac1 ~]$ srvctl stop database -d racdb

3)单实例mount数据库
使用本地实例,挂载 数据库:

[oracle@rac1 ~]$ sqlplus / as sysdba
SQL> startup mount

4)开启归档
启用存档功能:

SQL> alter database archivelog;

5)修改集群参数为true
通过在当前实例中将实例参数 cluster_database 修改为 TRUE,重新启用对集群的支持:

SQL> alter system set cluster_database=true scope=spfile sid='racdb1';

6)关闭单实例数据库
关闭本地实例:

SQL> shutdown immediate
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.

7)启动集群数据库
以 oracle 帐户身份使用 srvctl 命令重启所有实例:

[oracle@rac1 ~]$ srvctl start database -d racdb

登录到本地实例,验证存档日志模式已启用:

[oracle@rac1 ~]$ sqlplus / as sysdba

SQL> archive log list

Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 69
Next log sequence to archive 70
Current log sequence 70
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值