在裸金属解决方案上安装 Oracle RAC
本页介绍了如何在裸金属解决方案服务器上安装 Oracle Real Application Clusters (RAC)。
部署
在本指南中,我们将创建一个部署,其中包含安装在裸金属解决方案服务器上的 Oracle RAC 19c。我们将构建一个包含数据库的两个节点 RAC。
准备工作
- 确保预配 RAC 所需的基础架构。这包括两个节点、共享存储空间以及用于托管 Oracle 主目录的专用卷。
- 在本指南中,我们将使用 GUI 安装流程。如果您也想使用 GUI 安装流程,请按照 Oracle VNC 设置指南在某个节点上配置虚拟网络计算 (VNC)。
- 创建本地挂载点
/apps
以托管 Oracle 主目录和 Grid 主目录。
安装 RAC
在裸金属解决方案上安装 RAC 涉及以下步骤:
为 RAC 安装准备节点
除非另有说明,否则请在两个节点上执行以下步骤:
使用 RAC 的以下 IP 地址更新
/etc/hosts
文件:- 公共 IP 地址
- 专用 IP 地址
- 虚拟 IP 地址
- 扫描虚拟 IP 地址
以下是经过修改的
/etc/hosts
文件示例:10.*.*.* bms-jumphost # public IP addresses for Oracle RAC 192.*.*.* at-2811641-svr001 at-2811641-svr001.localdomain 192.*.*.* at-2811641-svr002 at-2811641-svr002.localdomain # private IP addresses for Oracle RAC 172.*.*.* at-2811641-svr001-priv at-2811641-svr001-priv.localdomain 172.*.*.* at-2811641-svr002-priv at-2811641-svr002-priv.localdomain # virtual IP addresses for Oracle RAC 192.*.*.* at-2811641-svr001-vip at-2811641-svr001-vip.localdomain 192.*.*.* at-2811641-svr002-vip at-2811641-svr001-vip.localdomain # SCAN virtual IP addresses for Oracle RAC 192.*.*.* psoracle-scan psoracle-scan.localdomain 192.*.*.* psoracle-scann psoracle-scan.localdomain 192.*.*.* psoracle-scan psoracle-scan.localdomain
为虚拟 IP 地址和 SCAN 虚拟 IP 地址进行 DNS 解析。
我们使用 Cloud DNS 解析虚拟 IP 地址并扫描虚拟 IP 地址。如需了解相关说明,请参阅使用 Cloud DNS 配置 SCAN。
使用内核参数更新
/etc/sysctl.conf
文件。vi /etc/sysctl.conf # Added for Oracle fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 kernel.panic_on_oops = 1 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.conf.all.rp_filter = 2 net.ipv4.conf.default.rp_filter = 2 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500
应用内核参数更新。
/sbin/sysctl -p
在
/etc/security/limits.conf
文件中,添加资源限制。vi /etc/security/limits.conf ## Added for Oracle grid soft nofile 1024 grid hard nofile 65536 grid soft nproc 2047 grid hard nproc 16384 grid soft stack 10240 grid hard stack 32768 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768
添加必要的用户和群组。
groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper groupadd -g 54327 asmdba groupadd -g 54328 asmoper groupadd -g 54329 asmadmin useradd -u 54321 -g oinstall -G dba,oper,asmdba,asmoper,asmadmin,oracle
安装 Oracle 预安装软件包。
本指南假定您已设置 Oracle 代码库。
yum install oracle-database-preinstall-19c
oracle-database-preinstall-19c
软件包会安装必要的软件包,并在/etc/sysctl.conf
文件中创建oracle
用户和条目。重置
oracle
用户的密码。passwd oracle
为 Oracle ASM 安装以下软件包:
oracleasm-support
kmod-oracleasm
yum install oracleasm-support yum install kmod-oracleasm
通过更新
/etc/selinux/config
文件停用SELinux
。vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
停止并停用防火墙。
systemctl stop firewalld.service systemctl disable firewalld
配置 NTP。
安装 NTP 软件包。
yum install ntp
启动
ntpd
服务。systemctl start ntpd
更新
/etc/ntp.conf
文件。在本例中,我们会与堡垒主机(即
10.x.x.x
)同步。它也可以是您的内部 NTP 服务器。192.x.x.x
是您的裸金属解决方案服务器的 IP 地址。vi /etv/ntp.conf restrict 192.x.x.x mask 255.255.255.0 nomodify notrap server 10.x.x.x prefer
更新 NTP 服务器以开始同步。
ntpdate -qu SERVER_NAME
如果
avahi-daemon
正在运行,请将其停止并停用。systemctl status avahi-daemon ● avahi-daemon.service - Avahi mDNS/DNS-SD Stack Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-08-09 07:51:26 UTC; 23h ago Main PID: 2543 (avahi-daemon) Status: "avahi-daemon 0.6.31 starting up." Tasks: 2 CGroup: /system.slice/avahi-daemon.service ├─2543 avahi-daemon: running [at-2811641-svr001.local] └─2546 avahi-daemon: chroot helper systemctl stop avahi-daemon Warning: Stopping avahi-daemon.service, but it can still be activated by: avahi-daemon.socket [root@at-2811641-svr001 ~]# systemctl disable avahi-daemon Removed symlink /etc/systemd/system/multi-user.target.wants/avahi-daemon.service. Removed symlink /etc/systemd/system/sockets.target.wants/avahi-daemon.socket. Removed symlink /etc/systemd/system/dbus-org.freedesktop.Avahi.service. systemctl status avahi-daemon ● avahi-daemon.service - Avahi mDNS/DNS-SD Stack Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; disabled; vendor preset: enabled) Active: inactive (dead) since Tue 2021-08-10 07:16:28 UTC; 36s ago Main PID: 2543 (code=exited, status=0/SUCCESS)
创建 Oracle 主目录和 Grid 主目录。
mkdir -p /apps/grid/19.3.0/gridhome_1 mkdir -p /apps/grid/gridbase/ mkdir -p /apps/oracle/product/19.3.0/dbhome_1 chmod -R 775 /apps/ chown -R oracle:oinstall /apps/
在第一个节点上,执行以下操作:
- 下载 Oracle Grid Infrastructure 映像文件。
- 以
Oracle
用户身份将下载的文件复制到 Grid 主目录。 - 以
Oracle
用户身份提取 Oracle Grid Infrastructure 映像文件。
cp LINUX.X64_193000_grid_home.zip /apps/grid/19.3.0/gridhome_1/ cd /apps/grid/19.3.0/gridhome_1/ unzip LINUX.X64_193000_grid_home.zip
在任一节点上,为 Oracle 用户设置无密码 SSH。
cd /apps/grid/19.3.0/gridhome_1/deinstall ./sshUserSetup.sh -user oracle -hosts "at-2811641-svr001 at-2811641-svr002" -noPromptPassphrase -confirm -advanced
在任一节点上,以根用户身份从 Grid 主目录安装
cvuqdisk
RPM 软件包。rpm -qa cvuqdisk cd /apps/grid/19.3.0/gridhome_1/cv/rpm/ rpm -iv cvuqdisk-1.0.10-1.rpm Preparing packages... Using default group oinstall to install package cvuqdisk-1.0.10-1.x86_64 rpm -qa cvuqdisk cvuqdisk-1.0.10-1.x86_64
配置 Oracle ASM
如需配置 Oracle ASM,请以根用户身份执行以下步骤:
在任一节点上,标识您要用于 Oracle ASM 的所有共享 LUN。
multipath -ll
在任一节点上,使用
fdisk
或gdisk
在所有共享设备中创建分区。fdisk /dev/mapper/DISK_WWID
替换以下内容:
- DISK_WWID:磁盘的 WWID。
示例输出如下所示:
fdisk /dev/mapper/3600a098038314343753f4f723154594e 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 0xf7f8fd23. The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted. 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): First sector (2048-2147518463, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-2147518463, default 2147518463): Using default value 2147518463 Partition 1 of type Linux and of size 1 TiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 22: Invalid argument. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. fdisk -l /dev/mapper/3600a098038314343753f4f723154594e Disk /dev/mapper/3600a098038314343753f4f723154594e: 1099.5 GB, 1099529453568 bytes,2147518464 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 65536 bytes Disk label type: dos Disk identifier: 0xf7f8fd23 Device Boot Start End Blocks Id System /dev/mapper/3600a098038314343753f4f723154594e1 2048 2147518463 1073758208 83 Linux
运行
partprobe
以使所有新分区都显示出来。partprobe
在两个节点上,配置 Oracle ASM。
oracleasm configure -i Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting <ENTER> without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: oracle Default group to own the driver interface []: oinstall Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done
在两个节点上,将参数
ORACLEASM_SCANORDER
的值设置为dm
,并将ORACLEASM_SCANEXCLUDE
的值设置为sd
,因为裸金属解决方案服务器使用多路径设备。vi /etc/sysconfig/oracleasm ORACLEASM_SCANORDER="dm" ORACLEASM_SCANEXCLUDE="sd"
在两个节点上,验证 Oracle ASM 配置。
oracleasm configure ORACLEASM_ENABLED=true ORACLEASM_UID=oracle ORACLEASM_GID=oinstall ORACLEASM_SCANBOOT=true ORACLEASM_SCANORDER="dm" ORACLEASM_SCANEXCLUDE="sd" ORACLEASM_SCAN_DIRECTORIES="" ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"
在两个节点上,启动
oracleasm
。oracleasm init Creating /dev/oracleasm mount point: /dev/oracleasm Loading module "oracleasm": oracleasm Configuring "oracleasm" to use device physical block size Mounting ASMlib driver filesystem: /dev/oracleasm
在两个节点上,检查
oracleasm
的状态。oracleasm status Checking if ASM is loaded: yes Checking if /dev/oracleasm is mounted: yes
在任一节点上,在多路径分区设备上创建 Oracle ASM 磁盘。
oracleasm createdisk OCR /dev/mapper/DISK_WWID
替换以下内容:
- DISK_WWID:磁盘的 WWID。
示例输出如下所示:
oracleasm createdisk OCR /dev/mapper/3600a098038314343753f4f723154594e1 Writing disk header: done Instantiating disk: done
在第一个节点上,列出磁盘名称。
oracleasm listdisks
示例输出如下所示:
DATA01 DATA02 DATA03 DATA04 DATA05 DATA06 FRA01 FRA02 FRA03 OCR
在第二个节点上,列出在第一个节点上被标记为 ASMLIB 磁盘的磁盘。
oracleasm scandisks
示例输出如下所示:
Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... Instantiating disk "DATA01" Instantiating disk "DATA06" Instantiating disk "DATA04" Instantiating disk "OCR" Instantiating disk "DATA05" Instantiating disk "FRA01" Instantiating disk "DATA03" Instantiating disk "FRA03" Instantiating disk "FRA02" Instantiating disk "DATA02"
在第二个节点上,列出磁盘名称。
oracleasm listdisks
示例输出如下所示:
oracleasm listdisks DATA01 DATA02 DATA03 DATA04 DATA05 DATA06 FRA01 FRA02 FRA03 OCR
如果扫描后磁盘未显示在第二个节点中,请运行
partprobe
命令以使分区可见。
执行安装前检查
检查是否满足安装 Oracle Grid Infrastructure 的所有前提条件。在第一个节点上,运行 runcluvfy.sh
脚本。
./runcluvfy.sh stage -pre crsinst -n at-2811641-svr001,at-2811641-svr002 -verbose
如果任何前提条件未满足,请先解决这些问题,然后再继续安装。
安装 Oracle RAC
在下载并解压缩 Oracle GRID Infrastructure 映像文件的第一个节点上,执行以下步骤:
- 通过 VNC 查看器连接到裸金属解决方案服务器。
- 运行
gridSetup.sh
脚本。 - 在选择配置选项页面上,选择 Oracle Grid Infrastructure for a new cluster(适用于新集群的 Oracle Grid Infrastructure),然后点击下一步。
- 在选择集群配置页面上,选择配置 Oracle 独立集群,然后点击下一步。
在网格即插即用信息页面上,执行以下操作:
- 选择创建本地 SCAN。
- 输入集群名称。确保其少于 15 个字符。
- 输入 SCAN 名称。
- 输入 SCAN 端口。
- 点击下一步。
如需添加第二个节点,请点击添加,然后执行以下操作:
- 输入第二个节点的公开主机名。
- 输入第二个节点的虚拟主机名。
- 点击确定。
在指定网络接口使用情况页面上,执行以下操作:
- 对于每个接口,在“用途”列中选择用途类型。 对于专用接口,请选择 ASM 和专用。
- 点击下一步。
在存储选项信息页面上,选择 Oracle Flex ASM for storage(用于在 Oracle ASM 中存储 OCR 文件和投票磁盘文件),然后点击下一步。
在创建 Grid Infrastructure Management 代码库中,选择 Yes(是),然后点击 Next(下一步)。
此步骤会创建 Grid Infrastructure Management Repository (GIMR)。
在 Grid Infrastructure Management Repository option 页面上,选择 No,因为我们不想为 GIMR 创建单独的磁盘组。
在创建 ASM 磁盘组页面上,执行以下操作:
- 输入磁盘组的名称。
点击更改发现路径,然后输入指向 Oracle ASM 磁盘的正确发现路径。
确保将设备映射到多路径,这样即使一条路径发生故障,您的 Oracle ASM 磁盘也能正常运行。
在指定 ASM 密码页面上,执行以下操作:
- 选择为这些账号使用相同的密码。
- 输入并确认密码。
- 点击下一步。
在故障隔离支持页面上,选择不使用智能平台管理接口 (IPMI),然后点击下一步。
在指定管理选项页面上,点击下一步,因为我们不会使用 Oracle Enterprise Manager 配置 Oracle Grid Infrastructure。
在特权操作系统组页面上,执行以下操作:
- 对于所有 Oracle ASM 权限,请选择 oinstall。您还可以使用 asmdba 和 asmoper。
- 点击下一步。
在指定安装位置页面上,指定 Oracle 基础架构,然后点击下一步。
如果您有 root 密码,或者
oracle
用户具有 sudo 权限,则可以自动执行 root 脚本。不过,在本指南中,我们将手动运行这些脚本。因此,在根脚本执行页面上,点击下一步。在执行前提条件检查页面上,执行以下操作:
修正显示的所有失败问题。
如果您已按照执行安装前检查部分中所述的方式修复了在执行
runcluvfy.sh
脚本时发现的所有失败问题,则可以期待顺利安装。修正失败问题后,点击重新检查,将失败问题的状态更新为已成功。
点击下一步。
查看摘要,然后点击安装。
安装提示会要求您在两个节点上运行根脚本。首先,在第一个节点上运行脚本,然后在第二个节点上运行脚本。
/apps/grid/oraInventory/orainstRoot.sh /apps/grid/19.3.0/gridhome_11/grid/root.sh
Finish(完成)窗口显示后,点击 Close(关闭)。
执行安装后步骤
Oracle Grid Infrastructure 安装完成后,请按以下步骤操作:
安装和配置 Oracle 数据库软件。
对于 RAC 安装,请选择仅安装软件安装选项。
如需了解如何安装 Oracle 数据库软件,请参阅博客:分步安装和配置适用于 RAC 数据库的 Oracle 19c 二进制文件。
创建 Oracle ASM 磁盘组。
在
/etc/oratab
文件中为 Oracle ASM 实例创建条目。vi /etc/oratab +ASM1:/apps/grid/19.3.0/gridhome_1:N
为 Oracle ASM 实例设置
ORACLE_SID
和ORACLE_HOME
变量,并连接到该实例。. oraenv ORACLE_SID = [oracle] ? +ASM1 The Oracle base has been set to /apps/grid/gridbase sqlplus / as sysasm SQL> select INSTANCE_NAME,STATUS from v$instance; INSTANCE_NAME STATUS ---------------- ------------ +ASM1 STARTED
检查要添加的磁盘的
HEADER_STATUS
是否为PROVISIONED
。SQL> select HEADER_STATUS,STATE,TOTAL_MB/1024,path from v$asm_disk; HEADER_STATUS. STATE PATH ------------ -------- ------------- ------------------------- PROVISIONED NORMAL /dev/oracleasm/disks/DAT01 PROVISIONED NORMAL /dev/oracleasm/disks/DATA02 MEMBER NORMAL /dev/oracleasm/disks/OCR
通过一个节点创建磁盘组。
SQL> create diskgroup DATA external redundancy disk '/dev/oracleasm/disks/DATA01','/dev/oracleasm/disks/DATA02'; Diskgroup created. SQL> select name, state, type from v$asm_diskgroup; NAME STATE TYPE ------------------------------ OCR MOUNTED EXTERN DATA MOUNTED EXTERN
在另一个节点上,登录 Oracle ASM 实例并挂载磁盘组。
SQL> select name, state, type from v$asm_diskgroup; NAME STATE TYPE -------------------- ----------- ------ DATA DISMOUNTED OCR MOUNTED EXTERN SQL> alter diskgroup DATA mount; Diskgroup altered. SQL> select name, state, type from v$asm_diskgroup; NAME STATE TYPE ------------------------------ ----------- ------ OCR MOUNTED EXTERN DATA MOUNTED EXTERN
使用 Oracle 数据库配置助理 (DBCA) 创建 RAC 数据库。
确保您选择数据库类型为 Real Application Cluster Database。
如需查看相关说明,请参阅 Oracle 文档。
RAC 数据库安装已完成,可以使用了。