安装 Oracle 12cR1 RAC on Linux 7
本文介绍如何在Oracle Linux 7上安装2节点Oracle 12cR1 Real Application Cluster(RAC)。通过使用共享存储创建2个虚拟机,在Oracle Virtual Box上进行了此安装。我使用的OS平台是Oracle Enterprise Linux 7,Oracle GI和RDBMS版本是12.1.0.2。相同的安装指南也适用于Redhat Linux 7。 如果RAC设置中有超过2个节点,安装步骤是相同的。 可以通过以下链接找到12c RAC安装的官方文档。
http://docs.oracle.com/database/121/CWLIN/toc.htm
Oracle RAC 12c版本最好配合Oracle Linux 7进行安装
Oracle RAC 11.2.04版本最好配合Oracle Linux 6进行安装
前置条件:
通过安装Oracle Linux 7来准备所有节点。所有节点上都有私有连接和共享存储。例如,我有3个磁盘(每个2G大小)用于CRS磁盘组用来存储OCR和Voting,以及1个磁盘(4G)用于DATA磁盘组来存储数据库。
在示例里面,我们有2个公共IP,2个虚IP,2个专有IP和1个 SCAN IP(从公共子网取出),我们将在安装过程中使用。本文中,节点名称如下:
Public salman1.salman.com salman2.salman.com Virtual salman1-vip.salman.com salman2-vip.salman.com Private salman1-priv.salman.com salman2.priv.salman.com SCAN salman-scan.salman.com |
SCAN配置的推荐方法是具有通过DNS解析的3个IP地址。 由于我的环境里面没有DNS服务,我配置主机文件中的配置项进行SCAN配置,最后则使用单个SCAN IP地址。
下载并解压缩软件:
下载12c Grid 和RDBMS软件。 第一版(12.1.0.1)可以从www.oracle.com下载,但由于我们在此安装12.1.0.2,我们需要下载补丁集1769377。前2个zip文件用于数据库,最后2个用于Grid。
在本次操作中,我把软件压缩包提取到了/u02/12.1.0.2/目录下。
现在我们开始安装。以下便是在Linux上安装Oracle 12c RAC的步骤:
1)在每个节点上编辑 /etc/selinux/config ,将SELINUX的值设置为"permissive"或"disabled":
SELINUX=permissive |
2)在每个节点上,配置共享内存文件系统。在共享内存文件系统的 /etc/fstab 文件中添加以下行。根据您将要用于SGA的内存量修改"size"的值。
tmpfs /dev/shm tmpfs rw,exec,size=8g 0 0 |
3)在每个节点上,禁用防火墙。
[root@salman1 ~]# systemctl start firewalld.service [root@salman1 ~]# systemctl stop firewalld.service [root@salman1 ~]# systemctl disable firewalld.service [root@salman1 ~]# rm '/etc/systemd/system/basic.target.wants/firewalld.service' [root@salman1 ~]# rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' (在linux6版本里面,没有systemctl服务,所以方法不一样) |
linux6上关闭防火墙和selinux,root下执行:
[root@salman1 ~]# service iptables stop [root@salman1 ~]# chkconfig iptables off [root@salman1 ~]# service ip6tables stop [root@salman1 ~]# chkconfig ip6tables off [root@salman1 ~]# setenforce 0 [root@salman1 ~]# getenforce |
4)重启每个节点
5)在每个节点的/ etc / host文件中,添加RAC的每个节点的IP地址和完全限定名称,包括公共IP; 虚拟IP; 私有IP和SCAN IP。
#Public 192.231.231.40 salman1.salman.com salman1 192.231.231.41 salman2.salman.com salman2 #Virtual 192.231.231.50 salman1-vip.salman.com salman1-vip 192.231.231.51 salman2-vip.salman.com salman2-vip #Private 10.10.10.10 salman1-priv.salman.com salman1-priv 10.10.10.11 salman2-priv.salman.com salman2-priv #SCAN 192.231.231.60 salman-scan.salman.com salman-scan |
确保每个节点的公共接口和专用接口具有相同的名称,并且在所有节点上在ifconfig命令下,以相同的顺序列出,(我的公共接口名称为enp0s3,专用接口名称为enp0s8)。
6)测试保证每个节点到另一个节点的ping命令可以连通。此时不需要对SCAN IP和虚拟IP进行测试。
节点salman1
[root@salman1 ~]# ping salman1 [root@salman1 ~]# ping salman1-priv [root@salman1 ~]# ping salman2 [root@salman1 ~]# ping salman2-priv |
节点salman2
[root@salman2 ~]# ping salman2 [root@salman2 ~]# ping salman2-priv [root@salman2 ~]# ping salman1 [root@salman2 ~]# ping salman1-priv |
7)我们可以使用"yum"命令执行节点的自动配置。如果想要进行手动配置,请跳过此步骤,转到第8步。
自动配置将执行以下任务:
安装所需的RPM包
在/etc/sysctl.conf文件中设置内核参数
创建OS组(oinstall,dba)和OS用户(oracle)
为安装用户"oracle" 设置限制
在每个节点上,执行以下命令以自动执行所有预设置:
[root@salman1 ~]# yum install oracle-rdbms-server-12cR1-preinstall -y |
(如果不是此版本,需要相应改变yum参数)
11g版本:
[root@salman1 ~]# yum install oracle-rdbms-server-11gR2-preinstall -y |
如果失败了,修改一下 /etc/resolv.conf,在第一 条那儿,添加:
nameserver 8.8.8.8 |
如果报了此错误:
No package oracle-rdbms-server-11cR2-preinstall available. |
执行:
[root@salman1 ~]# cd /etc/yum.repos.d/ [root@salman1 ~]# wget http://public-yum.oracle.com/public-yum-ol6.repo [root@salman1 ~]# yum install oracle-rdbms-server-11gR2-preinstall |
如果要通过Oracle Linux安装包安装,请使用"rpm -i " 命令安装软件包。
自动配置会在/etc/sysctl.conf文件中设置所需的内核参数。
自动配置将创建默认的OS组,即oinstall和dba(分别为组54321和54322)和用户ID为54321的OS用户(oracle)。
如果计划通过创建"grid"用户安装和管理grid以实现角色分离,并为数据库软件使用"oracle"用户,您将需要手动创建更多的OS组和"grid"用户,如下所示(在所有节点上):
增加组
[root@salman1 ~]# groupadd -g 54323 oper [root@salman1 ~]# groupadd -g 54325 asmdba [root@salman1 ~]# groupadd -g 54328 asmadmin [root@salman1 ~]# groupadd -g 54329 asmoper |
增加用户
[root@salman1 ~]# useradd -u 54322 -g oinstall -G dba,asmdba,asmadmin,asmoper grid |
为用户设置密码(oracle 和 grid)
[root@salman1 ~]# passwd oracle [root@salman1 ~]# passwd grid |
将oracle 用户加入oper 和 asmdba 组
[root@salman1 ~]# usermod -g oinstall -G dba,oper,asmdba oracle |
自动配置还通过在 /etc/security/limits.d 目录下创建 oracle-rdbms-server-12cR1-preinstall.conf 文件来设置默认用户"oracle" 的资源限制。 如果您为grid安装创建了用户"grid",则还需要为grid用户手动设置这些限制。 您可以在 /etc/security/limits.d 目录下创建一个单独的 .conf文件(.conf文件名随便起),或在 oracle-rdbms-server-12cR1-preinstall.conf 文件中附加以下行:
grid soft nofile 1024 grid hard nofile 65536 grid soft nproc 16384 grid hard nproc 16384 grid soft stack 10240 grid hard stack 32768 grid hard memlock 134217728 grid soft memlock 134217728 |
8)如果您已经执行了步骤7,请跳过此步骤; 否则在每个节点上执行以下步骤。
从yum存储库或Linux 7本地rpm包安装以下RPM软件包(或最新版本):
binutils-2.23.52.0.1-12.el7.x86_64 compat-libcap1-1.10-3.el7.x86_64 gcc-4.8.2-3.el7.x86_64 gcc-c++-4.8.2-3.el7.x86_64 glibc-2.17-36.el7.i686 glibc-2.17-36.el7.x86_64 glibc-devel-2.17-36.el7.i686 glibc-devel-2.17-36.el7.x86_64 libaio-0.3.109-9.el7.i686 libaio-0.3.109-9.el7.x86_64 libaio-devel-0.3.109-9.el7.i686 libaio-devel-0.3.109-9.el7.x86_64 ksh make-3.82-19.el7.x86_64 libXi-1.7.2-1.el7.i686 libXi-1.7.2-1.el7.x86_64 libXtst-1.2.2-1.el7.i686 libXtst-1.2.2-1.el7.x86_64 libgcc-4.8.2-3.el7.i686 libgcc-4.8.2-3.el7.x86_64 libstdc++-4.8.2-3.el7.i686 libstdc++-4.8.2-3.el7.x86_64 libstdc++-devel-4.8.2-3.el7.i686 libstdc++-devel-4.8.2-3.el7.x86_64 sysstat-10.1.5-1.el7.x86_64 unixODBC-2.3.1 |
示例 (yum源)
[root@salman1 ~]# yum install glibc
示例(Linux 本地包)
[root@salman1 ~]# rpm -i glibc
示例(安装后检查)
[root@salman1 ~]# rpm -q glibc
glibc-2.17-55.el7.x86_64
在每个节点上,编辑/etc/sysctl.conf添加以下条目来设置内核参数:
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 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500 |
添加上述行后执行以下命令:
/sbin/sysctl -p |
在每个节点上,在 /etc/security/limits.d 目录下创建 .conf文件(文件名可以是任何东西),以设置 grid 和 oracle 用户的 shell 限制。
例如,创建文件 oracleusers.conf 并添加以下条目。或者,您也可以在 /detc/security/limits.conf 中设置限制。不过我还是喜欢在 /etc/security/limits.d 目录下设置。
# Grid user grid soft nofile 1024 grid hard nofile 65536 grid soft nproc 16384 grid hard nproc 16384 grid soft stack 10240 grid hard stack 32768 grid hard memlock 134217728 grid soft memlock 134217728
# Oracle user oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768 oracle hard memlock 134217728 oracle soft memlock 134217728 |
9)在每个节点上,安装 oracleasm-support 和 oracleasmlib,然后配置 oracleasm 。
Oracle Linux中内置了 oracleasm 内核驱动,不需要安装。安装 oracleasm-support 和 oracleasmlib 软件包后, oracleasm 驱动即开始工作。
如果您正在使用其他版本的Linux,例如RedHat Linux,则需要安装所有3个软件包(oracleasm驱动程序,oracleasm-support 和 oracleasmlib)。
从yum源或Linux本地包安装oracleasm,然后从以下URL下载oracleasmlib包,然后安装。
http://www.oracle.com/technetwork/server-storage/linux/asmlib/ol7-2352094.html
安装oracleasmlib和oracleasm-support:
[root@salman1 ~]# yum install oracleasm-support [root@salman1 ~]# rpm -i oracleasm-lib* |
配置 oracleasm(高亮显示为配置中的输入)
[root@salman1 ~]# /etc/init.d/oracleasm configure 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 []: grid Default group to own the driver interface []: asmadmin Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: [ OK ]
检查配置 [root@salman1 ~]# /usr/sbin/oracleasm configure ORACLEASM_UID=grid ORACLEASM_GID=asmadmin ORACLEASM_SCANBOOT=true ORACLEASM_SCANORDER="" ORACLEASM_SCANEXCLUDE="" ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false" |
10)在每个节点上,如果不存在,请在 /etc/pam.d/login 文件中添加以下内容:
session required /lib64/security/pam_limits.so session required pam_limits.so |
11)在每个节点上,停止并禁用NTP(网络时间协议Network Time Protocol)
在安装过程中,将安装并使用群集时间同步服务,或者NTP。
[root@salman1 ~]# /sbin/service ntpd stop [root@salman1 ~]# chkconfig ntpd off [root@salman1 ~]# mv /etc/ntp.conf /etc/ntp.conf.org [root@salman1 ~]# rm /var/run/ntpd.pid |
12)在每个节点上,确保/etc/resolv.conf文件包含以下内容或者等价的条目。将您的域名替换为 salman.com ,将您的名称服务器IP地址替换为192.231.231.1。
search salman.com nameserver 192.231.231.1 |
13)在每个节点,安装cvuqdisk RPM。
这对于 cluvfy (群集验证实用程序)的正常工作用以发现共享磁盘是必需的,否则将在运行 cluvfy 时报告错误。以 root 身份登录,并执行以下步骤:
设置环境变量 CVUQDISK_GRP 并指向拥有 cvuqdisk 的 oinstall 组
[root@salman1 ~]# export CVUQDISK_GRP=oinstall |
解压的 gird 软件下找到 cvuqdisk 包,并安装 cvuqdisk
[root@salman1 ~]# cd /u02/12.1.0.2/grid/rpm [root@salman1 ~]# rpm–i cvuqdisk-1.0.9-1.rpm |
14)在每个节点,创建目录并更改相应的用户的权限(grid 和 oracle)。
[root@salman1 ~]# mkdir -p /u01/app/12.1.0/grid [root@salman1 ~]# mkdir -p /u01/app/grid [root@salman1 ~]# mkdir -p /u01/app/oracle [root@salman1 ~]# chown -R grid:oinstall /u01 [root@salman1 ~]# chown oracle:oinstall /u01/app/oracle [root@salman1 ~]# chmod -R 775 /u01/ |
15)从任一节点,分出一个共享磁盘。如最初所描述的,我共有4个磁盘,3个用于OCR和Voting磁盘,1个用于DATA磁盘组。高亮显示的磁盘是我将使用此磁盘创建分区,然后使用oracleasm创建ASM磁盘。
[root@salman1 ~]# ls -l /dev/sd* brw-rw----. 1 root disk 8, 0 Apr 7 11:38 /dev/sda brw-rw----. 1 root disk 8, 1 Apr 7 11:38 /dev/sda1 brw-rw----. 1 root disk 8, 2 Apr 7 11:38 /dev/sda2 brw-rw----. 1 root disk 8, 3 Apr 7 11:38 /dev/sda3 brw-rw----. 1 root disk 8, 4 Apr 7 11:38 /dev/sda4 brw-rw----. 1 root disk 8, 5 Apr 7 11:38 /dev/sda5 brw-rw----. 1 root disk 8, 16 Apr 7 11:38 /dev/sdb brw-rw----. 1 root disk 8, 17 Apr 7 11:38 /dev/sdb1 brw-rw----. 1 root disk 8, 32 Apr 7 11:38 /dev/sdc brw-rw----. 1 root disk 8, 48 Apr 7 11:38 /dev/sdd brw-rw----. 1 root disk 8, 64 Apr 7 11:38 /dev/sde brw-rw----. 1 root disk 8, 80 Apr 7 11:38 /dev/sdf |
使用以下步骤来为每个磁盘(/dev/sdc, /dev/sdd, /dev/sde, /dev/sdf)分区。
为了简单起见,在为每个磁盘执行命令fdisk后,按下列顺序键 n,p,1,<enter>,<enter>,w为每个磁盘创建新的分区。
[root@salman1 ~]# fdisk /dev/sdc 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 0x457c3565.
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): 1 First sector (2048-25165823, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-25165823, default 25165823): Using default value 25165823 Partition 1 of type Linux and of size 12 GiB is set
Command (m for help): w The partition table has been altered!
Calling ioctl() to re-read partition table. Syncing disks.
|
分区完成后,以下是我的分区磁盘:
[root@salman1 ~]# ls -l /dev/sd* … … … brw-rw----. 1 root disk 8, 32 Apr 7 12:04 /dev/sdc brw-rw----. 1 root disk 8, 33 Apr 7 12:04 /dev/sdc1 brw-rw----. 1 root disk 8, 48 Apr 7 12:08 /dev/sdd brw-rw----. 1 root disk 8, 49 Apr 7 12:08 /dev/sdd1 brw-rw----. 1 root disk 8, 64 Apr 7 12:08 /dev/sde brw-rw----. 1 root disk 8, 65 Apr 7 12:08 /dev/sde1 brw-rw----. 1 root disk 8, 80 Apr 7 12:08 /dev/sdf brw-rw----. 1 root disk 8, 81 Apr 7 12:08 /dev/sdf1 |
16)从任一节点,使用oracleasm命令创建ASM磁盘。
[root@salman1 ~]# oracleasm createdisk crs1 /dev/sdc1 Writing disk header: done Instantiating disk: done [root@salman1 ~]# oracleasm createdisk crs2 /dev/sdd1 Writing disk header: done Instantiating disk: done [root@salman1 ~]# oracleasm createdisk crs3 /dev/sde1 Writing disk header: done Instantiating disk: done [root@salman1 ~]# oracleasm createdisk data /dev/sdf1 Writing disk header: done Instantiating disk: done [root@salman1 sys]# oracleasm scandisks Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... [root@salman1 sys]# oracleasm listdisks CRS1 CRS2 CRS3 DATA |
在所有其他节点上执行"oracleasm scandisks" 和"oracleasm listdisks"命令也可以看到所有的ASM磁盘。
从其他节点,以root用户身份执行以下命令:
[root@salman2 ~]# oracleasm scandisks Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... [root@salman2 ~]# oracleasm listdisks CRS1 CRS2 CRS3 DATA |
17)在每个节点上,为ASM磁盘添加IO调度程序。修改高亮显示的磁盘名称以匹配您的环境。
[root@salman1 ~]# echo deadline > /sys/block/sdc/queue/scheduler [root@salman1 ~]# echo deadline > /sys/block/sdd/queue/scheduler [root@salman1 ~]# echo deadline > /sys/block/sde/queue/scheduler [root@salman1 ~]# echo deadline > /sys/block/sdf/queue/scheduler |
18)在每个节点上,在两个用户,"grid" 和"oracle" 的 /home/<username>/.bash_profile 文件中添加以下内容。在这个步骤,我们不需要设置其他环境变量,即ORACLE_BASE 或 ORACLE_HOME。
umask 022 |
19)运行cluvfy(可选)
在计划启动安装的节点中,打开终端并以"grid"用户身份登录,您可以选择执行集群验证实用程序(cluvfy)。
[grid@salman1 ~]$ cd /u02/12.1.0.2/grid/ [grid@salman1 ~]$ ./runcluvfy.sh stage -pre crsinst -n salman1 -fixup -verbose |
如果没有从每个节点配置到其他节点的用户等效(无密码ssh登录),则会失败。 在这一点上,使用ssh的无密码登录也是可选的,因为安装程序将允许我们在安装向导中配置用户等效,这个会在另外一个笔记本里面详细介绍。
20)选择要启动安装的所有节点,并以安装用户身份登录(在此示例中为"grid")。您将选择桌面登录到服务器。如果您没有安装任何桌面环境,请使用X Window System。
21)从提取的软件目录(/u02/12.1.0.2/grid)开始安装,执行"./runInstaller"开始安装。
22)开始安装
选择"Advance Installation",然后单击下一步
如果需要,更改集群名称和SCAN名称和SCAN端口。确保SCAN名称与/ etc / host文件中指定的相同。取消选中"Configure GNS"。点击下一步
您将只看到第一个节点(您启动安装的位置)。单击添加以打开一个窗口以提供第二个节点的详细信息。您需要通过单击 add 按钮添加 RAC 环境中每个节点的详细信息。
单击SSH Connectivity。如果您已经通过SSH配置无密码登录到远程节点,则应该跳过下一个设置。
点击SSH连接后,您将看到文本框提供用户名(grid)和密码来设置SSH连接。提供密码并点击设置按钮。配置SSH需要几秒钟的时间。
为公共网络和专有网络选择正确的网络接口,然后单击下一步
提供磁盘组名称。由于将 OCR 和 Voting 磁盘存储在这个磁盘组上,所以需要提供CRS。选择"External"。应使用正常(至少需要2个磁盘)或高冗余(至少需要3个磁盘)来防止磁盘故障。选择ASM磁盘作为此磁盘组的一部分。
如果是11g的话,此步骤需要点击Change Discovery Path,修改发现路径为/dev/oracleasm/disks/*。
为用户SYS(SYSASM )提供密码,然后单击下一步
如果需要,根据上一步创建的目录修改路径。或者您可以继续使用默认位置。点击下一步
如果您希望OUI自动执行所需的脚本,而不是在安装期间提示您将脚本作为"root"执行,请选择此选项。
如果您看到任何先决条件检查失败/警告,请在单击下一步之前进行修复。在我的情况下,我忽略了所有这些,因为以下原因。
i) 我正在使用具有2G内存的虚拟盒,所以我忽略了物理内存警告
ii) 我没有使用DNS,所以我忽略了resolv.conf失败
iii)我没有使用DNS,所以我忽略DNS / NIS故障
iv)我也忽略 /dev/shm,因为 /dev/shm 已经设置为8G,由于12.1.0.2 grid 基础设施软件附带的cluvfy中出现的错误,所以无法识别。
安装程序将提示以root身份执行脚本的权限。单击是
12c版本可以通过图形界面自动执行root.sh脚步,而11.2.0.4版本会在此阶段弹出窗口,暂停安装过程,由用户以根用户在两个节点上分别执行
安装完成。我在这里看到一个错误,那是因为post安装步骤中执行失败。cluvfy 失败的原因与上面的步骤上面所解释的一样,所以我点击了确定关闭该框。
单击yes
单击关闭,安装成功完成。
23)在两个节点上,在 .bash_profile 文件中添加以下环境变量。在node2上,ORACLE_SID值应为+ ASM2,依此类推。
##grid user environment variables ORACLE_SID=+ASM1; export ORACLE_SID ORACLE_BASE=/u01/app/grid; export ORACLE_BASE ORACLE_HOME=/u01/app/12.1.0/grid; export ORACLE_HOME ORACLE_TERM=xterm; export ORACLE_TERM PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib; export CLASSPATH export TEMP=/tmp export TMPDIR=/tmp |
24)检查CRS的健康状况。一切似乎都可以正常工作
[grid@salman2 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.CRS.dg ONLINE ONLINE salman1 STABLE ONLINE ONLINE salman2 STABLE ora.LISTENER.lsnr ONLINE ONLINE salman1 STABLE ONLINE ONLINE salman2 STABLE ora.asm ONLINE ONLINE salman1 Started,STABLE ONLINE ONLINE salman2 Started,STABLE ora.net1.network ONLINE ONLINE salman1 STABLE ONLINE ONLINE salman2 STABLE ora.ons ONLINE ONLINE salman1 STABLE ONLINE ONLINE salman2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE salman1 STABLE ora.MGMTLSNR 1 ONLINE ONLINE salman1 169.254.93.149 10.1.10.10,STABLE ora.cvu 1 ONLINE ONLINE salman1 STABLE ora.mgmtdb 1 ONLINE ONLINE salman1 Open,STABLE ora.oc4j 1 ONLINE ONLINE salman1 STABLE ora.salman1.vip 1 ONLINE ONLINE salman1 STABLE ora.salman2.vip 1 ONLINE ONLINE salman2 STABLE ora.scan1.vip 1 ONLINE ONLINE salman1 STABLE --------------------------------------------------------------------------------
[grid@salman2 ~]$ srvctl status scan SCAN VIP scan1 is enabled SCAN VIP scan1 is running on node salman1
[grid@salman2 ~]$ srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is running on node salman1 |
25)安装数据库软件
在开始数据库软件安装之前,首先我们创建一个用于存储数据库的磁盘组DATA; 我们将在数据库软件安装期间正式创建。
打开终端并以操作系统用户"grid"登录。现在使用 SQLPLUS 以 SYSASM 权限登录到 ASM 实例,然后创建磁盘组 DATA。
[grid@salman1 ~]$ sqlplus
SQL*Plus: Release 12.1.0.2.0 Production on Mon Apr 20 12:11:05 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Enter user-name: sys as sysasm Enter password:
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options
SQL> select name, path from v$asm_disk;
NAME PATH ------------------------------ ---------------------------------------------------------------------------------- ORCL:DATA CRS1 ORCL:CRS1 CRS2 ORCL:CRS2 CRS3 ORCL:CRS3
Compatibility for ASM and RDBMS should be specified, otherwise it would default to 10.1.0.0.0 and we will not be able to store 12c database files on it.
SQL> create diskgroup DATA external redundancy disk 'ORCL:DATA' ATTRIBUTE 'compatible.asm'='12.1.0.0.0' , 'compatible.rdbms'='12.1.0.0.0';
Diskgroup created.
If you created this diskgroup from node1, use srvctl command to start this new disk resource on all other nodes [grid@salman1 ~]$ srvctl start diskgroup -diskgroup DATA -node salman2 |
11.2.0.4版本对比12c版本Database安装调整说明:
1.此节点创建数据库的共享diskgroup时,此步骤中红框部分需要调整如下:
2.执行安装到45%进度时会出现如下编译错误,根据参考1和参考2链接进行修改,并执行retry
参考1:installation error in invoking target 'agent nmhs'
https://community.oracle.com/thread/1093616
参考2:https://oracle-base.com/articles/11g/oracle-db-11gr2-installation-on-oracle-linux-7
*/usr/bin/ld: note: 'B_DestroyKeyObject' is defined in DSO /u01/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so so try adding it to the linker command line*
*/u01/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so: could not read symbols: Invalid operation*
由于我在这里使用2个不同的操作系统用户,所以从任何节点,都可以使用XWindow或Linux桌面以用户"oracle"身份登录,并从数据库软件已被提取的目录启动安装。
[oracle@salman1 database]$cd /u02/12.1.02/database
[oracle@salman1 database]$./runInstaller |
26)下一步
在安装过程中创建一个新的数据库。 点击下一步。
选择Server类数据库。点击下一步
进行RAC数据库安装,以便软件安装在所有RAC节点上。点击下一步
默认情况下,选择所有节点进行数据库软件安装,单击"SSH Connectivity"按钮,以前在 grid 基础架构安装期间配置了 grid 用户,需要配置SSH连接。这次SSH将被配置为"oracle"用户。配置完成后,单击下一步
如果需要修改路径的话,请先修改路径。
选择要创建的数据库类型,单击下一步
提供数据库名称,如果您希望它是一个container database,也选中该复选框。
指定数据库实例的内存分配详细信息,单击下一步
选择"Oracle自动存储管理",因为我们已经创建了一个用于存储数据库的ASM磁盘。
选择我们创建的存储数据库文件的磁盘组,单击下一步
指定管理员用户的密码,单击"下一步"
在最后一步,我看到4个警告,我可以忽略,因为以下原因。
i)由于我没有使用 namesserver,所以我面临警告1和2,所以我可以忽略两者
ii)就像Grid Infrastructure安装一样,OUI在识别 /dev/shm 文件系统的实际值方面有一个问题,同样发生在这里,所以我可以忽略它。
iii)oracle用户的限制已经在 /etc/security/limits.d/oracle-rdbms-server-12cR1-preinstall.conf 中设置,可以使用"ulimit -a"命令进行确认,但OUI正在检查 /etc/security/limits.conf 文件的限制,所以我也可以忽略这个警告。点击下一步
单击安装
在安装过程中,将提示您以root身份在两个节点上执行root.sh。当提示时,逐个在两个节点上执行,单击确定关闭该框,以便进一步安装。
数据库创建助手将启动创建数据库。
单击确定关闭数据库创建完成后的提示。
点击关闭
27)在两个节点上的"oracle"用户的 .bash_profile 中添加以下环境变量设置。相应地为每个节点修改ORACLE_SID的值
ORACLE_SID=salmandb1; export ORACLE_SID ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1; export ORACLE_HOME ORACLE_TERM=xterm; export ORACLE_TERM PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib; export CLASSPATH export TEMP=/tmp export TMPDIR=/tmp |
28)RAC安装成功完成。检查所有资源和数据库实例的状态
[grid@salman1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.CRS.dg ONLINE ONLINE salman1 STABLE ONLINE ONLINE salman2 STABLE ora.DATA.dg ONLINE ONLINE salman1 STABLE ONLINE ONLINE salman2 STABLE ora.LISTENER.lsnr ONLINE ONLINE salman1 STABLE ONLINE ONLINE salman2 STABLE ora.asm ONLINE ONLINE salman1 Started,STABLE ONLINE ONLINE salman2 Started,STABLE ora.net1.network ONLINE ONLINE salman1 STABLE ONLINE ONLINE salman2 STABLE ora.ons ONLINE ONLINE salman1 STABLE ONLINE ONLINE salman2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE salman1 STABLE ora.MGMTLSNR 1 ONLINE ONLINE salman1 169.254.93.149,STABL E ora.cvu 1 ONLINE ONLINE salman1 STABLE ora.mgmtdb 1 ONLINE ONLINE salman1 Open,STABLE ora.oc4j 1 ONLINE ONLINE salman1 STABLE ora.salman1.vip 1 ONLINE ONLINE salman1 STABLE ora.salman2.vip 1 ONLINE ONLINE salman2 STABLE ora.asm ONLINE ONLINE salman1 Started,STABLE ONLINE ONLINE salman2 Started,STABLE ora.scan1.vip 1 ONLINE ONLINE salman1 STABLE --------------------------------------------------------------------------------
[grid@salman1 ~]$ srvctl status database -d salmndb Instance salmndb1 is running on node salman1 Instance salmndb2 is running on node salman2 |
参考:http://salmandba.blogspot.jp/2015/04/installing-oracle-12c-rac-on-oracle.html