使用VirtualBox Linux环境中的Oracle RAC 数据库
文章来自:Lab128
本文介绍了Oracle 数据库 11gR2 RAC(11.2 64位)在VirtualBox(4.1.14+) Linux(Oracle Linux 6.3 64 位)环境中的安装和使用。
- 简介
- 系统要求
- 下载软件
- 虚拟机设置
- Guest操作系统安装
- 检查互联网访问权限
- Oracle Clusterware安装的前提条件。第 1 部分
- 安装Guest补丁
- Oracle Clusterware安装的前提条件。第 2 部分
- 网络设置
- 下载的 Oracle 安装文件
- 克隆虚拟机
- 创建共享的磁盘
- Grid安装步骤
- 安装数据库
- 检查 RAC 的状态
- 制作 RAC 数据库的镜像
- 从已保存的文件还原 RAC
- 安装后的优化
- 集群和数据库监测
简介
如果你想要通过 Oracle RAC 安装的所有步骤,您的便携式计算机或台式计算机应该有 8 GB 或更多的内存,这样按本文中所示的内容使用 Oracle VirtualBox是完全可行的。您可以得到一个正常运行的 RAC 系统并创建一个小的测试数据库。这个系统并不能考虑用在生产环境中。它只能用来熟悉安装和使用 RAC 和测试各种数据库管理操作。本文还介绍如何保存 RAC的镜像以便于在几分钟之内恢复您的环境。这样即使您的测试系统出了问题也很容易恢复。
本文使用 Oracle Linux 6.3 和 Oracle 11g 版本 2,11.2.0.3 的 64 位版本。使用 VirtualBox 您可以在单个服务器上运行多个虚拟机 (Vm),允许您在一台机器上运行两个 RAC 节点。此外,它允许您设置共享的虚拟磁盘。配置完成的系统包括两个Guest操作系统、 Oracle Grid(Clusterware + ASM) 和两个数据库实例。所需的磁盘空间约 32 GB,如果您想要保存RAC的镜像则需要另外 12 GB 的磁盘空间。
这篇文章最初是由Tim Hall在他的博客中发表的内容 "Oracle Database 11g Release 2 RAC On Linux Using VirtualBox"所启发的。然后经过几乎完全的订正和返工,现在这篇文章与原文几乎没什么相似之处了。
注意:在本文撰写时,Oracle 数据库 11gR2 (11.2.0.3) Linux 64位是通过 Oracle Support网站向正式用户提供的。像以往一样,甲骨文公司很快会向一般公众发布。所以我想目前使用最新和最好的版本是最佳的选择,因为他们修正了许多 bug。但现在是 2012年年底 11.2.0.3 对一般公众仍然是不可用的,但是此版本确实比任何旧版本来说都要好。对此造成的不便表示歉意,并建议寻找任何可能的方式来获取此版本。花费时间和精力对付那些已经修正的bug实在没有任何意义。
到目前为止,11.2.0.3 已经可以在 Oracle Support网站上下载,在"修补程序和更新",然后选择最新 “Patchsets"、"Oracle 数据库",然后选择"Linux x 86-64",然后选择选择"11.2.0.3.0"。此修补程序集的编号是 10404530,你可能要跳转到下载页面使用此编号。此修补程序集是完整的 Oracle 数据库软件的安装包。这意味着您不需要安装 Oracle 数据库 11gR2 (11.2.0.3) 之前的版本。对于安装 RAC 数据库,您将只需要 3 个文件:
Oracle Database (includes Oracle Database and Oracle RAC), part 1:
p10404530_112030_Linux-x86-64_1of7.zip 1.3G
Oracle Database (includes Oracle Database and Oracle RAC), part 2:
p10404530_112030_Linux-x86-64_2of7.zip 1.1G
Oracle Grid Infrastructure (includes Oracle ASM, Oracle Clusterware):
p10404530_112030_Linux-x86-64_3of7.zip 933M
系统要求
- 8 GB 的 RAM ;
- 32 GB 的可用硬盘空间 ;
- 此过程是在 64 位 Windows 7 上进行测试。使用 VirtualBox 上的其他主机操作系统应该也没有问题。请让我知道在其他操作系统上是否成功或有任何问题 ;
下载软件
下载以下软件。
- Oracle Linux;
- VirtualBox(必须是版本 4.1.14 或更高版本) ;
- Oracle 11gR2 (11.2) (64 位)。请参考上述简介一节的有关 Oracle 版本的说明。
虚拟机安装设置
在本练习中,我们使用 64 位 Windows 7 上的VirtualBox。
现在,我们必须定义两个虚拟 RAC 节点。我们可以通过定义一个 VM,然后克隆以节省安装时间。
启动 VirtualBox,然后单击工具栏上的"新建"按钮。单击虚拟机向导的第一页上的"下一步"按钮。
输入名称"rac1","Linux"操作系统和版本"Oracle (64 位)",,然后单击"下一步"按钮:
如果您的主机系统中有16GB的内存,Base Memory设置为3072MB,否则按如下屏幕快照所示使用2048MB,然后单击"下一步"按钮:
接受默认的选项来创建新的虚拟硬盘,单击"下一步"按钮:
在虚拟磁盘创建向导的欢迎屏幕上接受默认的 VDI 类型并单击"下一步"按钮:
通过单击"下一步"按钮,接受默认的"动态分配"选项:
接受默认位置并设置大小为"16 G"并单击"下一步"按钮:
在创建新虚拟磁盘摘要屏幕上按"创建"按钮:
在创建新虚拟机摘要屏幕上按"创建"按钮:
"Rac1"VM 将出现在左侧窗格中。单击右侧的"网络"链接:
请确保启用"适配器 1",附加到"桥接适配器"
然后单击"适配器 2",确保"适配器 2"已启用,并附加到"内部网络"选项卡上。然后按"确定"按钮:
(可选) 您可以禁用"音频"链接的音频卡。这可能会节省一定数量的空间,避免潜在的与音频相关的设置问题。此外如果您的系统具有 4 个 CPU 内核或更多,可以考虑将 2 个 Cpu 分配给虚拟机。您可以在"系统"设置中更改。
现在虚拟机已经配置好了,我们可以开始Guest操作系统安装。
Guest操作系统安装
请注意在安装过程中鼠标指针会一直保持在 VM 区域内。若要退出,请按键盘上的右控制键。
将 Oracle Linux 6.3 (或更高版本) DVD 放在 DVD 驱动器中,并跳下两个屏幕截图。如果您没有 DVD、 下载.iso 映像并将它放在虚拟 DVD中。选择 VirtualBox 管理器屏幕的右手窗格上的"存储"链接。然后选择"存储树"一节中的 DVD 驱动器:
在"属性"一节中的 DVD 磁盘图标上单击,然后选择 DVD.iso 文件。请注意在存储树中所示的文件名称。然后按“确定":
通过单击工具栏上的"开始"按钮启动虚拟机。由此产生的控制台窗口将包含 Oracle Linux 启动屏幕。选择"安装或升级现有系统":
不要执行媒体测试。选择"跳过"按钮:
通过单击工具栏上的"开始"按钮启动虚拟机。由此产生的控制台窗口将包含 Oracle Linux 启动屏幕。
继续通过 Oracle Linux 安装所需的正常步骤。在随后的三个屏幕上选择语言,键盘和基本存储设备类型。确认要丢弃任何数据。
设置"主机名"为 rac1.localdomain,按"配置网络":
在网络连接屏幕中选择"系统 eth0"界面,按"编辑":
选中"自动连接"复选框。选择"IPv4 设置"选项卡以确保方法设置为"自动 (DHCP)"。选择"IPv6 设置"选项卡以确保该方法设置为"忽略"。按下"应用"按钮:
关闭网络连接屏幕并继续到下一个安装程序屏幕。选择时区 ;root密码: oracle ;
选择"使用所有空间"类型的安装并选中"审查和修改分区布局":
编辑lv_swap 设备的大小为1500 MB然后编辑 lv_root为 14380 MB。按"下一步":
通过警告确认并创建分区。在启动加载程序屏幕中保持默认设置。
在软件类型安装屏幕中选择"数据库服务器",现在选中"自定义"按钮。按下一步:
在自定义屏幕中,选择数据库,然后取消选中所有项目 ;请选择台式机并选中"桌面"和"图形化管理工具";然后按下一步,并完成安装。重新启动。
当它启动后,会有更多的设置要完成。不要创建 oracle 帐户,这将在以后完成。祝贺你 !已安装完成 Linux。
检查互联网访问权限
我们将需要访问 Internet,因为要在线安装附加的软件包。打开终端并尝试 ping 任何互联网网站,例如:
ping yahoo.com
如果 ping 不工作,解决该问题,使用 'ifconfig' 命令,并且在网络连接中进行更改 (Linux 桌面主菜单 |系统 |首选项 |网络连接)。如果您在网络连接中进行更改,重新启动界面,通过重新启动 VM 或运行这两个命令:
# ifdown eth0
# ifup eth0
然后再次检查 ping。
Oracle Clusterware安装的前提条件。第 1 部分
这一节中的所有操作必须由 root 用户执行。
通过安装 'oracle-rdbms-server-11gR2-preinstall' 包运行自动安装程序。此包执行先决条件,包括内核参数变化和 Linux oracle 帐户的创建:
# yum install oracle-rdbms-server-11gR2-preinstall
注意。也许你现在不能粘贴并复制此命令。所以您将必须手动键入它。我们会稍后通过安装Guest补丁修复此问题。现在只需键入这些命令。
安装 ASMLib:
# yum install oracleasm
# yum install oracleasm-support
运行此命令配置 ASMLib ,并回答问题:
# 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]:
Writing Oracle ASM library driver configuration: done
#
安装Guest补丁
Guest补丁是可选的但是强烈建议。Guest补丁允许鼠标更好地集成,支持和剪贴板双向复制。另一个重要功能是使主机操作系统中的共享文件夹可以被Guest访问。本文档的其余假定Guest补丁已经安装了。
若要安装Guest补丁,重新启动刚刚创建的虚拟机,以 root 用户身份登录。然后在窗口菜单中选择设备 |安装Guest补丁。选择下载直到您看到 DVD 自动运行屏幕:
按"确定",然后"运行"以开始安装。
注意。安装可能会因为缺少kernel-uek-devel开发包而失败,其提供 'yum' 命令来安装此程序包。运行此命令-这就是为什么我们需要互联网接入。此外安装另一个程序包: 'yum install gcc'。然后重新安装Guest补丁:通过双击桌面上的 VBOXADDITIONS DVD 图标并单击"打开自动运行提示"按钮,。
重新启动机器。现在您应该觉得VirtualBox 更好用了 !
Oracle Clusterware安装的前提条件。第 2 部分
创建 Oracle 软件的安装目录。
mkdir -p /u01
chown -R oracle:oinstall /u01
chmod -R 775 /u01/
将Oracle 帐户添加到 dba 和 vboxsf 组。Vboxsf 组由 VirtualBox Guest 补丁创建将允许 oracle 用户访问在主机操作系统中的文件夹:
# usermod -G dba,vboxsf oracle
重置oracle 用户密码为oracle:
# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
#
通过编辑"/etc/selinux/config"的文件,确保 SELINUX 标志如下所示设置,禁用 linux 的安全。
SELINUX=disabled
配置NTP,或者确保不对其进行配置,以便 Oracle Clusterware时间同步服务 (ctssd) 可以同步RAC 节点的时间。在以下的例子中,我们将取消配置 NTP。
# service ntpd stop
Shutting down ntpd: [FAILED]
# chkconfig ntpd off
# mv /etc/ntp.conf /etc/ntp.conf.orig
# rm /var/run/ntpd.pid
清理YUM资料库:
# yum clean all
检查文件系统的使用情况,已使用约2.8 GB空间:
# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_rac1-lv_root
14493616 2865472 10891888 21% /
tmpfs 1027556 272 1027284 1% /dev/shm
/dev/sda1 495844 77056 393188 17% /boot
#
网络设置
这一节中的所有操作必须由 root 用户执行。
下面是 TCP公共和私有网络中使用的地址。如果您需要使用另一个地址,请作出相应的调整,记住这些调整要与整个文章的其余部分保持一致。请注意 192.168.56.0 的子网是由 VirtualBox 用作主机内的主机操作系统和虚拟机网络连接的的默认配置。VirtualBox 也在此子网地址上运行 DHCP 服务器,保留范围 100-254 。所以使用低于 100 的静态地址是安全的。您可以验证这些设置: 主菜单 |文件 |首选项 |网络,然后检查主机网络的属性。我们使用此子网作为 RAC 的公共网络。
编辑"/etc/hosts"文件,追加以下信息:
# Private
192.168.10.1 rac1-priv.localdomain rac1-priv
192.168.10.2 rac2-priv.localdomain rac2-priv
# Public
192.168.56.71 rac1.localdomain rac1
192.168.56.72 rac2.localdomain rac2
# Virtual
192.168.56.81 rac1-vip.localdomain rac1-vip
192.168.56.82 rac2-vip.localdomain rac2-vip
# SCAN
192.168.56.91 rac-scan.localdomain rac-scan
192.168.56.92 rac-scan.localdomain rac-scan
192.168.56.93 rac-scan.localdomain rac-scan
注意。扫描地址不应真的在主机文件中定义。而是应该使用 DNS 循环获取以上3个地址。此安装中我们做一些妥协,使用主机文件。如果您使用 DNS,需要注释掉以上3个地址。
打开网络连接工具: Linux 桌面主菜单 |系统 |首选项 |网络连接。选择"系统 eth0"接口,它将用于公共网络,并按"编辑":
请确保"自动连接"被选中。"IPv6 设置"选项卡中,确保该方法设置为"忽略"。选择"IPv4 设置"选项卡 ;方法更改为"手动";按"添加"并填写地址: 192.168.56.71 ;子网掩码: 255.255.255.0 ;网关: 0.0.0.0。按下"应用",然后完成:
在网络连接屏幕选择"系统 eth1"界面,这将用于私有网络,请按"编辑"。然后选中复选框"自动连接"。"IPv6 设置"选项卡中,确保该方法设置为"忽略"。选择"IPv4 设置"选项卡 ;方法更改为"手动";按"添加"并填写地址: 192.168.10.1 ;子网掩码: 255.255.255.0 ;网关: 0.0.0.0。按下"应用",然后完成:
禁用防火墙: Linux 主菜单 |系统 |管理 |防火墙。单击"禁用"的图标,然后"应用"。
下载Oracle安装文件
有两个选项来处理 Oracle 下载文件:
- 下载或将文件传输到 VM 并解压缩 ;
- 下载并解压缩在主机 OS 中,然后使文件夹共享以便虚拟机访问 ;
显然第二个选项好得多,因为它不使用Guest虚拟机的虚拟磁盘,并将导致较小的最终镜像。此外可以在另一个安装练习中容易地重用安装文件。在本节中,我们要去安装 VirtualBox 共享文件夹。
假定您已经下载 oracle 安装文件并解压缩到"grid"和"database"文件夹。在我们的示例中,这个文件夹是"C:\TEMP\oracle_sw"。
C:\TEMP\oracle_sw>dir -l
total 0
drwx------+ 1 sromanenko Domain Users 0 Aug 5 18:10 database
drwx------+ 1 sromanenko Domain Users 0 Aug 5 03:08 grid
关闭虚拟机。在 VirtualBox 管理器单击右侧窗格中的"共享文件夹"链接上。按下添加共享的文件夹"加号"图标。然后选择路径位置 oracle_sw,并选中"只读"和"自动装载":
按"确定"以保存此设置。现在共享文件夹应如以下所示:
作为 oracle 用户,重新启动 VM 并登录。将目录更改到"/media/sf_oracle_sw"-这是 VirtualBox 映射主机操作系统共享文件夹的位置。请注意 VirtualBox 的文件夹名称添加前缀"sf_"。列出 ls 文件夹的内容:
$ cd /media/sf_oracle_sw
$ ls
database grid
$
有一个包 'cvuqdisk' 应在安装之前安装。在Oracle grid/rpm 目录作为 root 用户执行:
$ su root
Password:
# cd /media/sf_oracle_sw/grid/rpm
# rpm -Uvh cvuqdisk*
克隆虚拟机
关闭虚拟机。
在 VirtualBox 中的管理器,网络适配器 1,将附加到它的网络类型从"桥接适配器"更改到"仅主机适配器"。
注意。如果您不需要从主机 OS访问 RAC 数据库,您可以使用"内部网络"类型的适配器。这两个案件中所有其他虚拟机都可以访问RAC。(可选) 如果您在将来需要 Internet 访问则可以在 RAC 安装之后添加,请参阅添加互联网访问。有关网络适配器类型的的详细信息,请参阅 VirtualBox 的文档中"虚拟网络"一章。
VirtualBox 管理器窗口中启动克隆向导: 主菜单 |机器 |克隆。为新机的名称键入"rac2"。请确保未选中"重新初始化所有网卡的 MAC 地址"。然后按"下一步":
保持默认的"完全复制"选项处于选定状态,然后按"克隆":
作为 root 用户启动克隆的 VM rac2 并登录。然后通过编辑文件来更改主机名"/etc/sysconfig/network",主机名参数:
HOSTNAME=rac2.localdomain
启动"网络连接"工具 (主菜单 |系统 |首选项 |网络连接)。编辑接口 eth0 和 eth1 并相应地设置 IPv4 地址 192.168.56.72 和 192.168.10.2 。
重新启动系统。
现在我们需要更改这两个接口的 MAC 地址。MAC 地址必须唯一。我们需要选择两个未使用地址,并将它们设置为 eth0 和 eth1。最简单的方法是更改地址的最后两个字符。我们要使用 '00' 对应eth0 和 ' 01'对应 eth1。请确保这些地址不会撞到 rac1 的 MAC 地址。编辑"有线"选项卡中的 MAC 地址。下面的屏幕快照显示了设置 MAC 地址的位置。别忘了更改这两个接口的 MAC 地址。请注意您的安装程序将有一组不同的 MAC 地址,因为它们是VirtualBox随机生成的 。
写下这两个接口的新 MAC 地址。保存新的设置,按下"应用"按钮,然后关闭机器。关机后,返回到 VirtualBox 管理器中,选择 rac2 VM 并编辑"网络"设置。对 MAC 地址进行相同的更改。别忘了更改两个适配器的 MAC 地址。
启动这两个虚拟机,并检查他们可以使用公用和专用网络 ping 对方。例如,在 rac1:
$ ping rac2
$ ping rac2-priv
如果您有问题,请使用 'ifconfig' 命令来检查配置,然后使用"网络连接"工具更正此问题。
创建共享磁盘
关闭这两个虚拟机。我们需要创建一个新的虚拟磁盘,将其属性更改为 Shareable,并添加到这两个虚拟机。在当前版本的 VirtualBox,在 GUI 中创建新的磁盘的唯一方法是通过虚拟机设置中的"存储"页。在 rac1 或 rac2 中点击”存储"链接,选择"SATA 控制器",然后单击"添加硬盘"图标。如果不确定使用哪个图标,则可以通过弹出式菜单完成这个动作,"SATA 控制器"上单击鼠标右键并选择"添加硬盘"。
按"创建新的磁盘":
在虚拟磁盘创建向导的欢迎屏幕上接受默认的 VDI 类型并单击"下一步"按钮:
选择"固定大小"选项,按"下一步"按钮:
更改名称和此磁盘的位置。您可以保留此文件的默认位置-一个选定的虚拟机的文件夹。因为此磁盘是共享的所以最好把它放到父目录中。因此,将其放置在"...\VirtualBox VMs",而不是"...\VirtualBox VMs\rac1"目录。设置为"2400 MB"大小-当所有安装完成时将产生约 400 MB 的 ASM可用空间。如果您需要更多的空间,您可以选择更大的大小。不管怎样在所有安装结束后您可以向 ASM 组中添加更多的共享磁盘。
创建新的磁盘,该磁盘应该已经连接到虚拟机。
选择此新磁盘。您将看到该磁盘的类型是"正常"的信息。您看不到以前的对话框窗口中的创建新的磁盘为"共享"的选项。一旦挂载不能更改此属性,这是图形用户界面的限制。所以我们要使用变通方法: 单击"删除附件"图标。这样 VM 返回到以前的存储配置。关闭"存储"页。
现在有什么不同-有一个注册到 VirtualBox 的新磁盘。我们将使用虚拟介质管理器 (主菜单 |文件 |虚拟介质管理器) 更改其属性。在虚拟介质管理器中选择此新的磁盘:
单击"修改"图标并选择"Shareable":
使用"存储"页将此现有磁盘附加到每个 VM 。别忘了附加磁盘之前选择正确的控制器,并使用"选择现有的磁盘"选项。
两个虚拟机在"存储"部分的末尾看起来应该是这样:
启动任一虚拟机,以 root 用户身份登录。通过发出以下命令可以看到当前的磁盘。
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb
#
使用"fdisk"命令对新磁盘"sdb"进行分区。
# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xd724aa83.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-305, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-305, default 305):
Using default value 305
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#
答案依次是"n","p","1","返回"、"回归"和"w"。
一旦新的磁盘已经分区,可以通过重复前面的"ls"命令看到结果。
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1
#
在ASMLib标记新的共享磁盘,如下所示。
# oracleasm createdisk DISK1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
#
运行"scandisks"命令来刷新 ASMLib 磁盘配置。
# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
#
使用"listdisks"命令我们可以看到该磁盘现在对ASM是可见的。
# oracleasm listdisks
DISK1
#
启动另一个虚拟机,以 root 用户身份登录。使用"listdisks"命令检查共享磁盘对ASM是可见的。
# oracleasm listdisks
DISK1
#
虚拟机和共享磁盘现在已经配置完成 !
安装的网格基础设施
请确保"rac1"和"rac2"虚拟机启动,然后登录到"rac1"并切换到 oracle 用户,启动 Oracle 安装程序。
$ cd /media/sf_oracle_sw/grid
$ ./runInstaller
选择"跳过软件更新"选项,按"下一步":
选择"安装和配置网格基础设施为集群"选项,然后按"下一步"按钮。
选择"高级安装"选项,然后单击"下一步"按钮。
在"网格插信息"屏幕上,集群名称更改为"rac-cluster",SCAN Name改为"rac-scan.localdomain",请取消选中"配置 GNS"框,然后按"下一步"按钮。
在"集群节点配置"屏幕上,单击"添加"按钮。
在集群中,输入第二个节点的详细信息,然后单击"确定"按钮。
单击"SSH 连接..."按钮,输入"oracle"用户名和密码。单击"设置"按钮配置 SSH 连接,完成之后单击"测试"按钮。然后按"下一步"。
在"指定网络接口"屏幕正确指定公共和私有网络。按"下一步"按钮。
"存储选项信息"屏幕上保持 Oracle ASM 选项处于选定状态,然后按"下一步"。
在"创建 ASM 磁盘组"屏幕上"更改发现路径"按钮单击:
然后输入"/dev/oracleasm/disks",然后按"确定":
保持"磁盘组名称"不变。选择"外部"冗余选项。在"添加磁盘"部分选中"/dev/oracleasm/disks/DISK1"。完成后,按"下一步"。
在"指定 ASM 密码"屏幕上选择"为这些帐户使用相同的密码"选项并键入"oracle"为密码,然后按"下一步"。忽略有关密码弱点的警告。
"故障隔离支持"保持默认值,然后按"下一步"。
"特权操作系统组"保留默认设置,然后按"下一步"。
保持"指定安装位置"建议的路径不变并按下"下一步"按钮。
保持"创建库存"建议的路径不变并按下"下一步"按钮。
在下一个屏幕上会显示先决条件检查的结果。您应该看到两个警告,一次失败。无法查找 DNS 中SCAN的失败是正常的。选中"全部忽略"框并按"下一步"。
在摘要屏幕上,按下"安装"。
安装程序运行中,请稍候...
出现提示时,在每个节点上运行配置脚本。
作为root用户执行脚本,首先在节点 rac1,然后在 rac2。
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/11.2.0/grid/root.sh
#
运行 root.sh时您将被要求输入bin 目录的位置,在响应中按 enter 键。Root.sh正确的输出应该是这样"Configure Oracle Grid Infrastructure for a Cluster ... succeeded"。如果脚本失败,纠正问题,并重新启动它。
一旦脚本已完成,返回到"执行配置脚本"屏幕, 单击"确定"按钮,等待配置助手完成。
验证阶段有关SCAN的错误是正常的:
下面是日志文件中的部分内容:
INFO: Checking Single Client Access Name (SCAN)...
INFO: Checking TCP connectivity to SCAN Listeners...
INFO: TCP connectivity to SCAN Listeners exists on all cluster nodes
INFO: Checking name resolution setup for "rac-scan.localdomain"...
INFO: ERROR:
INFO: PRVG-1101 : SCAN name "rac-scan.localdomain" failed to resolve
INFO: ERROR:
INFO: PRVF-4657 : Name resolution setup check for "rac-scan.localdomain" (IP address: 192.168.56.71) failed
INFO: ERROR:
INFO: PRVF-4657 : Name resolution setup check for "rac-scan.localdomain" (IP address: 192.168.56.72) failed
INFO: ERROR:
INFO: PRVF-4657 : Name resolution setup check for "rac-scan.localdomain" (IP address: 192.168.56.73) failed
INFO: ERROR:
INFO: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "rac-scan.localdomain"
INFO: Verification of SCAN VIP and Listener setup failed
如果这是唯一的错误,则可以安全地忽略这个问题,并通过单击"下一步"按钮继续。在下一个屏幕上关闭配置助手。
检查运行集群的状态。在节点 rac1 上作为 root 用户执行:
# . oraenv
ORACLE_SID = [oracle] ? +ASM1
The Oracle base has been set to /u01/app/oracle
# crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.LISTENER.lsnr
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.asm
ONLINE ONLINE rac1 Started
ONLINE ONLINE rac2 Started
ora.gsd
OFFLINE OFFLINE rac1
OFFLINE OFFLINE rac2
ora.net1.network
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.ons
ONLINE ONLINE rac1
ONLINE ONLINE rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac2
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac1
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac1
ora.cvu
1 ONLINE ONLINE rac1
ora.oc4j
1 ONLINE ONLINE rac1
ora.rac1.vip
1 ONLINE ONLINE rac1
ora.rac2.vip
1 ONLINE ONLINE rac2
ora.scan1.vip
1 ONLINE ONLINE rac2
ora.scan2.vip
1 ONLINE ONLINE rac1
ora.scan3.vip
1 ONLINE ONLINE rac1
#
您应该看到两个节点上运行的各种集群组件。网格基础设施安装现已完成 !
检查文件系统的使用,大约 6.5 GB:
$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_rac1-lv_root
14493616 6462704 7294656 47% /
tmpfs 1027552 204708 822844 20% /dev/shm
/dev/sda1 495844 77056 393188 17% /boot
$
安装数据库软件
请确保"rac1"和"rac2"的虚拟机启动,然后登录到"rac1"并切换到 oracle 用户,启动 Oracle 安装程序。
$ cd /media/sf_oracle_sw/database
$ ./runInstaller
取消选中"我希望接收安全更新......"复选框,并按"下一步"按钮:
选中"跳过软件更新"复选框,然后按"下一步"按钮:
接受"创建和配置数据库"选项,然后按"下一步"按钮:
接受"服务器类"选项,然后按"下一步"按钮:
请确保选择"Oracle 真正应用程序集群数据库安装"并选定两个节点,然后按"下一步"按钮。
选择"高级安装"选项,然后按"下一步"按钮:
下一个屏幕上选择语言,然后按"下一步"按钮。
接受"企业版"选项,然后按"下一步"按钮:
接受默认安装位置,按"下一步"按钮:
接受"一般用途/事务处理"选项,然后按"下一步"按钮:
您可以保留默认"orcl"数据库名称或自己定义。我们使用"ractp":
在"配置选项"屏幕上减少已分配的内存量为 750 MB-这将避免过多的内存交换,并使运行更顺畅。您可以自由地浏览其他选项卡并根据您的需要设置。
接受默认管理选项,然后按"下一步"按钮:
接受"Oracle 自动存储管理"选项并输入"oracle"密码,然后按"下一步"按钮:
接受默认"不启用自动的备份"选项,然后按"下一步"按钮:
查看数据库使用的 ASM 磁盘组的名称,然后按"下一步"按钮:
选择"所有帐户使用相同的密码"选项,键入"oracle"作为密码,然后按"下一步"按钮:
选择"oinstall"组作为数据库管理员和数据库操作员组,然后按"下一步"按钮:
等待先决条件检查完成。如果有任何问题,或者修复它们,或选中"全部忽略"复选框并单击"下一步"按钮。
查看摘要信息是否正确,单击"安装"按钮。
安装进行中。
软件安装完成后将自动启动数据库配置助手 (DBCA)。
一旦数据库配置助手 (DBCA) 完成,单击"确定"按钮。
出现提示时,在每个节点上运行配置脚本。当已在每个节点上运行脚本后,请单击"确定"按钮。
在两个节点以root用户的身份执行脚本:
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
#
单击"关闭"按钮退出安装程序。
RAC 数据库创建现已完成 !
检查 RAC 的状态
有几种方法来检查 RAC 的状态。srvctl
实用程序显示当前配置和 RAC 数据库的状态。
$ . oraenv
ORACLE_SID = [oracle] ? ractp
The Oracle base has been set to /u01/app/oracle
$ srvctl config database -d ractp
Database unique name: ractp
Database name: ractp
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/ractp/spfileractp.ora
Domain: localdomain
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: ractp
Database instances: ractp1,ractp2
Disk Groups: DATA
Mount point paths:
Services:
Type: RAC
Database is administrator managed
$ srvctl status database -d ractp
Instance ractp1 is running on node rac1
Instance ractp2 is running on node rac2
$
V$ACTIVE_INSTANCES
视图还可以显示实例的当前状态。
$ export ORACLE_SID=ractp1
[oracle@rac1 Desktop]$ sqlplus / as sysdba
SELECT inst_name FROM v$active_instances;
INST_NAME
--------------------------------------------------------------------------------
rac1.localdomain:ractp1
rac2.localdomain:ractp2
exit
$
创建RAC数据库的镜像
我们可以在任何时间保存虚拟机的镜像,并在需要的时候还原。在这里我们要保存新创建的 Oracle RAC 系统以便我们可以在同一系统甚至另外一个系统在短短的几分钟内还原他们 !
VM 导出是一个简单的过程,如果不处理共享磁盘保存 RAC 镜像将是一项容易的任务。我认为最简单的方法是从这两个节点卸载共享磁盘并分别考虑这三个部分 (两个独立的虚拟机和一个共享磁盘)。最终我们会有三个文件: 为虚拟机使用的两个文件和代表共享磁盘的文件。这三个文件,可以进一步由您最喜欢的归档工具存储并压缩成一个文件。完成导出后,共享磁盘可以轻松地挂载回节点。VM导入回 VirtualBox 以及共享磁盘的导入也同样如此 — — 作为一个额外的步骤附加到导入的虚拟机。让我们来执行所有这些操作。
RAC的干净关闭
但是首先,我们需要完整的关闭服务器,因为我们想保存它们的工作状态。去关闭数据库,作为 oracle 用户在任何节点上执行:
$ . oraenv
ORACLE_SID = [oracle] ? ractp
The Oracle base has been set to /u01/app/oracle
$ srvctl stop database -d ractp
$
关闭第一个节点上的集群。作为 root 用户执行:
# . oraenv
ORACLE_SID = [ractp1] ? +ASM1
The Oracle base remains unchanged with value /u01/app/oracle
# crsctl stop crs
...
CRS-4133: Oracle High Availability Services has been stopped.
#
关闭第二个节点上的集群。作为 root 用户执行:
# . oraenv
ORACLE_SID = [ractp1] ? +ASM2
The Oracle base remains unchanged with value /u01/app/oracle
# crsctl stop crs
...
CRS-4133: Oracle High Availability Services has been stopped.
#
关闭这两个虚拟机。等待,直到所有虚拟机窗口关闭。
卸载共享磁盘并制作一份拷贝
在 VirtualBox 管理器中打开虚拟介质管理器: 主菜单 |文件 |虚拟介质管理器。然后选择 RAC (rac_shared_disk1.vdi) 所用的磁盘。请注意此磁盘显示为附加到虚拟机 rac1 和 rac2 :
单击"释放"图标,然后在弹出的窗口中确认。注意此磁盘现在显示为"未连接"。单击"复制"以启动磁盘复制向导。
接受虚拟磁盘复制,然后按"下一步"。
接受 VDI 虚拟磁盘的文件类型,然后按"下一步"。
选择"固定大小",然后按"下一步"。
在下一个屏幕上,您可以设置新文件的位置和名称。完成后,按"下一步"。
摘要屏幕上查看详细信息,并按"复制"以完成复制。复制完成后,请关闭介质管理器。
注意。不要试图复制.vdi 文件,因为该副本将保留相同磁盘的 UID 而VirtualBox 将拒绝使用它,因为已经有这个磁盘存在。当通过虚拟介质管理器复制时将自动分配新的 UID。
导出虚拟机
VirtualBox 管理器中选择虚拟机,然后调用导出向导: 主菜单 |文件 |导出装置。导出过程像一般保存文件一样简单。导出这两个虚拟机。
现在您应该有可以进一步压缩到约 12 GB 大小单个文件的 3 个文件。
将共享磁盘重新连接到原始 RAC 安装
通过"存储"页重新连接共享磁盘到 rac1 和 rac2 VM 以还原我们当前的工作 RAC 设置。别忘了附加磁盘之前选择正确的控制器:
按"添加硬盘"图标并使用"选择现有磁盘"rac_shared_disk1.vdi
。一旦共享磁盘连接到两个 Vm,RAC 就准备好运行了。
从已保存的文件还原 RAC
在这一节我们将通过导入已保存的文件创建第二个 RAC 系统。不要同时运行两个 RAC,因为它们将具有相同网络属性。
打开装置导入向导: 主菜单 |文件 |导入装置。选择该文件,按"下一步":
导入设置中我们可以更改新 VM 的不同属性。我们这里要保持设置不变。这里我们注意到,磁盘将要 以不同于原始的VDI 格式的VMDK 格式导入。
等待,直到 VM 导入:
导入这两个虚拟机并将共享磁盘rac_shared_disk1_copy.vdi
文件复制到父目录 (虚拟 Vm)。此磁盘可以连接到两台计算机,但不幸的是当前版本 (4.1.18) 的 VirtualBox 不保留制作副本的磁盘类型。将此磁盘附加到任一导入虚拟机,然后选择它并查看磁盘信息:
在4.1.18 VirtualBox,复制的磁盘是"正常"类型。如果您有更新的版本并且类型是"Shareable"那么此 bug 已经修复,您可以继续操作另一个虚拟机。如果不是,de-attach 磁盘,然后转到虚拟介质管理器并把磁盘类型更改为"Shareable",然后返回到虚拟机并挂载共享磁盘。
启动新的虚拟机。集群件应自动启动。您将需要启动数据库。作为 oracle 用户登录并执行:
$ . oraenv
ORACLE_SID = [oracle] ? ractp
The Oracle base has been set to /u01/app/oracle
$ srvctl start database -d ractp
$
RAC 现在应该已经运行 !
安装后的优化 (可选)
系统运行一段时间后, ologgerd
进程可能消耗过多的 CPU 资源。可以通过启动top检查
,然后按 c 键 (cmd 名称/行):
Ologgerd 是 Oracle 集群健康监视器的一部分,由 Oracle 支持作为 RAC 问题调试的工具。如果 ologgerd 进程占用大量的 CPU,您可以停止它,在两个节点上执行:
# crsctl stop resource ora.crf -init
如果你想要永久禁用 ologgerd,那么执行:
# crsctl delete resource ora.crf -init
.
添加互联网访问 (可选)
关闭虚拟机。在设置的网络部分中,选择适配器 3,请确保它已启用并附加到"桥接适配器"。重新启动 VM,并检查您可以在终端窗口中 ping 外面的站点:
ping yahoo.com
在另一个节点重复所有这些动作。
请注意,使用桥接适配器使您的虚拟机在同一局域网络内可以被访问。因此网络配置规则同样适用于虚拟机。默认情况下,虚拟机将使用您的本地网络 DHCP 获取 IP 地址。(可选) 您可以指定静态地址。即使您的 Vm 将可以访问 LAN 上的任何计算机,Oracle 侦听器未对这些 IP 地址进行侦听。如果需要,可以添加这些 IPs到侦听器,但这是超出了本文的范围。
集群组件和数据库监测
您可以通过发出此命令检查集群的状态:
# crsctl status resource -t
但是使用工具更容易,在预定义的时间间隔上运行相同的命令,将输出组织到表格式窗体。为此,我们要使用Lab128 免费软件免费工具。安装很简单: 将文件解压缩到一个文件夹中,然后运行 lab128fw.exe 可执行文件。
因为我们将在主机操作系统 (Windows) 中运行监测工具,RAC 应该可以访问主机操作系统。如果你已经如上文所述完成配置,您应该在两个 Vm 上都将"适配器 1“附加到"仅主机适配器”并且您应该能够 ping 这两个节点:
ping 192.168.56.71
ping 192.168.56.72
将这些 IP 地址添加到 %SystemRoot%\System32\drivers\etc\hosts 文件也会有帮助:
#ORACLE SCAN LISTENER
192.168.56.91 rac-scan.localdomain rac-scan
192.168.56.92 rac-scan.localdomain rac-scan
192.168.56.93 rac-scan.localdomain rac-scan
#rac1 node
192.168.56.71 rac1
192.168.56.72 rac2
启动 Lab128,然后通过 SSH 连接到一个节点: 主菜单 |集群组件 |集群组件命令,然后输入用户: oracle ;密码: oracle ;主机名/IP: 192.168.56.71.(可选) 给此连接的"别名名称",按"存储"按钮保存它。然后按"连接"。
集群组件命令窗口在表格视图中提供集群组件的状态。左边的一些列有组件/资源类型、 名称、 目标和联机的节点数。其余的列向右代表集群中的节点上组件的状态,在该节点上的值。此视图中可以根据定义的速率自动刷新。可以筛选出不重要的组件以自定义表格格式查看内容。如果您需要有关此窗口的详细信息,请按 F1 键。
表格视图可通过弹出式菜单管理组件。在节点区域的单元格上单击鼠标右键。根据所选的组件和节点的上下文,菜单中将提供各种不同的命令,请参阅上面的图片。
此外,您可以针对特定的数据库实例启动 Lab128 监视器,许多连接详细信息会自动补全。登录窗口的示例如下所示。只需在用户输入: sys ;密码: oracle。建议在"别名名称"框中保存此监视器 (我们命名为它 RACTP1)的名称。这会在下一次连接到同一实例时节省我们的时间。然后按"连接"按钮,打开 Lab128 监视器:
你可以通过此链接阅读更多有关数据库监测与 Lab128 使用的内容Lab128 世界欢迎您.
就是这个 !请发送您的反馈给: