暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

Centos7.9静默安装12c RAC

原创 yBmZlQzJ 2022-12-18
1352

Centos7.9静默安装12c RAC

一、基本信息

节点基本信息:

节点一 节点二
主机名 ora1 ora2
操作系统 Centos7.9 Centos7.9
grid用户名/密码 grid grid
Oracle用户名/密码 oracle oracle
Oracle 版本 12c Enterprise Edition Release 12.2.0.1.0 12c Enterprise Edition Release 12.2.0.1.0
oracle用户SID oracle1 oracle2
grid用户SID +ASM1 +ASM2
GI安装位置 /u01/app/grid/base /u01/app/grid/base
数据库安装位置 /u01/app/oracle /u01/app/oracle
公网IP 192.168.3.74/24 10.104.174.2/24
私网IP 192.168.0.1/24 192.168.0.2/24

准备文件

# zip放置节点一的$ORACHLE_HOME即可 V840012-01-Grid-Infrastucture.zip V839960-01-Oracle-Database-12.2.0.1.0-for-Linux x86-64.zip libaio-devel-0.3.109-13.el7.x86_64.rpm compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

二、系统调整

1、网络设置

  • 修改/etc/hosts(注:具体ip根据实际情况填写)

    参考文档:RAC的几种IP:https://cloud.tencent.com/developer/article/1578494

    # public 192.168.3.74 ora1 192.168.3.75 ora2 # private 192.168.8.1 ora1-priv 192.168.8.2 ora2-priv # virtual 192.168.3.76 ora1-vip 192.168.3.77 ora2-vip # scan 192.168.3.78 ora-scan

2、用户/组配置

  • 用户组

    groupadd dba groupadd oinstall groupadd oper groupadd asmoper groupadd asmdba groupadd asmadmin groupadd backupdba groupadd dgdba groupadd kmdba
  • gird用户

    创建用户

    useradd -g oinstall -p `openssl passwd -1 "grid"` -G asmadmin,asmdba,asmoper,dba -d /home/grid -m grid

    编辑/home/grid/.bash_profile

    注:节点一的ORACLE_SID为+ASM1,节点二的ORACLE_SID为+ASM2

    export ORACLE_BASE=/u01/app/grid/base export ORACLE_HOME=/u01/app/grid/home export ORACLE_SID=+ASM1 export CRS_HOME=$ORACLE_HOME export OPATCH=$ORACLE_HOME/OPatch export PATH=$PATH:$ORACLE_HOME/bin:$OPATCH
  • oracle 用户

    创建用户

    useradd -g oinstall -p `openssl passwd -1 "oracle"` -G dba,asmdba,oper,kmdba,backupdba,dgdba -d /home/oracle -m oracle

    编辑/home/oracle/.bash_profile

    注:节点一的ORACLE_SID为oracle1,节点二的ORACLE_SID为oracle2

    export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1 export OPATCH=$ORACLE_HOME/OPatch export ORACLE_SID=oracle1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export PATH=$PATH:$ORACLE_HOME/bin:$OPATCH
  • 赋权

    mkdir -p /u01/app/oracle/product/12.2.0/db_1 chown -R oracle:oinstall /u01 mkdir -p /u01/app/grid/base /u01/app/grid/home chown -R grid:oinstall /u01/app/grid mkdir /u01/app/oraInventory chown grid:oinstall /u01/app/oraInventory && chmod 775 /u01/app/oraInventory

此时可以解压zip到各自用户的ORACLE_HOME之下

3、swap设置

  1. 创建swap文件

    dd if=/dev/zero of=/rac-swap bs=1M count=16384
  2. 设置可访问权限

    chmod 600 /rac-swap
  3. 格式化文件

    mkswap /rac-swap
  4. 激活swap空间(每次swapon可以叠加swap空间)

    swapon /rac-swap
  5. 开机自动启用swap空间,追加下面内容到/etc/fstab

    echo "/rac-swap swap swap default 0 0" >>/etc/fstab

4、依赖

  1. yum 安装

    yum install -y binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64nglibc.x86_64 glibc-devel.x86_64 libaio.x86_64 libaio-devel.x86_64 libgcc.x86_64  libstdc++.x86_64 libstdc++-devel.x86_64 libXi.x86_64 libXtst.x86_64 make.x86_64 sysstat.x86_64 compat-libstdc++-33 elfutils-libelf-devel psk net-tools telnet unzip gcc-c++ ksh smartmontools
    

5、内核参数和资源限制

  1. 计算shmall和shmmax

    # kernel.shmall shmall=$(echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` / (`getconf PAGESIZE` / 1024)" | bc) # kernel.shmmax(内存的80%) shmmax=$(echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` * 1024 * 0.8" | bc | sed 's#\..*$##')
  2. 修改参数

    cat >> /etc/sysctl.conf<<EOF fs.aio-max-nr = 3145728 fs.file-max = 6815744 kernel.shmall = ${shmall} kernel.shmmax = ${shmmax} 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 vm.min_free_kbytes = 524288 EOF
  3. 生效内核参数

    sysctl -p
  4. 资源限制:修改/etc/security/limits.conf

    cat >> /etc/security/limits.conf<< EOF grid soft nproc 16384 grid hard nproc 16384 grid soft nofile 65536 grid hard nofile 65536 grid soft stack 10240 grid hard stack 32768 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft nofile 65536 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 * soft memlock unlimited * hard memlock unlimited EOF
  5. 修改/etc/security/limits.d/20-nproc.conf

    sed -i -e "s/4096/16384/g" /etc/security/limits.d/20-nproc.conf echo "* hard nproc 16384" >> /etc/security/limits.d/20-nproc.conf

6、关闭selinux和禁用服务

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0 systemctl stop firewalld.service systemctl disable firewalld systemctl stop avahi-daemon systemctl disable avahi-daemon systemctl disable bluetooth systemctl disable cpuspeed systemctl disable cups systemctl disable firstboot systemctl disable ip6tables systemctl disable iptables systemctl disable pcmcia systemctl enable rc-local systemctl start rc-local systemctl stop NetworkManager systemctl disable NetworkManager

7、其他设置

  1. 取消ctl+alt+delete重启

    rm -f /usr/lib/systemd/system/ctrl-alt-del.target
  2. 关闭Transparent HugePages

    echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
  3. 设置RemoveIPC,编辑/etc/systemd/logind.conf

    RemoveIPC=no
  4. 重启服务

    systemctl daemon-reload systemctl restart systemd-logind
  5. 设定挂载(如果存在/dev/shm的话)

    echo "tmpfs /dev/shm tmpfs defaults 0 0" >> /etc/fstab
  6. 禁用路由

    cat>> /etc/sysconfig/network<<EOF NOZEROCONF=yes EOF
  7. NTP网络时间服务器

    注释contab -l的ntpdate -s 同步(如果有),可以设置ntp服务器。

三、共享磁盘配置

除配置iscsi服务端外,其他步骤每个节点执行

参考:iscsi安装参考文档

注:首先配置的asm表决盘三块应该是相同大小。

1、配置iscsi服务端

  1. 安装

    yum install -y target*
  2. 启动并自启

    systemctl enable target systemctl start target
  3. 将未格式化、未分区的硬盘进行分区通过fdisk -l检查到/dev/sdb是我们需要进行共享的磁盘,先将它分区,但不需要格式化

    [root@ora1 grid]# fdisk /dev/sdb 命令(输入 m 获取帮助):n Select (default p): p 分区号 (1-4,默认 1):1 起始 扇区 (2048-41943039,默认为 2048):2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):13981696 命令(输入 m 获取帮助):n Select (default p): p 分区号 (2-4,默认 2):2 起始 扇区 (13981697-41943039,默认为 13983744):13983744 Last 扇区, +扇区 or +size{K,M,G} (13983744-41943039,默认为 41943039):27962026 命令(输入 m 获取帮助):n Select (default p): p 分区号 (3,4,默认 3):3 起始 扇区 (13981697-41943039,默认为 27963392):27963392 Last 扇区, +扇区 or +size{K,M,G} (27963392-41943039,默认为 41943039):41943039 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。
  4. 查看分区

    ora1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 6G 0 part ├─sdb2 8:18 0 6G 0 part └─sdb3 8:19 0 8G 0 part sr0 11:0 1 4.5G 0 rom loop0 7:0 0 4.5G 1 loop /mnt/iso
  5. 进入子系统

    [root@ora1 ~]# targetcli
  6. 添加硬盘信息格式

    /> /backstores/block create DB1 /dev/sdb1 /> /backstores/block create DB2 /dev/sdb2 /> /backstores/block create DB3 /dev/sdb3 /> /backstores/block create DB4 /dev/sdb4
  7. 创建iscsi,格式:/iscsi create 格式.年份-月份.*.com.自定义名称

    /> /iscsi create iqn.2021-10.21.com.oracle
  8. 关联block和target

    /> /iscsi/iqn.2021-10.21.com.oracle/tpg1/luns create /backstores/block/DB1 /> /iscsi/iqn.2021-10.21.com.oracle/tpg1/luns create /backstores/block/DB2 /> /iscsi/iqn.2021-10.21.com.oracle/tpg1/luns create /backstores/block/DB3 /> /iscsi/iqn.2021-10.21.com.oracle/tpg1/luns create /backstores/block/DB4
  9. 创建acl

    /> /iscsi/iqn.2021-10.21.com.oracle/tpg1/acls create iqn.2021-10.21.com.oracle:ora
  10. 退出

    /> exit Global pref auto_save_on_exit=true Configuration saved to /etc/target/saveconfig.json
  11. 重启服务

    systemctl restart target

    注:此时会有端口开放

    [root@ora1 ~]# netstat -tunlp |grep 3260 tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN -

2、配置iscsi客户端

  1. 安装

    yum install -y iscsi*
  2. 开机自启

    systemctl enable iscsid
  3. 发现target

    注:有输出才是被发现,-p 后面的参数是iscsi服务端的ip

    [root@ora1 ~]# iscsiadm -m discovery -t st -p 192.168.3.74 192.168.3.74:3260,1 iqn.2021-10.21.com.oracle
  4. 修改/etc/iscsi/initiatorname.iscsi

    InitiatorName=iqn.2021-10.21.com.oracle:ora
  5. 重启服务

    systemctl restart iscsid
  6. 登录

    注:需要发现后,才能登陆

    iscsiadm -m node -T iqn.2021-10.21.com.oracle -p 192.168.3.74 -l

    如果在主机A格式化了共享盘,在B上其实有了,但可能需要重新登录后,才能在lsblk中看见,不登录也可以直接用格式化的磁盘

  7. 检查,其中sdc,sdd,sde就是我们共享盘啦

    [root@ora1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 50G 0 disk ├─sdb1 8:17 0 8G 0 part ├─sdb2 8:18 0 8G 0 part ├─sdb3 8:19 0 8G 0 part └─sdb4 8:20 0 26G 0 part sdc 8:32 0 8G 0 disk └─sdc1 8:33 0 8G 0 part sdd 8:48 0 1K 0 disk sde 8:64 0 8G 0 disk sdf 8:80 0 8G 0 disk sr0 11:0 1 4.5G 0 rom loop0 7:0 0 4.5G 1 loop /mnt/iso
  8. 在节点一分区,并在节点二重新登录

    节点一:

    [root@ora1 ~]# fdisk /dev/sdc [root@ora1 ~]# fdisk /dev/sdd [root@ora1 ~]# fdisk /dev/sde [root@ora1 ~]# fdisk /dev/sdf

    节点二:

    # 注销 [root@ora2 ~]# iscsiadm -m node -T iqn.2021-10.21.com.oracle -p 192.168.3.74 -u Logging out of session [sid: 6, target: iqn.2021-10.21.com.oracle, portal: 192.168.3.74,3260] Logout of [sid: 6, target: iqn.2021-10.21.com.oracle, portal: 192.168.3.74,3260] successful. # 重新登录 [root@ora2 ~]# iscsiadm -m node -T iqn.2021-10.21.com.oracle -p 192.168.3.74 -l Logging in to [iface: default, target: iqn.2021-10.21.com.oracle, portal: 192.168.3.74,3260] (multiple) Login to [iface: default, target: iqn.2021-10.21.com.oracle, portal: 192.168.3.74,3260] successful. # 可以看到磁盘被分区了 [root@ora2 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 8G 0 disk └─sdb1 8:17 0 8G 0 part sdc 8:32 0 26G 0 disk └─sdc1 8:33 0 26G 0 part sdd 8:48 0 8G 0 disk └─sdd1 8:49 0 8G 0 part sde 8:64 0 8G 0 disk └─sde1 8:65 0 8G 0 part sr0 11:0 1 4.5G 0 rom

3、配置多路径

参考文档:

深入分析Multipath

Oracle rac搭建使用Multipath

  1. 安装软件(如果没有安装)

    yum install device-mapper* -y
  2. 启用模块

    modprobe dm-multipath modprobe dm-round-robin
  3. 查看是否启用

    [root@ora1 ~]# lsmod | grep ^dm_m[uo] dm_multipath 27792 1 dm_round_robin dm_mod 124501 9 dm_multipath,dm_log,dm_mirror
  4. 生成Multipath而配置文件

    mpathconf --enable --find_multipaths y --with_module y --with_multipathd y
  5. 添加共享磁盘的wwid

    # 将添加到/etc/multipath/wwid [root@ora1 ~]# multipath -a /dev/sdc wwid '36001405845f59a2eb5e43b6b20604d27' added [root@ora1 ~]# multipath -a /dev/sdd wwid '36001405b381f6cd51044a1b89aab5fbe' added [root@ora1 ~]# multipath -a /dev/sde wwid '36001405146055fb6230434b9ec999dc7' added [root@ora1 ~]# multipath -a /dev/sdf wwid '360014059099bfbbcb9349b081de121e8' added
  6. 修改/etc/multipath.conf配置文件

    多路径配置文件详解

    注:将本地磁盘排除,注意如果直接复制文件到另一节点注意被排除的硬盘

    defaults { user_friendly_names yes find_multipaths yes path_grouping_policy multibus path_selector "round-robin 0" failback manual rr_weight priorities no_path_retry 5 } blacklist { devnode "sr0" } multipaths { multipath { wwid 36001405845f59a2eb5e43b6b20604d27 alias RAC-OCRVOTE1 } multipath { wwid 36001405146055fb6230434b9ec999dc7 alias RAC-OCRVOTE2 } multipath { wwid 360014059099bfbbcb9349b081de121e8 alias RAC-OCRVOTE3 } multipath { wwid 36001405b381f6cd51044a1b89aab5fbe alias RAC-DATA } }
  7. 重启服务

    systemctl restart multipathd
  8. 检查

    此时查看multipath -v3 | grep "not in wwids file, skipping",没有报错。

    查看

    [root@ora1 ~]# ll /dev/mapper/RAC-* lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-DATA -> ../dm-8 lrwxrwxrwx. 1 root root 8 Oct 21 02:59 /dev/mapper/RAC-DATA1 -> ../dm-10 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE1 -> ../dm-7 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE1p1 -> ../dm-9 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE2 -> ../dm-4 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE2p1 -> ../dm-6 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE3 -> ../dm-3 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE3p1 -> ../dm-5

    查看

    [root@ora1 ~]# multipathd show paths hcil dev dev_t pri dm_st chk_st dev_st next_check 4:0:0:0 sdc 8:32 1 active ready running XXXXXXX... 15/20 4:0:0:1 sdf 8:80 1 active ready running XXXXXXX... 15/20 4:0:0:2 sde 8:64 1 active ready running XXXXXXX... 15/20 4:0:0:3 sdd 8:48 1 active ready running XXXXXXX... 15/20

    到此multipath 配置完成!

4、配置udev

参考文档:udev简介及配置

通过UDEV配置,能够让Oracle对磁盘名进行持久化并改变磁盘访问权限为grid:asmadmin。这样在ASM的配置过程中能够看到磁盘。今后增加磁盘也不会改变原有的磁盘名称。该步骤可使用ASMLIB

  1. 批量生成配置文件并添加到/etc/udev/rules.d/99-oracle-asmdevices.rules

    模板:

    # KERNEL=="dm-*",SYMLINK+="",ENV{DM_UUID}=="",OWNER="grid",GROUP="asmadmin",MODE="0660" ENV{DM_UUID}==""依次为上诉查找的结果,SYMLINK(该名称作为/dev/.....)

    具体命令:

    for i in RAC-DATA RAC-OCRVOTE1 RAC-OCRVOTE2 RAC-OCRVOTE3; do printf "KERNEL==\"dm-*\",SYMLINK+=\"%s\",ENV{DM_UUID}==\"%s\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\" \n" "$i" "$(udevadm info --query=all --name=/dev/mapper/$i |grep -i -o dm_uuid.*)"; done | sed 's\"DM_UUID=\"\g' KERNEL=="dm-*",SYMLINK+="RAC-DATA",ENV{DM_UUID}=="mpath-36001405b381f6cd51044a1b89aab5fbe",OWNER="grid",GROUP="asmadmin",MODE="0660" KERNEL=="dm-*",SYMLINK+="RAC-OCRVOTE1",ENV{DM_UUID}=="mpath-36001405845f59a2eb5e43b6b20604d27",OWNER="grid",GROUP="asmadmin",MODE="0660" KERNEL=="dm-*",SYMLINK+="RAC-OCRVOTE2",ENV{DM_UUID}=="mpath-36001405146055fb6230434b9ec999dc7",OWNER="grid",GROUP="asmadmin",MODE="0660" KERNEL=="dm-*",SYMLINK+="RAC-OCRVOTE3",ENV{DM_UUID}=="mpath-360014059099bfbbcb9349b081de121e8",OWNER="grid",GROUP="asmadmin",MODE="0660"
  2. 双节点配置完完规则后,重启udev服务

    udevadm control --reload-rules udevadm trigger --type=devices --action=change
  3. 测试文件是否生效

    在查看ll /dev/mapper/时,能够发现RAC-FRA1 -> ../dm-5RAC-OCRVOTE1 -> ../dm-6RAC-DATA1 -> ../dm-7,针对dm-5、dm-6、dm-7进行查看。

    udevadm test /sys/block/dm-5

    查看权限分配是否正确

    [root@ora1 rules.d]# ll /dev/dm-5 brw-rw---- 1 grid asmadmin 253, 5 7月 4 14:06 /dev/dm-5

四、安装Grid Infrastructure

  1. 互信:在grid的安装包下,使用grid用户执行

    ./oui/prov/resources/scripts/sshUserSetup.sh -hosts "ora1 ora2" -user grid -advanced -noPromptPassphrase
  2. 编辑./install/response/gridsetup.rsp资源文件

oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.2.0 INVENTORY_LOCATION=/u01/app/oraInventory oracle.install.option=CRS_CONFIG ORACLE_BASE=/u01/app/grid/base oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSOPER=asmoper oracle.install.asm.OSASM=asmadmin # scan name oracle.install.crs.config.gpnp.scanName=ora-scan oracle.install.crs.config.gpnp.scanPort=1521 oracle.install.crs.config.ClusterConfiguration=STANDALONE oracle.install.crs.config.configureAsExtendedCluster=false oracle.install.crs.config.memberClusterManifestFile= # 集群名可以默认 oracle.install.crs.config.clusterName=ora-scan oracle.install.crs.config.gpnp.configureGNS=false oracle.install.crs.config.autoConfigureClusterNodeVIP=false oracle.install.crs.config.gpnp.gnsOption= oracle.install.crs.config.gpnp.gnsClientDataFile= oracle.install.crs.config.gpnp.gnsSubDomain= oracle.install.crs.config.gpnp.gnsVIPAddress= oracle.install.crs.config.sites= # 主机名 oracle.install.crs.config.clusterNodes=ora1:ora1-vip:HUB,ora2:ora2-vip:HUB # 1:public,5:ASM&private,3:not use oracle.install.crs.config.networkInterfaceList=eth0:192.168.0.0:1,eth1:192.168.8.0:5 oracle.install.asm.configureGIMRDataDG=false oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE oracle.install.crs.config.useIPMI=false oracle.install.crs.config.ipmi.bmcUsername= oracle.install.crs.config.ipmi.bmcPassword= oracle.install.asm.storageOption=ASM oracle.install.asmOnNAS.ocrLocation= oracle.install.asmOnNAS.configureGIMRDataDG= oracle.install.asmOnNAS.gimrLocation= oracle.install.asm.SYSASMPassword=Password@1 # 仅用于OCR(DATA盘后续添加) oracle.install.asm.diskGroup.name=OCR oracle.install.asm.diskGroup.redundancy=NORMAL oracle.install.asm.diskGroup.AUSize=4 oracle.install.asm.diskGroup.FailureGroups= # OCR磁盘组 oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/RAC-OCRVOTE1,,/dev/RAC-OCRVOTE2,,/dev/RAC-OCRVOTE3, # 指定OCR磁盘组 oracle.install.asm.diskGroup.disks=/dev/RAC-OCRVOTE1,/dev/RAC-OCRVOTE2,/dev/RAC-OCRVOTE3 oracle.install.asm.diskGroup.quorumFailureGroupNames= # 磁盘组发现 oracle.install.asm.diskGroup.diskDiscoveryString=dev/RAC-* oracle.install.asm.monitorPassword=Password@1 oracle.install.asm.gimrDG.name= oracle.install.asm.gimrDG.redundancy= oracle.install.asm.gimrDG.AUSize= oracle.install.asm.gimrDG.FailureGroups= oracle.install.asm.gimrDG.disksWithFailureGroupNames= oracle.install.asm.gimrDG.disks= oracle.install.asm.gimrDG.quorumFailureGroupNames= oracle.install.asm.configureAFD=false oracle.install.crs.configureRHPS=false oracle.install.crs.config.ignoreDownNodes=false oracle.install.config.managementOption=NONE oracle.install.config.omsHost= oracle.install.config.omsPort=0 oracle.install.config.emAdminUser= oracle.install.config.emAdminPassword= oracle.install.crs.rootconfig.executeRootScript=false oracle.install.crs.rootconfig.configMethod= oracle.install.crs.rootconfig.sudoPath= oracle.install.crs.rootconfig.sudoUserName= oracle.install.crs.config.batchinfo= oracle.install.crs.app.applicationAddress=
  1. 检索安装环境

    一些CVU检查需要根特权才能从系统中检索所需的信息。在这种情况下,当根凭据不可用时,用户会收到“PRVG-11250”等消息的通知:检查“RPM软件包管理器数据库”没有执行,因为它需要“根”用户特权。MOS文档

    ./runcluvfy.sh stage -pre crsinst -n ora1,ora2 -method root
  2. 安装验证,根据日志过滤VERIFICATION_FAILED

    ./gridSetup.sh -silent -responseFile ./install/response/gridsetup.rsp -executePrereqs

安装前的注意事项:

  1. 安装之前请确保其他节点的$ORACLE_HOME没有文件

  2. 安装包别放到/tmp之下,建议放到$ORACLE_HOME

  3. 网卡 私有网卡应该是private和asm

  4. 脚本执行顺序为在节点一、二orainstRoot.sh、再节点一、二执行脚本root.sh

  5. 仅在确定检测的日志无严重错误时才能使用-ignorePrereqFailure参数

  1. 使用grid用户,进入家目录后开始安装

    rm -rf /u01/app/oraInventory/* && ./gridSetup.sh -silent -responsefile ./install/response/gridsetup.rsp -ignoreInternalDriverError -ignorePrereqFailure
  2. HAIP:如果使用云服务器搭建,最好关闭HAIP,否则会造成无法连接节点的169.254地址,其他节点的+ASM实例无法启动

    export HAIP_UNSUPPORTED=YES
  3. root.sh 和oraInst.sh执行顺序:

    Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes: [ora1, ora2] Execute /u01/app/grid/home/root.sh on the following nodes: [ora1, ora2]
  4. 检查实例状态:任何grid用户执行lsnrctl staatus均有实例启动

    Services Summary... Service "+ASM" has 1 instance(s). Instance "+ASM2", status READY, has 1 handler(s) for this service... Service "+ASM_OCR" has 1 instance(s). Instance "+ASM2", status READY, has 1 handler(s) for this service... The command completed successfully
  5. 安装完成后使用grid用户执行,可能会有Configuration failed,关系不大

    /u01/app/grid/home/gridSetup.sh -executeConfigTools -responseFile ./install.rsp -silent

五、安装oracle软件

  1. oracle用户互信

    ./oui/prov/resources/scripts/sshUserSetup.sh -hosts "ora1 ora2" -user oracle -advanced -noPromptPassphrase
  2. rsp资源文件

    oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory # oracle的用户$ORACLE_HOME ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1 # oracle的用户$ORACLE_BASE ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=backupdba oracle.install.db.OSDGDBA_GROUP=dgdba oracle.install.db.OSKMDBA_GROUP=kmdba oracle.install.db.OSRACDBA_GROUP=dba oracle.install.db.rootconfig.executeRootScript=false oracle.install.db.rootconfig.configMethod= oracle.install.db.rootconfig.sudoPath= oracle.install.db.rootconfig.sudoUserName= # 节点主机名 oracle.install.db.CLUSTER_NODES=ora1,ora2 oracle.install.db.config.starterdb.type= oracle.install.db.config.starterdb.globalDBName= oracle.install.db.config.starterdb.SID= oracle.install.db.ConfigureAsContainerDB= oracle.install.db.config.PDBName= oracle.install.db.config.starterdb.characterSet= oracle.install.db.config.starterdb.memoryOption= oracle.install.db.config.starterdb.memoryLimit= oracle.install.db.config.starterdb.installExampleSchemas= oracle.install.db.config.starterdb.password.ALL= oracle.install.db.config.starterdb.password.SYS= oracle.install.db.config.starterdb.password.SYSTEM= oracle.install.db.config.starterdb.password.DBSNMP= oracle.install.db.config.starterdb.password.PDBADMIN= oracle.install.db.config.starterdb.managementOption= oracle.install.db.config.starterdb.omsHost= oracle.install.db.config.starterdb.omsPort= oracle.install.db.config.starterdb.emAdminUser= oracle.install.db.config.starterdb.emAdminPassword= oracle.install.db.config.starterdb.enableRecovery= oracle.install.db.config.starterdb.storageType= oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= oracle.install.db.config.asm.diskGroup= oracle.install.db.config.asm.ASMSNMPPassword=
  3. 执行安装验证

    ./runInstaller -executePrereqs -silent -responsefile ./ora.rsp

    注: 其他节点需要清空$ORACLE_HOME

  4. 执行安装

    ./runInstaller -silent -ignorePrereqFailure -responsefile ./ora.rsp
  5. 按照以下顺序执行root.sh

    As a root user, execute the following script(s): 1. /u01/app/oracle/product/19.3.0/db_1/root.sh Execute /u01/app/oracle/product/19.3.0/db_1/root.sh on the following nodes: [ora1, ora2]

六、创建磁盘组

  1. 使用grid用户创建DATA磁盘组

    [grid@ora1 ~]$ asmca -silent \ -sysAsmPassword Password@1 \ -asmsnmpPassword Password@1 \ -createDiskGroup -diskGroupName DATA \ # 根据实际情况填写disk参数 -disk /dev/RAC-DATA \ -redundancy EXTERNAL -au_size 4 -compatible.asm 19.0.0.0.0 -compatible.rdbms 19.0.0.0.0 [INFO] [DBT-30001] Disk groups created successfully. Check /u01/app/grid/base/cfgtoollogs/asmca/asmca-210904AM042040.log for details.

七、创建数据库实例

  1. dbca.rsp资源文件

    responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 # gdb gdbName=oracle # SID sid=oracle databaseConfigType=RAC RACOneNodeServiceName= policyManaged=false createServerPool=false serverPoolName= cardinality= force=false pqPoolName= pqCardinality= createAsContainerDatabase=false numberOfPDBs=0 pdbName= useLocalUndoForPDBs=true pdbAdminPassword= # 节点主机名 nodelist=ora1,ora2 templateName=/u01/app/oracle/product/19.3.0/db_1/assistants/dbca/templates/New_Database.dbt # sys密码 sysPassword=Password@1 # syspass密码 systemPassword=Password@1 serviceUserPassword= emConfiguration= emExpressPort=5500 runCVUChecks=FALSE dbsnmpPassword= omsHost= omsPort=0 emUser= emPassword= dvConfiguration=false dvUserName= dvUserPassword= dvAccountManagerName= dvAccountManagerPassword= olsConfiguration=false datafileJarLocation= datafileDestination=+DATA/{DB_UNIQUE_NAME}/ recoveryAreaDestination= storageType=ASM diskGroupName=+DATA/{DB_UNIQUE_NAME}/ asmsnmpPassword= recoveryGroupName= # 字符集 characterSet=AL32UTF8 # 国家字符集 nationalCharacterSet=AL16UTF16 registerWithDirService=false dirServiceUserName= dirServicePassword= walletPassword= listeners=LISTENER variablesFile= variables= initParams= sampleSchema=false memoryPercentage=40 databaseType=MULTIPURPOSE automaticMemoryManagement=false totalMemory=0
  2. 安装前检查

    注:如果有错误,可以从List of failed Tasks开始看

    dbca -silent -responsefile assistants/dbca/dbca.rsp -executePrereqs -databaseConfigType RAC
    
  3. 执行安装

    dbca -silent -responsefile assistants/dbca/dbca.rsp  -createDatabase -ignorePrereqFailure
    

到此安装完毕,oracle用户通过sqlplus尝试连接实例,grid用户通过crs status res -t检查状态

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论