首页 > 数据库 >Centos 7.4 配置RAC+ASM( oracle19c)

Centos 7.4 配置RAC+ASM( oracle19c)

时间:2024-12-25 14:33:25浏览次数:3  
标签:oracle19c RAC Centos ip ORACLE grid ssh oracle export

Centos 7.4 配置RAC+ASM( oracle19c)

一、安装准备

1 环境规划:

类型配置
操作系统 vmare+Centos 7.4 两台
磁盘 50G
内存 4G
网络 建议绑定双网卡
数据库版本 oracle 19c
共享存储 ASM

需配置两个网卡,一块共享磁盘。

说明:当前为测试环境,生产环境建议参考官方建议配置。

 

2 ip规划:

节点1和节点2配置一样:
#public-ip
192.169.100.194 green1
192.169.100.195 green2
#VIP
192.169.100.196 rac1-vip
192.169.100.197 rac2-vip
#priv-ip
10.0.0.1 rac1-priv1
10.0.0.2 rac2-priv2
#scan-ip
192.169.100.198 rac-scan

public ip:
必须是专用ip,必须在安装oracle rac前配置好,能与网络连通。public ip,vip,scan ip必须在同一个网络网段内。
类似与单实例的oracle数据库ip,主要用于管理访问。
必须是专用ip,必须在安装前配置好,必须在一个专用私有网络中,只能被另外的rac节点解析,不能被其它网络解析。从11.2.0.2开始,oracle可以自动使用至多4块私有网卡,以实现内部节点的负载均衡及冗余。 

virtual ip(vip):
必须是专用ip,不需要配置(grid集群安装之后才能ping通),public ip,vip,scan ip必须在同一个网络网段内。该ip及域名虽然配置,但必须保持不能使用(不能被访问,如ping)。
oracle在rac架构中专用,这个vip用于实现故障转移,当一个节点发生故障时,其vip会“浮动”到另外一个正常的节点,也即该正常节点对应着两个vip了。(和publi IP同一个网段)


SCAN:
Single Client Access Name,单一客户访问名称,意思是客户端(如jdbc,pl/sql等)访问数据库时的公共域名,由于rac是多节点的,客户端要访问数据库,通过scan机制,只需要提供一个访问名称,oracle rac会自动为客户端分配一个节点,这对客户端来说是透明的。(和publi IP同一个网段)

 建议通过dns配置三个专用ip,在安装前必须配置好,当有请求者时,由dns随机分配。暂不使用。scan ip需要给出唯一的名字,也即三个ip对应一个域名。名字只能是字符和'-'。oracle不推荐通过hosts文件来配置,那样只能得到一个scan ip。

scan也是一个虚拟ip名,类似与虚拟ip名,但不同的是,虚拟ip是一个节点一个ip地址一个域名,scan是针对整个cluster的,一个域名对应着多个节点,多个ip地址。

private ip:私有ip,oracle 内部用于节点间通讯的ip,不对外开放。

系统中只需要配置public ip和private IP即可,但是需要配置两块网卡,其他的ip规划之后需要配置好集群才能ping 通。

3 共享存储配置

oracle rac为共享架构,需要先配置好共享存储。

每台虚拟机两块硬盘(或者多块硬盘,这里建议使用多块硬盘,这样可以保证不会同时坏掉多张硬盘)、两个网卡(这里均使用桥接模式) 两块硬盘均不要选择独立,且不要在同一节点上

这里硬盘1选0:1

 

 

 这里硬盘2选1:0

 

 

 

 

 

 选择同一块盘之后,修改vmx问你件,然后再到vmx文件中添加对应节点的类似如下的语句:

scsi1:0.SharedBus = "virtual"
disk.locking = "FALSE"

4 网络配置

两块网卡只需要配置两个ip地址即可,且要保证两个ip地址能互相ping通,也就是priv和public两个ip地址。两个网卡(这里均使用桥接模式)

注意上面etc/hosts文件中每台机器有public、priv、vip和scan ip一共四个ip
但是在配置的时候只需要配置public、priv 两个ip就可以了。另外两个vip和scan ip只要
只要和public在同一个网段即可,并且只需要在grid安装成功之后ping通,这也是验证grid安装是否成功的关键。
其中 public 和 priv 需要在配置好之后就能ping通,但是其是哪个网络则只会在grid安装完成之后才会ping通。
public ip:

DEVICE="eth0"
BOOTPROTO=static
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE="Ethernet"
#HWADDR=
IPADDR=192.169.100.194
GATEWAY=192.169.103.255
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NETMASK=255.255.252.0

private-ip

DEVICE="ens36"
BOOTPROTO=static
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE="Ethernet"
#HWADDR=
IPADDR=10.0.0.1
GATEWAY=192.169.103.255
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NETMASK=255.255.252.0

5 ASM磁盘规划

11G的ASM分为:crs,data,recovery 3组(暂不考虑failure group等),crs需要磁盘空间很小,而data和recovery使用的空间因系统而异。

假如有一个系统5年之内数据都不会超过200GB, 使用物理磁盘的大小为500GB,那么 1.每一个ASM磁盘组中的每一个成员使用单独一个物理磁盘 2.是将一个物理磁盘分区之后供不同磁盘组使用,比如分出300GB作为data,3--5GB作为crs,剩余作recovery 使用Raid先做好镜像在ASM中选择外部 还是 直接使用磁盘通过ASM来实现冗余,这两种说法是否是等效的?只是个人喜好问题呢?

11G的ASM分为: crs, 表决磁盘 data, 数据盘 recovery 恢复 failure group 故障恢复盘

 

磁盘功能个数每个大小(GB)
OCR 3 1  3G
DATA 3 10 10G
ARCHIVE 1 10 5G

 

 

 

 

 

二、安装流程

1.规划ip

vi /etc/hosts

192.169.100.194 Ocenbase01
192.169.100.195 Ocenbase02
#VIP
192.169.100.196 Ocenbase01-vip
192.169.100.197 Ocenbase02-vip
#priv-ip
10.0.0.1 Ocenbase01-priv1
10.0.0.2 Ocenbase02-priv2
#scan-ip
192.169.100.198 Ocenbase-scan

2、安装依赖

yum -y install binutils* compat-libstdc* compat-db* compat-lib* compat-glibc* compat-gcc* elfutils-libelf* elfutils* pdskn*install gcc-c++* gcc* gdb* glibc* glibc* glibc-devel* libaio* libaio* libgcc* libstdc* libaio-devel* libstdc++* make*

3.添加用户和组

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 -u 600 -g oinstall -G dba,asmdba,oper oracle
useradd -u 601 -g oinstall -G dba,oper,asmadmin,asmoper,asmdba grid

passwd oracle
passwd grid

4. 创建目录并授权

mkdir -p /u01/app/
chown -R grid:oinstall /u01/app/
chmod -R 775 /u01/app/
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01/app/grid
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
chmod -R 775 /u01/app/grid

5. 修改系统参数

vi /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

vi /etc/pam.d/login
增加以下内容
session required pam_limits.so

vi /etc/sysctl.conf
增加以下内容
kernel.shmmax = 1024000000
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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 = 4194304
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304

sysctl -p        ---执行,使上方参数生效

mv /etc/ntp.conf /etc/ntp.conf.bak     ----取消时间同步,让ORACLE自动同步

6.禁用NTP server

service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.bak

7.使用chrond做时间同步

 

8.关闭selinux:

vim /etc/sysconfig/selinux
将SELINUX=enforcing修改成SELINUX=disabled
重启后才能生效。
临时关闭防火墙:
service iptables stop
systemctl stop firewalld 永久关闭防火墙: chkconfig iptables off

9. 配置环境变量

vi /home/grid/.bash_profile
增加以下内容
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/grid/product/11.2.0; export ORACLE_HOME
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
THREADS_FLAG=native; export THREADS_FLAG
PATH=$ORACLE_HOME/bin:$PATH; export PATH
THREADS_FLAG=native; export THREADS_FLAG
PATH=$ORACLE_HOME/bin:$PATH; export PATH
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

vi /home/oracle/.bash_profile
增加以下内容
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0; export ORACLE_HOME
ORACLE_SID=rac1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
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

9. 配置SSH信任关系

su - oracle
mkdir -p .ssh
chmod 700 .ssh
cd .ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
cat *.pub >> /home/oracle/.ssh/authorized_keys

ssh Ocenbase02 cat /home/oracle/.ssh/authorized_keys >> /home/oracle/.ssh/authorized_keys
scp /home/oracle/.ssh/authorized_keys Ocenbase02:/home/oracle/.ssh/authorized_keys


cat *.pub >> /home/oracle/.ssh/authorized_keys
ssh Ocenbase01 cat /home/oracle/.ssh/authorized_keys >> /home/oracle/.ssh/authorized_keys
scp /home/oracle/.ssh/authorized_keys Ocenbase01:/home/oracle/.ssh/authorized_keys


ssh Ocenbase01 date
ssh Ocenbase02 date
ssh Ocenbase01-priv date
ssh Ocenbase02-priv date

su - grid
mkdir -p .ssh
chmod 700 .ssh
cd .ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
cat *.pub >> /home/grid/.ssh/authorized_keys
ssh Ocenbase01 cat /home/grid/.ssh/authorized_keys >> /home/grid/.ssh/authorized_keys
scp /home/grid/.ssh/authorized_keys Ocenbase01:/home/grid/.ssh/authorized_keys



方式2:
oracle用户:

su - oracle
ssh-keygen -t rsa
ssh-keygen -t dsa

ssh-copy-id -i ~/.ssh/id_rsa.pub oracle@192.169.100.195
ssh oracle@192.169.100.195 date

ssh-copy-id -i ~/.ssh/id_rsa.pub oracle@192.169.100.194
ssh oracle@192.169.100.194 date

gird用户:

su - grid
ssh-keygen -t rsa
ssh-keygen -t dsa

ssh-copy-id -i ~/.ssh/id_rsa.pub grid@192.169.100.195
ssh grid@192.169.100.195 date

ssh-copy-id -i ~/.ssh/id_rsa.pub grid@192.169.100.194
ssh grid@192.169.100.194 date

 

10 查看补丁是否齐全

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}  (%{ARCH})\n' \
binutils \
compat-db \
compat-libstdc++ \
control-center \
gcc \
gcc-c++ \
glibc \
glibc-common \
gnome-libs \
libstdc++ \
libstdc++-devel \
make \
pdksh sysstat \
xscreensaver \
setarch \
glibc-devel \
libaio\
libaio-devel\
unixODBC\
unixODBC-devel

11 udev裸设备配置

cat /etc/udev/rules.d/70-persistent-ipoib.rules 

# Enter raw device bindings here. # # An example would be: # ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N" # to bind /dev/raw/raw1 to /dev/sda, or # ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m" # to bind /dev/raw/raw2 to the device with major 8, minor 1. ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="33", RUN+="/bin/raw /dev/raw/raw1 %M %m" ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="34", RUN+="/bin/raw /dev/raw/raw2 %M %m" ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="35", RUN+="/bin/raw /dev/raw/raw3 %M %m" ACTION=="add", KERNEL=="raw1", OWNER="grid", GROUP="asmadmin", MODE="660" ACTION=="add", KERNEL=="raw2", OWNER="grid", GROUP="asmadmin", MODE="660" ACTION=="add", KERNEL=="raw3", OWNER="grid", GROUP="asmadmin", MODE="660"


但在linux 7.x 中已经没有start_udev命令,在配置完UDEV 后,需要执行:

[dave@www.cndba.cn ~]# /sbin/udevadm trigger --type=devices --action=change
或者:
[dave@www.cndba.cn ~]# /sbin/udevadm control --reload
[dave@www.cndba.cn rules.d]# ll /dev/raw*
brw-rw---- 1 grid asmadmin 8, 16 Mar 21 22:01 /dev/asmdiskb
brw-rw---- 1 grid asmadmin 8, 32 Mar 21 22:01 /dev/asmdiskc
brw-rw---- 1 grid asmadmin 8, 48 Mar 21 22:01 /dev/asmdiskd
brw-rw---- 1 grid asmadmin 8, 64 Mar 21 22:01 /dev/asmdiske
brw-rw---- 1 grid asmadmin 8, 80 Mar 21 22:01 /dev/asmdiskf

systemctl restart systemd-udev-trigger.service

准备安装软件包

1.

[root@rac1 rpm]# vi /etc/sysconfig/network

NOZEROCONF=yes

安装前验证:

./runcluvfy.sh stage -pre crsinst -n "Ocenbase01,Ocenbase02" -verbose

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:oracle19c,RAC,Centos,ip,ORACLE,grid,ssh,oracle,export
From: https://www.cnblogs.com/xulinforDB/p/14718110.html

相关文章

  • ORACLE和会话相关的视图
    ORACLE和会话相关的视图1. v$session和v$session_waitv$session视图记录了当前连接Session的信息,这些信息包括用户名、连接主机、Session正在执行的SQL的SQL_ADDRESS、SQL_HASH_VALUE等,非常详尽。v$session_wait则记录了当前连接session正在等待的资源信息。在Oracle10g中,Ora......
  • Linux(Centos 7.6)yum源配置
    yum是rpm包的管理工具,可以自动安装、升级、删除软件包的功能,可以自动解决软件包之间的依赖关系,使得用户更方便软件包的管理。要使用yum必须要进行配置,个人将其分为三类,本地yum源、局域网yum源、第三方yum源,其说明配置如下:1.本地yum源配置1.1.上传iso镜像文件连接Linux(Cento......
  • Linux(Centos 7.6)基本信息查看
    1.服务器硬件信息查看1.1.服务器厂商、产品名称查看dmidecode-ssystem-manufacturer:查看服务器厂商信息dmidecode-ssystem-product-name:查看服务器产品名称信息1.Windows使用VMware安装的Linux(Centos7.6)后,服务器厂商、产品名称信息查看。[root@localhost~]#dmide......
  • Oracle12C安装及基本操作
    Oracle12C安装及基本操作一、环境操作系统软件版本OracleLinuxServer7.9Oracle12C注:这使用图像界面安装,所以服务器要带GUI。二、环境初始化关闭防火墙并禁止开机启动[root@oracle~]#systemctldisablefirewalld--now创建用户,组,目录,权限[root@o......
  • Oracle Database 23ai 中的DBMS_HCHECK
    在Oracle23ai中,DBMS_HCHECK包允许我们检查数据库中已知的数据字典问题。 几年前,Oracle发布了hcheck.sql脚本(文档ID136697.1)来检查数据库中已知的数据字典问题。DBMS_HCHECK包意味着我们不再需要下载hcheck.sql脚本来执行此操作。需要hcheck.sql脚本可以留言......
  • centos7.9 安装redis 7.4.1
    redis下载地址:http://download.redis.io/releases/选择自己想要的版本,本次安装的是7.4.1安装redis下载包到服务器wgethttp://download.redis.io/releases/redis-7.4.1.tar.gz下载包到/usr/local/redis解压tar-zxvfredis-7.4.1.tar.gz把解压的文件夹拷贝到默认路......
  • mybatis 连接 ORACLE
    mybatis连接ORACLE|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|-------------|--......
  • Microsoft.Practices.EnterpriseLibrary连接Oracle
    Microsoft.Practices.EnterpriseLibrary连接Oracle|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|----......
  • mysql和Oracle 查询某个时间之内的数据
    mysql和Oracle查询某个时间之内的数据|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|--......
  • oracle packages
    oraclepackages|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|-------------|----......