Oracle 19c RAC 手工建库的搭建过程

下面就为您讲解“Oracle 19c RAC 手工建库的搭建过程”的完整攻略。

一、前置条件

在开始搭建 Oracle 19c RAC 环境之前,需要满足以下的前置条件:

  1. 服务器环境:必须具备至少两台运行 Oracle Linux 7.2 的服务器,它们必须在同一个局域网中,并且它们需要满足 Oracle 的硬件和软件要求。

  2. 网络环境:必须正确配置每个节点的网络连接,以保证节点之间可以相互通信。

  3. 安装容器环境:必须提前安装 Docker 环境。

  4. 安装 Oracle 资源:必须提前下载 Oracle 19c RAC 安装资源包,并正确解压缩安装资源。

二、搭建步骤

下面是搭建 Oracle 19c RAC 的详细步骤:

  1. 在每个节点上安装必要的软件
yum -y install binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 \
glibc-devel.i686 glibc-devel.x86_64 ksh compat-libstdc++-33 libaio.i686 libaio.x86_64 libaio-devel.i686 \
libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 \
libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64
  1. 修改每个节点的主机名和 hosts 配置文件
hostnamectl set-hostname 节点1的主机名
echo "192.168.1.101 节点1的主机名 节点1的IP地址" >> /etc/hosts
hostnamectl set-hostname 节点2的主机名
echo "192.168.1.102 节点2的主机名 节点2的IP地址" >> /etc/hosts
  1. 创建 Oracle 用户和用户组
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper

useradd -u 54321 -g oinstall -G dba,oper oracle
  1. 配置每个节点的内核参数
vi /etc/sysctl.conf
# 在文件末尾追加如下内容
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
vi /etc/security/limits.conf
# 在文件末尾追加如下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
vi /etc/pam.d/login
# 在文件末尾追加如下内容
session required /lib64/security/pam_limits.so

执行命令 sysctl -p 来重新加载配置文件。

  1. 配置共享存储

我们使用共享存储提供数据冗余性和负载均衡。配置共享存储有多种方式,例如 iSCSI、NFS、ASM 等,这里我们演示使用 NFS。

在任何一个节点上,创建一个文件夹用于共享存储:

mkdir /shared_disk

在该节点上,安装并配置 NFS:

yum -y install nfs-utils

echo "/shared_disk 节点1的IP地址(rw,no_root_squash)" >> /etc/exports

exportfs -ra
systemctl start nfs-server
systemctl enable nfs-server

在另一个节点上,挂载共享存储:

mount -t nfs 节点1的IP地址:/shared_disk /shared_disk
  1. 修改每个节点的 SSH 配置

在每个节点上,将 Oracle 用户添加到 /etc/ssh/sshd_config 配置文件中,确保其具备 SSH 访问权限:

vi /etc/ssh/sshd_config
# 在文件末尾添加如下内容
AllowUsers oracle
  1. 安装 Oracle Grid Infrastructure(GI)

进入到解压后的 GI 安装资源目录下:

./gridSetup.sh

在安装过程中,选择“Install and Configure Oracle Grid Infrastructure for a Cluster” 选项。

在“Cluster Type”页面选择“Advanced Install”。

在“Node Selection”页面选择需要安装 GI 的节点,并为每个节点指定一个 VIP 地址。

在“Grid Plug and Play Configuration”页面配置 GI 的本地监听器名称和端口。

在“Specify Network Interface Usage”页面选择使用哪些网络接口进行通信。

在“Cluster Configuration”页面选择“Configure GNS”。

在“GNS Configuration”页面填写 GNS 的 DNS 信息。

完成 GI 的安装和配置后,在所有节点上验证 GI 的状态:

su - grid
crsctl stat res -t
  1. 安装 Oracle Database 软件

在解压后的 Oracle Database 安装资源目录下:

./runInstaller

在安装过程中,选择“Install Database Software Only” 选项。

在“Select Installation Mode”页面选择“Advanced Install”。

在“Grid Installation Options”页面选择“Install Oracle Real Application Clusters”.

在“Node Selection”页面选择要安装 Oracle 数据库的节点。

在“Cluster Node Configuration”页面选择“Configure Cluster Database”。

在“Database Edition”页面选择“Enterprise Edition”。

在“Database Configuration”页面选择“Oracle Real Application Clusters database”。

在“Database Identifiers”页面输入“Global Database Name”和“SID”。

在“Management Options”页面选择“Automatic Storage Management”并指定共享存储路径。

在“Storage Option”页面选择“ASM Storage”.

在“ASN Disk Group”页面选择“Create a New Disk Group”。

在“Specify Disk Group Options”页面输入磁盘组的名称和磁盘路径。

在“Specify ASM Password”页面输入 ASM 密码。

在“Privileged Operating System Groups”页面指定操作系统组信息。

在“Character Sets”页面选择所需的字符集。

在“Sample Schema”页面选择需要的示例数据库。

在“Summary”页面检查配置信息并点击“Install”按钮。

安装完成后,在所有节点上验证数据库软件的状态:

su - oracle
srvctl status database -d database_name

示例说明:

假设有两台服务器,分别是 racnode1(192.168.1.101)和 racnode2(192.168.1.102),在 racnode1 上创建 shared_disk 目录,并将该目录共享出来。在 racnode2 上,挂载该共享目录:

# 在 racnode1 上创建 shared_disk 目录,并将该目录共享出来
mkdir /shared_disk
echo "/shared_disk 192.168.1.101(rw,no_root_squash)" >> /etc/exports
exportfs -ra
systemctl start nfs-server
systemctl enable nfs-server

# 在 racnode2 上,挂载共享目录
mkdir /shared_disk
mount -t nfs 192.168.1.101:/shared_disk /shared_disk

然后在 racnode1 上安装 GI,并在安装过程中为每个节点指定一个 VIP 地址。接着安装 Oracle Database 软件,为共享存储配置 ASM 磁盘组,在安装过程中输入的相关信息如下:

  • Global Database Name: db1.example.com
  • SID: db1
  • ASM password: password1
  • ASM Disk Group: disk_group1
  • ASM Disk Group path: /shared_disk/disk_group1

在安装完成后,验证数据库软件状态:

su - oracle
srvctl status database -d db1

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle 19c RAC 手工建库的搭建过程 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • C语言中system()执行cmd命令打开关闭程序的方法

    下面是详细讲解“C语言中system()执行cmd命令打开关闭程序的方法”的完整攻略: 1. system()函数简介 在C语言中,system()函数是一个非常强大的函数,它可以让我们执行许多操作系统命令,包括打开和关闭程序。下面是system()函数的定义: #include <stdlib.h> int system(const char …

    C 2023年5月23日
    00
  • python多线程下信号处理程序示例

    下面我将为大家详细讲解“python多线程下信号处理程序示例”的完整攻略。 1. 什么是信号处理程序 信号处理程序(Signal handler)是一个特殊的函数,用于响应特定的信号。在操作系统中,信号是异步事件,将被进程内或进程外触发。Linux操作系统支持很多不同的信号,如SIGUSR1,SIGUSR2,SIGTERM,SIGKILL等,每个信号都有自己…

    C 2023年5月22日
    00
  • JSON传递bool类型数据的处理方式介绍

    JSON(JavaScript Object Notation)是一种用于数据交换的轻量级文本格式,被广泛应用于前后端通信中。在JSON中,bool类型数据表示为true或false。在传递bool类型数据时,我们需要明确如何对其进行处理。 在PHP中,我们需要使用json_encode()函数将bool类型数据转换为JSON字符串,使用json_decod…

    C 2023年5月23日
    00
  • C/C++中宏定义(#define)

    C/C++中宏定义(#define) 什么是宏定义? 在C/C++中,宏定义是一种预处理指令,用于让编译器在编译源代码之前进行一些简单的文本替换操作。定义完成后,程序中所有出现该定义的地方都会被替换成定义时所指定的文本内容。 宏定义的语法 #define 宏名称 宏取值 其中,“#define”是宏定义的关键字,“宏名称”是您定义的宏名称,“宏取值”则是您希…

    C 2023年5月23日
    00
  • C语言中的分支循环其嵌套语句

    C语言中的分支循环语句是控制程序流程的重要工具,它们可以根据条件来执行不同的代码块,或者循环执行某段代码块。与此同时,C语言还支持分支循环语句的嵌套,这种语句结构可以更精细地控制程序流程,提高代码的效率和可维护性。下面是完整的攻略。 分支语句 if语句 if语句是最基本的分支语句,用来测试一个条件,如果满足条件就执行指定的代码块。 语法: if (条件) {…

    C 2023年5月23日
    00
  • 总结UNIX/LINUX下C++程序计时的方法

    下面是关于“总结UNIX/LINUX下C++程序计时的方法”的完整攻略。 1.使用clock()函数计时 在UNIX/LINUX下,可以使用clock()函数对C++程序进行计时。clock()函数的单位是CPU时钟数(clock ticks),其返回值为程序运行时间(单位为10^(-6)秒)。在<ctime>头文件中定义了该函数。 下面是一段示…

    C 2023年5月23日
    00
  • 你可能不知道的JSON.stringify()详解

    你可能不知道的JSON.stringify()详解 简介 JSON.stringify() 是 JavaScript 内置的一个可将对象转换为 JSON 字符串的方法。它将对象序列化为一个字符串,以便于存储或传输。JSON.stringify() 还可以接受一个函数作为第二个参数,用于控制转换过程。 JSON.stringify() 的参数 JSON.str…

    C 2023年5月23日
    00
  • Bootstrap3使用typeahead插件实现自动补全功能

    下面会详细讲解如何使用 Bootstrap3 的 typeahead 插件来实现自动补全功能。 1. 安装 Bootstrap3 和 typeahead 插件 首先需要在网页中引入 Bootstrap3 和 typeahead 插件的文件。在 head 部分加入以下代码: <!– 引入 Bootstrap3 样式表文件 –> <link…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部