跳转至内容

RAC攻击 - Oracle 集群数据库在家/RAC攻击12c/打印版

来自Wikibooks,开放世界的开放书籍
RAC攻击 - Oracle 12c 集群数据库在家

为了更好地理解RAC安装,此图片说明了按照本书操作时实现的架构。

RAC Attack 12c architecture

为了安装一个功能齐全的RAC,需要以下IP地址

  • 2个公网IP,每个节点一个,用于主操作系统网络接口
  • 2个公网IP,每个节点一个,用于虚拟IP
  • 3个公网IP,每个SCAN监听器一个
  • 2个私网IP,每个节点一个,用于集群私有互连

在本书中,公网地址属于网络192.168.78.0/24,私网地址属于网络172.16.100.0/24

技术选择

[编辑 | 编辑源代码]

本书旨在提供尽可能简单的说明,以便在您的笔记本电脑上进行基本的RAC安装。这里没有涵盖许多高级拓扑和主题。如果您对技术可能性感到好奇,只需询问志愿者,他/她将很乐意向您解释更多内容。


硬件需求

[编辑 | 编辑源代码]

本手册将引导您完成在您自己的笔记本电脑或台式电脑上创建双节点Oracle RAC集群的过程。

硬件最低需求

[编辑 | 编辑源代码]

大多数现代笔记本电脑和台式电脑都应该足够强大,可以运行双节点虚拟RAC集群。简而言之,以下是推荐的最低配置

  • 现代CPU(2011年以后生产的大多数笔记本电脑应该都可以)
  • 8GB内存
  • 40GB可用磁盘空间
    • 9GB软件暂存
    • 29GB - 2个虚拟机 + 2个ASM磁盘
  • Windows 64位(XP、Vista或7)(Linux和Mac也经过测试,并且本书中包含了与Windows说明的差异)

软件组件

[编辑 | 编辑源代码]

在开始之前,您需要了解将要安装哪些软件。如果参加活动,最好提前将软件下载到您的笔记本电脑上,以避免在实验期间下载。版权软件不可分发,因此志愿者无法为您提供所有必需的软件组件。但组织者可能已设置了代理服务器以加快下载速度或至少提供免费软件。

Windows 7 64位

[编辑 | 编辑源代码]

本书涵盖Windows 7 64位作为主机,即使所有可以运行VirtualBox 64位的操作系统都可以使用。由于Oracle 12c for Linux 32位不可用,因此64位是强制性的。


VirtualBox

[编辑 | 编辑源代码]

本书使用VirtualBox,因为许多Oracle专家将其视为成熟且免费的虚拟化解决方案,与Oracle软件完全兼容:https://www.virtualbox.org/。VirtualBox版本4.3.26和4.2.12到4.2.18之间的旧版本已成功与OEL6和Oracle 12c一起测试。最新成功测试的VirtualBox版本是5.0.8

一些VirtualBox版本(如果我没记错的话,是4.3.14到22 [1])在Windows上存在严重问题。EL 6.4到6.7已尝试过,没有问题。[2]

Windows 系统下首选的 SSH 客户端之一。您可以从此处下载它

http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe


Vnc 查看器

[编辑 | 编辑源代码]

服务器将安装在没有 X 服务器的环境中,因此您需要 VNC 来获取图形界面。

http://www.realvnc.com/download/get/1295/

Oracle 软件

[编辑 | 编辑源代码]

Oracle Enterprise Linux 6

[编辑 | 编辑源代码]

可以从 http://edelivery.oracle.com/linux/ 下载。

  1. 使用您的 Oracle 帐户登录:http://edelivery.oracle.com/linux
  2. 在“媒体包搜索”页面上,选择
  3. 产品包:Oracle Linux 平台:x86 64 位 点击GO
  4. 点击:Oracle Linux Release 6 Update 4 Media Pack for x86_64 (64 位)
  5. 点击第一行的下载按钮
  6. 文件V37084-01.iso下载完成后,将其重命名为Oracle_Linux_6_64.iso,以便于与其他 Oracle 文件区分。

Oracle Grid Infrastructure 和 Database 12c (12.1.0.1)

[编辑 | 编辑源代码]

可以从 http://edelivery.oracle.com/ 下载。

  1. 使用您的 Oracle 帐户登录:http://edelivery.oracle.com/
  2. 在“媒体包搜索”页面上,选择
  3. 产品包:Oracle Database 平台:Linux x86-64 点击GO
  4. 点击:Oracle Database 12c Release 1 (12.1.0.1.0) Media Pack for Linux x86-64
  5. 点击以下四个包的下载按钮
    • Oracle Database 12c Release 1 (12.1.0.1.0) for Linux x86-64 (Part 1 of 2)
    • Oracle Database 12c Release 1 (12.1.0.1.0) for Linux x86-64 (Part 2 of 2)
    • Oracle Database 12c Release 1 Grid Infrastructure (12.1.0.1.0) for Linux x86-64 (Part 1 of 2)
    • Oracle Database 12c Release 1 Grid Infrastructure (12.1.0.1.0) for Linux x86-64 (Part 2 of 2)
  6. 将下载以下文件
    • V38501-01_1of2.zip
    • V38501-01_2of2.zip
    • V38500-01_1of2.zip
    • V38500-01_2of2.zip
    解压缩后,将有两个文件夹:“grid”和“database”,其中包含完整安装文件。

准备主机

[编辑 | 编辑源代码]

VirtualBox 设置

[编辑 | 编辑源代码]
  1. 运行 Oracle VM VirtualBox 安装程序。
  2. 在欢迎页面上,点击下一步
  3. Vbox install welcome
  4. 保留默认组件选择,点击下一步
  5. Vbox install component selection
  6. 点击下一步
  7. Vbox install create shortcuts
  8. 除非您有网络上的挂起下载或批处理,否则点击
  9. Vbox install network reset
  10. 点击安装
  11. Vbox install ready to install
  12. 安装完成。点击完成以打开 VirtualBox
  13. Vbox install completed


VirtualBox 网络配置

[编辑 | 编辑源代码]
  1. 运行 VirtualBox 管理器。
  2. 在主屏幕上,选择文件 > 首选项 > 网络
  3. Network adapter preferences
  4. 双击VirtualBox Host-Only 以太网适配器。VirtualBox 将建议默认地址为 192.168.56.1。请按如下所示更新设置,然后连续点击确定两次。
  5. IPv4 地址:192.168.78.1 IPv4 网络掩码:255.255.255.0 网络适配器 1 地址


安装 Linux

[编辑 | 编辑源代码]

创建 VirtualBox 虚拟机

[编辑 | 编辑源代码]
  1. 在您的计算机上,在您选择的任意位置创建一个名为racattack12c的新文件夹,该文件夹将包含所有虚拟磁盘。
  2. 安装结束后,文件将如下所示 RA-Windows_7-Create Directory



  3. 在 VirtualBox 中,在主屏幕上,点击左上角的新建图标。
  4. VirtualBox Manager Home



  5. 为虚拟机的名称输入collabn1。选择Linux作为类型,选择Oracle (64 位)作为版本,然后点击下一步
  6. RA-vbox 4214-create vm-name and os



  7. 大小字段中输入3072,然后点击下一步 如果您只有 8GB 的总内存,请将其减少到 2510,否则您的笔记本电脑可能会变慢
  8. RA-vbox 4214-create vm-vm memory



  9. 保持现在创建虚拟硬盘选中状态,然后点击创建
  10. RA-vbox 4214-create vm-create primary hard disk



  11. 保持VDI (VirtualBox 磁盘映像)选中状态,然后点击下一步
  12. RA-vbox 4214-create vm-primary hard disk type



  13. 保持动态分配选中状态,然后点击下一步
  14. RA-vbox 4214-create vm-storage on drive



  15. 输入要创建的磁盘文件的完整路径,或通过浏览图标进行选择位置
  16. 最好使用之前为所有虚拟磁盘创建的公共文件夹racattack12c 文件应命名为collabn1.vdi 大小字段中输入30.00 GB,然后点击创建 RA-vbox 4214-create vm-file location and size





VirtualBox 虚拟机设置

[编辑 | 编辑源代码]
  1. 在主屏幕上,选择虚拟机collabn1,然后点击左上角的设置图标。
  2. RA-vbox 4214-create vm-finished vm



  3. 打开USB子菜单。取消选中启用 USB 控制器复选框。
  4. RA-vbox 4214-create vm-usb settings



  5. 打开存储子菜单。删除IDE 控制器下的磁盘。
  6. RA-vbox 4214-create vm-delete empty ide



  7. 单击移除确认。
  8. RA-vbox 4214-create vm-delete ide
  9. 单击添加 CD/DVD 设备
  10. RA-vbox 4214-create vm-add iso



  11. 单击选择磁盘
  12. VirtualBox New VM Settings New IDE



  13. 找到并打开Oracle_Linux_6_64.iso文件。
  14. RA-vbox 4214-create vm-oracle linux 6 iso added



  15. 打开网络子菜单。在适配器 1选项卡下,将连接到:下拉菜单更改为仅主机适配器
  16. VirtualBox_Settings_Network_Adapter_1



  17. 选择适配器 2选项卡。选中启用网络适配器复选框。将连接到:下拉菜单更改为内部网络,并在名称字段中输入名称rac-priv
  18. VirtualBox_New_VM_Settings_Network_Adapter_2



  19. 选择适配器 3选项卡。选中启用网络适配器复选框。将连接到:下拉菜单更改为NAT
  20. VirtualBox_New_VM_Settings_Network_Adapter_3



  21. 选择共享文件夹选项卡。单击添加共享文件夹
  22. 输入您下载 Oracle 安装介质的路径,并为您的文件夹输入一个名称。 输入文件夹名称“12cR1”。 选中自动挂载并单击确定 VirtualBox_New_VM_Settings_Shared folder
  23. 单击确定保存修改。
  24. 查看新虚拟机的摘要。


操作系统安装

[编辑 | 编辑源代码]
  1. 单击启动以启动虚拟机。如果提示选择启动磁盘,请选择Oracle_Linux_6_64.iso,然后再次单击启动
  2. RA-Oracle_Linux_6_64bit-Install_OS-select boot iso



  3. Oracle Linux 安装屏幕将自动显示。按Enter键开始安装。
  4. RA-Oracle_Linux_6_64bit-Install_OS-boot menu



  5. 按向右箭头键跳过 CD 测试,然后按Enter键。
  6. RA-Oracle_Linux_6_64bit-Install_OS-media test



  7. 从这一点开始,您可以使用鼠标进行导航。要从 VM 中解锁鼠标和键盘,请按右侧Ctrl键。单击下一步
  8. RA-Oracle_Linux_6_64bit-Install_OS-splash start



  9. 保持英语(英语)选中,然后单击下一步
  10. RA-Oracle_Linux_6_64bit-Install_OS-choose language



  11. 保持美国英语选中,然后单击下一步(除非您有其他首选键盘布局)。
  12. RA-Oracle_Linux_6_64bit-Install_OS-choose keyboard



  13. 保持基本存储设备选中,然后单击下一步
  14. RA-Oracle_Linux_6_64bit-Install_OS-install device



  15. 对于显示下面的存储设备可能包含数据的警告框,单击是,放弃所有数据
  16. RA-Oracle_Linux_6_64bit-Install_OS-storage device warning



  17. 在主机名字段中,输入collabn1.racattack
    • 单击左下角的配置网络
    • 突出显示系统 eth0,然后单击编辑...按钮。
    • 单击自动连接复选框。
    • 单击IPv4 设置选项卡。
    • 单击方法:下拉菜单,然后选择手动
    • 单击添加,然后为地址输入192.168.78.51
    • 网络掩码保留为24
    • DNS 服务器:框中,输入192.168.78.51, 192.168.78.52
    • 搜索域:框中,输入racattack
    • 单击应用按钮。
  18. RA-Oracle_Linux_6_64bit-Install_OS-eth0 ipv4 settings



  19. 突出显示系统 eth1,然后单击编辑...按钮。
    • 单击自动连接复选框。
    • 单击IPv4 设置选项卡。
    • 单击方法:下拉菜单,然后选择手动
    • 单击添加,然后输入172.16.100.51
    • 网络掩码更改为24
    • 单击应用按钮。
  20. RA-Oracle_Linux_6_64bit-Install_OS-eth1 ipv4 settings



  21. 突出显示系统 eth2,然后单击编辑...按钮。
    • 单击自动连接复选框。
    • 单击IPv4 设置选项卡。
    • 单击方法:下拉菜单,然后选择仅自动(DHCP)地址
    • 单击应用按钮。
    • 单击关闭关闭网络配置菜单,然后单击下一步
  22. RA-Oracle_Linux_6_64bit-Install_OS-eth2 ipv4 settings



  23. 保持时区设置不变,然后单击下一步
  24. RA-Oracle_Linux_6_64bit-Install_OS-time zone



  25. 输入根密码racattack,然后单击下一步
  26. RA-Oracle_Linux_6_64bit-Install_OS-root password



  27. 当收到有关弱密码的警告时,单击无论如何使用
  28. RA-Oracle_Linux_6_64bit-Install_OS-root password confirm



  29. 对于安装类型,单击使用所有空间,然后单击下一步
  30. RA-Oracle_Linux_6_64bit-Install_OS-use all disk space



  31. 当收到有关将存储配置写入磁盘的警告时,单击将更改写入磁盘
  32. RA-Oracle_Linux_6_64bit-Install_OS-write changes to disk confirm



  33. 保持基本服务器作为默认安装类型。单击下一步
  34. RA-Oracle_Linux_6_64bit-Install_OS-default installation type



  35. 操作系统将需要一段时间才能安装。
  36. RA-Oracle_Linux_6_64bit-Install_OS-install progressing



  37. 安装完成后,单击重新启动
  38. RA-Oracle_Linux_6_64bit-Install_OS-complete congrats



  39. 重新启动不再显示消息,只是一个进度条。
    • 服务器启动时,您可以按F8键查看进度。
    • 系统应启动到命令行登录提示符。
  40. RA-Oracle_Linux_6_64bit-Install_OS-post install reboot progress



Linux 安装后操作

[编辑 | 编辑源代码]
  1. 要连接到新创建的虚拟机,请在 Putty 中为名为collabn1的新 VM 创建一个连接,其IP 地址192.168.78.51
    • 可选地,为collabn2创建另一个连接,其IP 地址192.168.78.52,该连接稍后将作为collabn1的克隆创建。

    Putty connection screen

  2. 通过单击打开打开collabn1连接。
    • 安全警报对话框中单击
  3. Putty security alert
  4. 以以下身份登录:提示符处输入root,在密码:提示符处输入racattack
  5. Putty connected
  6. 关闭并禁用防火墙IPTables

  7. [root@collabn1 ~]# service iptables stop
    iptables: Flushing firewall rules:                         [  OK  ]
    iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
    iptables: Unloading modules:                               [  OK  ]
    
    [root@collabn1 ~]# chkconfig iptables off
    
    [root@collabn1 ~]# chkconfig --list iptables
    iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
    
  8. 禁用SELinux。打开配置文件并将SELINUX变量从enforcing更改为disabled
  9. [root@collabn1 ~]# vim /etc/selinux/config # 此文件控制系统上 SELinux 的状态。 # SELINUX=可以取以下三个值之一: # enforcing - 强制执行 SELinux 安全策略。 # permissive - SELinux 打印警告而不是强制执行。 # disabled - 未加载 SELinux 策略。 SELINUX=disabled # SELINUXTYPE=可以取以下两个值之一: # targeted - 受保护的目标进程, # mls - 多级安全保护。 SELINUXTYPE=targeted
  10. 验证所有网络接口是否都已启动。
  11. [root@collabn1 ~]# ip l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:4f:8a:0b brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:99:7e:95 brd ff:ff:ff:ff:ff:ff 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:e2:63:7f brd ff:ff:ff:ff:ff:ff
  12. 添加 DVD 作为存储库。
  13. 转到 VBOX 菜单=>存储=>将 DVD 设备添加到服务器设备->CD/DVD 设备->Oracle_Linux_6_4.iso

    运行以下命令

    mkdir /media/cdrom
    mount /dev/cdrom /media/cdrom/
    cd /etc/yum.repos.d
    mkdir /tmp/old.yum.repos.d
    mv * /tmp/old.yum.repos.d
    
    cat <<EOF > ol64.repo
    [OL64]
    name=Oracle Linux 6.4 x86_64
    baseurl=file:///media//cdrom
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
    gpgcheck=1
    enabled=1
    EOF
    
  14. 安装数据库预安装包oracle-rdbms-server-11gR2-preinstall
  15. 此包安装 Oracle 11g 的所有软件包要求(但也适用于 12c),配置内核参数,创建 oracle用户和组并设置用户限制
    [root@collabn1 ~]# yum install -y oracle-rdbms-server-11gR2-preinstall
    ....
    Transaction Summary
    ========================================================================
    Install      21 Package(s)
    Upgrade       2 Package(s)
    
    Total download size: 43 M
    
    ....
    
    Installed:
      oracle-rdbms-server-11gR2-preinstall.x86_64 0:1.0-8.el6
    
    ....
    
    Complete!
    
  16. 安装将用于安装和管理服务器的其他 RPM。
  17. [root@collabn1 ~]# rpm -ivh /media/cdrom/Packages/kernel-uek-devel-$(uname -r).rpm
    [root@collabn1 ~]# yum install -y tigervnc-server.x86_64 xclock man parted.x86_64 unzip.x86_64 xterm lsof bind  xorg-x11-twm oracleasm-support
    Install      12 Package(s)
    .... 
    Total download size: 22 M
    ....
    Complete!
    
  18. 卸载NTP
  19. [root@collabn1 ~]# yum remove -y ntp .... 已移除:ntp.x86_64 0:4.2.4p8-3.el6 .... 完成! [root@collabn1 ~]#
  20. 在继续执行后续步骤之前,卸载 DVD。
  21. [root@collabn1 ~]# umount /media/cdrom


安装 VirtualBox 附加组件

[编辑 | 编辑源代码]
  1. 通过点击设备->安装客户机添加,使VirtualBox客户机添加功能可供操作系统使用。
  2. RA-Oracle_Linux_6_64bit-Configure_OS-install guest additions

  3. 挂载VirtualBox创建的虚拟CD-Rom。
  4. [root@collabn1 ~]# mount /dev/cdrom /media/cdrom
     mount: block device /dev/sr0 is write-protected, mounting read-only
    
  5. 安装VirtualBox客户机添加功能。与步骤安装窗口系统驱动程序相关的错误可以忽略,在最新的VBox版本中不会出现。
  6. [root@collabn1 ~]# sh /media/cdrom/VBoxLinuxAdditions.run 验证归档完整性...一切正常。解压VirtualBox 4.2.14 Linux客户机添加功能............VirtualBox客户机添加功能安装程序正在删除已安装的VirtualBox 4.2.14客户机添加功能版本...复制其他安装模块...安装其他模块...删除现有的VirtualBox非DKMS内核模块[确定]构建VirtualBox客户机添加功能内核模块找不到当前运行内核的头文件。如果以下模块编译失败,这可能是原因。缺少的软件包可能可以使用yum install kernel-uek-devel-2.6.39-400.17.1.el6uek.x86_64安装构建主客户机添加功能模块[确定]构建共享文件夹支持模块[确定]构建OpenGL支持模块[确定]执行客户机添加功能的非内核设置[确定]您应该重新启动客户机以确保实际使用了新模块安装窗口系统驱动程序[失败](找不到X.Org或XFree86窗口系统。)
  7. 卸载光驱。
  8. [root@collabn1 ~]# umount /media/cdrom


配置Bind DNS

[编辑 | 编辑源代码]

如果BIND DNS未安装,请运行#yum install -y bind(在Linux后安装步骤9之前,卸载/media/cdrom之前)。


  1. 启用BIND DNS在启动时启动。
  2. [root@collabn1 ~]# chkconfig named on
  3. 更改named目录权限。
  4. [root@collabn1 ~]# touch /var/named/racattack [root@collabn1 ~]# chgrp named /var/named/racattack [root@collabn1 ~]# chmod 664 /var/named/racattack [root@collabn1 ~]# chmod g+w /var/named
  5. 备份BIND配置文件。
  6. [root@collabn1 ~]# cp /etc/named.conf /etc/named.conf.org
  7. 更改/etc/named.conf权限。
  8. [root@collabn1 ~]# chmod 664 /etc/named.conf 否则,原始保护可能会在重新启动named步骤中导致问题,并在/var/log/messages中出现写保护错误。
  9. 运行以下命令或编辑/etc/named.conf文件以手动更改named配置。
  10. sed -i -e 's/listen-on .*/listen-on port 53 { 192.168.78.51; };/' \
    -e 's/allow-query .*/allow-query     { 192.168.78.0\/24; localhost; };\n        allow-transfer  { 192.168.78.0\/24; };/' \
    -e '$azone "racattack" {\n  type master;\n  file "racattack";\n};\n\nzone "in-addr.arpa" {\n  type master;\n  file "in-addr.arpa";\n};' \
    /etc/named.conf
    
    • 粗体显示从默认值修改的行。
    options {
           listen-on port 53 { 192.168.78.51; };
           listen-on-v6 port 53 { ::1; };
           directory       "/var/named";
           dump-file       "/var/named/data/cache_dump.db";
           statistics-file "/var/named/data/named_stats.txt";
           memstatistics-file "/var/named/data/named_mem_stats.txt";
           allow-query     { 192.168.78.0/24; localhost; };
           allow-transfer  { 192.168.78.0/24; };
           recursion yes;
    
           dnssec-enable yes;
           dnssec-validation yes;
           dnssec-lookaside auto;
    
           /* Path to ISC DLV key */
           bindkeys-file "/etc/named.iscdlv.key";
    
           managed-keys-directory "/var/named/dynamic";
    };
    
    logging {
           channel default_debug {
                   file "data/named.run";
                   severity dynamic;
           };
    };
    
    zone "." IN {
           type hint;
           file "named.ca";
    };
    
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    
    zone "racattack" {
     type master;
     file "racattack";
    };
    
    zone "in-addr.arpa" {
     type master;
     file "in-addr.arpa";
    };
    
  11. 通过运行以下命令在collabn1上创建racattack域的区域文件
  12. (复制并粘贴整个框)echo '$TTL 3H @ IN SOA collabn1 hostmaster ( 101  ; serial 1D  ; refresh 1H  ; retry 1W  ; expire 3H )  ; minimum NS collabn1 NS collabn2 localhost A 127.0.0.1 collabn1 A 192.168.78.51 collabn1-vip A 192.168.78.61 collabn1-priv A 172.16.100.51 collabn2 A 192.168.78.52 collabn2-vip A 192.168.78.62 collabn2-priv A 172.16.100.52 collabn-cluster-scan A 192.168.78.251 collabn-cluster-scan A 192.168.78.252 collabn-cluster-scan A 192.168.78.253' \ > /var/named/racattack
  13. collabn1上创建反向区域文件。
  14. (复制并粘贴整个框)echo '$TTL 3H @ IN SOA collabn1.racattack. hostmaster.racattack. ( 101  ; serial 1D  ; refresh 1H  ; retry 1W  ; expire 3H )  ; minimum NS collabn1.racattack. NS collabn2.racattack. 51.78.168.192 PTR collabn1.racattack. 61.78.168.192 PTR collabn1-vip.racattack. 51.100.16.172 PTR collabn1-priv.racattack. 52.78.168.192 PTR collabn2.racattack. 62.78.168.192 PTR collabn2-vip.racattack. 52.100.16.172 PTR collabn2-priv.racattack. 251.78.168.192 PTR collabn-cluster-scan.racattack. 252.78.168.192 PTR collabn-cluster-scan.racattack. 253.78.168.192 PTR collabn-cluster-scan.racattack.' \ > /var/named/in-addr.arpa
  15. 生成rndc.key文件。
  16. [root@collabn1 ~]# rndc-confgen -a -r /dev/urandom 已写入密钥文件“/etc/rndc.key”[root@collabn1 ~]# chgrp named /etc/rndc.key [root@collabn1 ~]# chmod g+r /etc/rndc.key [root@collabn1 ~]# ls -lrta /etc/rndc.key -rw-r----- 1 root named 77 11月 10 09:19 /etc/rndc.key
  17. 重新启动named服务。
  18. [root@collabn1 ~]# service named restart 正在停止named:[确定]正在启动named:[确定]
  19. 检查/etc/sysconfig/network-scripts/ifcfg-eth2中参数PEERDNS是否设置为no,以防止resolv.conf被dhcp客户端覆盖
  20. DEVICE=eth2 TYPE=Ethernet UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp HWADDR=xx:xx:xx:xx:xx DEFROUTE=yes PEERDNS=no PEERROUTES=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth2" USERCTL=no 注意:我(Yury)发现以下两个应设置为NO => DEFROUTE=no,PEERROUTES=no
  21. 如果它之前设置为yes,请重新启动网络并验证文件/etc/resolv.conf现在是否包含正确的名称服务器
  22. [root@collabn1 ~]# service network restart 正在关闭接口eth0:[确定]正在关闭接口eth1:[确定]正在关闭接口eth2:[确定]正在关闭环回接口:[确定]正在启动环回接口:[确定]正在启动接口eth0:[确定]正在启动接口eth1:[确定]正在启动接口eth2:正在确定eth2的IP信息...已完成。[确定]
  23. /etc/resolv.conf应该包含
  24. [root@collabn1 ~]# cat /etc/resolv.conf  ; 由/sbin/dhclient-script生成 nameserver 192.168.78.51 nameserver 192.168.78.52 search racattack
  25. 检查collabn1上的主DNS是否正常工作。
  26. [root@collabn1 ~]# nslookup collabn-cluster-scan.racattack 服务器:192.168.78.51 地址:192.168.78.51#53 名称:collabn-cluster-scan.racattack 地址:192.168.78.251 名称:collabn-cluster-scan.racattack 地址:192.168.78.252 名称:collabn-cluster-scan.racattack 地址:192.168.78.253


准备Linux用于Oracle

[编辑 | 编辑源代码]
  1. 修改pam.d登录文件以使用限制。
  2. sed -i -e '/session    required     pam_selinux.so open/i\
    session    required     \/lib64\/security\/pam_limits.so\
    session    required     pam_limits.so' /etc/pam.d/login
    
  3. oracle用户的密码更改为racattack
  4. [root@collabn1 ~]# passwd oracle 正在更改oracle用户的密码。新密码:密码错误:它基于字典词重新输入新密码:passwd:所有身份验证令牌已成功更新。
  5. 创建并更改集群软件和数据库安装目录的所有权。
  6. [root@collabn1 ~]# mkdir -p /u01/app [root@collabn1 ~]# chown oracle:oinstall /u01/app
  7. 修改oracle用户,使其属于vboxsf组。
  8. [root@collabn1 ~]# usermod -G oinstall,dba,vboxsf oracle [root@collabn1 ~]# id oracle uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(vboxsf)


如果BIND DNS未安装,请运行#yum install -y bind(在Linux后安装步骤9之前,卸载/media/cdrom之前)。

创建集群

[编辑 | 编辑源代码]

创建VirtualBox共享存储

[编辑 | 编辑源代码]
  1. 关闭服务器
  2. [root@collabn1 ~]# shutdown -h now 来自[email protected] (/dev/pts/0)的广播消息,于9:06...系统即将立即关闭!
  3. 在VirtualBox管理器中,选择机器collabn1,单击设置 -> 存储
  4. 选择控制器SATA,然后单击添加硬盘按钮 Virtualbox 4: Create Shared Storage - Add Hard Disk 单击创建新磁盘 Virtualbox 4: Create Shared Storage - Select New Disk
  5. 保持VDI (VirtualBox 磁盘映像)选中状态,然后点击下一步
  6. RA-vbox 4214-create vm-primary hard disk type
  7. 对于共享存储,选择固定大小,然后单击下一步
  8. Virtualbox 4: Create Shared Storage - Fixed Size
  9. 将文件位置更改为之前创建的racattack12文件夹。
  10. 输入asm1.vdi作为磁盘名称。 输入5.00Gb作为磁盘大小。 单击创建 Virtualbox 4: Create Shared Storage - Disk Name and Size
  11. 现在磁盘已物理创建,大小为5Gb,因此完成可能需要更多时间。
  12. Virtualbox 4: Create Shared Storage - Creation in progress
  13. 重复这些步骤以创建另外三个磁盘
    • asm2.vdi(5.00GB)
    • asm3.vdi(5.00GB)
    • asm4.vdi(5.00GB)
  14. 最后,应该为asm创建了四个虚拟磁盘。
  15. 单击确定 Virtualbox 4: Create Shared Storage - 4 disks created
  16. 使所有asm设备可共享:在VirtualBox管理器中,单击文件 -> 虚拟介质管理器
  17. Virtualbox 4: Create Shared Storage - virtual media manager
  18. 对于每个asm设备:右键单击 -> 修改
  19. Virtualbox 4: Create Shared Storage - virtual media manager modify
  20. 选择可共享,然后单击确定。对四个asm设备执行此操作。
  21. Virtualbox 4: Create Shared Storage - virtual media manager shareable
  22. 启动机器collabn1
  23. 您现在应该看到另外四个名为/dev/sd*的磁盘[root@collabn1 ~]# ls -l /dev/sd* brw-rw----. 1 root disk 8, 0 7月 28 10:16 /dev/sda brw-rw----. 1 root disk 8, 1 7月 28 10:16 /dev/sda1 brw-rw----. 1 root disk 8, 2 7月 28 10:16 /dev/sda2 brw-rw----. 1 root disk 8, 16 7月 28 10:16 /dev/sdb brw-rw----. 1 root disk 8, 32 7月 28 10:16 /dev/sdc brw-rw----. 1 root disk 8, 48 7月 28 10:16 /dev/sdd brw-rw----. 1 root disk 8, 64 7月 28 10:16 /dev/sde


配置存储持久命名

[编辑 | 编辑源代码]
  1. 一旦服务器能够识别新的磁盘,使用**fdisk**在每个磁盘上添加一个主分区。
  2. [root@collabn1 ~]# fdisk /dev/sdb 设备既不包含有效的DOS分区表,也不包含Sun、SGI或OSF磁盘标签 正在构建一个新的带有磁盘标识符0x97cc9f57的DOS磁盘标签。 更改将仅保留在内存中,直到您决定写入它们。 之后,当然,以前的内容将无法恢复。 警告:分区表4的无效标志0x0000将在w(rite)时被更正 警告:DOS兼容模式已弃用。 强烈建议关闭该模式(命令'c')并将显示单位更改为扇区(命令'u')。 命令(m获取帮助):n 命令操作 e 扩展 p 主分区(1-4) p 分区号(1-4):1 第一个柱面(1-652,默认1):<enter> 使用默认值1 最后一个柱面,+柱面或+size{K,M,G}(1-652,默认652):<enter> 使用默认值652 命令(m获取帮助):w 分区表已更改! 调用ioctl()重新读取分区表。 同步磁盘。
  3. 对**sdc、sdd和sde**重复相同的步骤。
  4. 完成后,所有磁盘都至少有一个分区。[root@collabn1 ~]# ls -l /dev/sd?1 brw-rw----. 1 root disk 8, 1 Jul 28 10:16 /dev/sda1 brw-rw----. 1 root disk 8, 17 Jul 28 10:23 /dev/sdb1 brw-rw----. 1 root disk 8, 33 Jul 28 10:27 /dev/sdc1 brw-rw----. 1 root disk 8, 49 Jul 28 10:27 /dev/sdd1 brw-rw----. 1 root disk 8, 65 Jul 28 10:27 /dev/sde1
  5. 配置**scsi_id**命令的**-g**选项,以期从共享设备获取UUID。
  6. [root@collabn1 ~]# echo "options=-g" > /etc/scsi_id.config
  7. 测试scsi_id -是否返回数据。

  8. [root@collabn1 ~]#  /sbin/scsi_id -g -u -d /dev/sdb
    


  9. 通过运行以下脚本准备文件** /etc/udev/rules.d/99-oracle-asmdevices.rules**
  10. #!/bin/bash
    #file ~/createOracleAsmUdevRules.sh
    
    i=1
     # ol6 / rhel6 / centos 6 
    cmd="/sbin/scsi_id -g -u -d"
    for disk in sdb sdc sdd sde ; do 
             cat <<EOF >> /etc/udev/rules.d/99-oracle-asmdevices.rules
    KERNEL=="sd?1", BUS=="scsi", PROGRAM=="$cmd /dev/\$parent", \
     RESULT=="`$cmd /dev/$disk`", NAME="asm-disk$i", OWNER="oracle", GROUP="dba", MODE="0660"
    EOF
             i=$(($i+1)) 
    done
    
  11. 完成后,文件应如下所示(除了scsi UUID)。
  12. 注意:以“KERNEL”开头的行不得拆分。[root@collabn1 ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB2216c54a-825b4598", NAME="asm-disk1", OWNER="oracle", GROUP="dba", MODE="0660" KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB83dd4d7f-d052e72c", NAME="asm-disk2", OWNER="oracle", GROUP="dba", MODE="0660" KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB636da22f-87dc2f88", NAME="asm-disk3", OWNER="oracle", GROUP="dba", MODE="0660" KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB86aaf297-60dcda74", NAME="asm-disk4", OWNER="oracle", GROUP="dba", MODE="0660"
  13. 重新加载udev规则并重启udev。
  14. [root@collabn1 ~]# /sbin/partprobe /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 [root@collabn1 ~]# /sbin/udevadm test /block/sdb/sdb1 [root@collabn1 ~]# /sbin/udevadm test /block/sdc/sdc1 [root@collabn1 ~]# /sbin/udevadm test /block/sdd/sdd1 [root@collabn1 ~]# /sbin/udevadm test /block/sde/sde1 [root@collabn1 ~]# /sbin/udevadm control --reload-rules [root@collabn1 ~]# /sbin/start_udev 启动udev:[OK] [root@collabn1 ~]# /etc/init.d/oracleasm scandisks [root@collabn1 ~]# /etc/init.d/oracleasm listdisks
  15. 新的磁盘已准备好使用。
  16. [root@collabn1 ~]# ls -l /dev/asm* brw-rw----. 1 oracle dba 8, 17 Jul 30 16:17 /dev/asm-disk1 brw-rw----. 1 oracle dba 8, 33 Jul 30 16:17 /dev/asm-disk2 brw-rw----. 1 oracle dba 8, 49 Jul 30 16:17 /dev/asm-disk3 brw-rw----. 1 oracle dba 8, 65 Jul 30 16:17 /dev/asm-disk4


克隆VirtualBox虚拟机

[编辑 | 编辑源代码]
  1. 关闭虚拟机。
  2. [root@collabn1 ~]# shutdown -h now 来自[email protected] (/dev/pts/0) 的广播消息,于 8:42 ... 系统即将立即关闭!
  3. 克隆磁盘**collabn1.vdi**:在VirtualBox管理器中,点击**文件** -> **虚拟介质管理器**。
  4. Virtualbox 4: Virtual box manager
  5. 右键点击磁盘**collabn1.vdi**,然后点击**复制...**。
  6. Virtualbox 4: Clone Disk - Virtual Media Manager copy
  7. 保留文件collabn1.vdi,点击**下一步**。
  8. Virtualbox 4: Clone Disk - Virtual Media Manager HD to copy
  9. 保留**VDI**作为文件类型。点击**下一步**。
  10. Virtualbox 4: Clone Disk - HD type
  11. 保留**动态分配**。点击**下一步**。
  12. Virtualbox 4: Clone Disk - allocation type
  13. 输入要创建的磁盘文件的完整路径,或通过浏览图标进行选择位置
  14. 同样,最好使用之前为所有虚拟磁盘创建的公共文件夹**racattack12c**。 文件应命名为**collabn2.vdi**。 点击**复制**。 Virtualbox 4: Clone Disk - new disk name
  15. 点击**关闭**退出虚拟介质管理器。


创建第二个VirtualBox虚拟机

[编辑 | 编辑源代码]
  1. 在VirtualBox中,点击左上角的**新建**图标以创建新的虚拟机。
  2. 为虚拟机的**名称**输入**collabn2**。为**类型**选择**Linux**,为**版本**选择**Oracle (64 bit)**,然后点击**下一步**。
  3. Virtualbox 4: Second VM Name and OS
  4. 大小字段中输入3072,然后点击下一步 如果您只有 8GB 的总内存,请将其减少到 2510,否则您的笔记本电脑可能会变慢
  5. RA-vbox 4214-create vm-vm memory
  6. 选择**使用现有的虚拟硬盘文件**,并使用文件夹图标找到之前创建的文件**collabn2.vdi**。
  7. 点击**创建**完成第二个虚拟机的创建。 Virtualbox 4: Create second vm - Use existing HD
  8. 现在有两个虚拟机;**collabn2**是**collabn1**的克隆。
  9. 在主屏幕上,选择虚拟机**collabn2**,然后点击左上角的**设置**图标。 RA-Oracle_Linux_6_64bit-Configure_OS-finished cloning
  10. 打开USB子菜单。取消选中启用 USB 控制器复选框。
  11. RA-vbox 4214-create vm-usb settings
  12. 打开网络子菜单。在适配器 1选项卡下,将连接到:下拉菜单更改为仅主机适配器
  13. VirtualBox_Settings_Network_Adapter_1
  14. 选择适配器 2选项卡。选中启用网络适配器复选框。将连接到:下拉菜单更改为内部网络,并在名称字段中输入名称rac-priv
  15. VirtualBox_New_VM_Settings_Network_Adapter_2
  16. 选择适配器 3选项卡。选中启用网络适配器复选框。将连接到:下拉菜单更改为NAT
  17. VirtualBox_New_VM_Settings_Network_Adapter_3
  18. 选择共享文件夹选项卡。单击添加共享文件夹
  19. 输入您下载Oracle安装介质的路径,并为您的文件夹输入一个名称。 选中自动挂载并单击确定 VirtualBox_New_VM_Settings_Shared folder
  20. 打开存储子菜单。
  21. 点击**控制器SATA**,然后点击**添加磁盘** VirtualBox New VM Settings - Add shared storage
  22. 点击**选择现有磁盘**
  23. VirtualBox New VM Settings - Choose existing disk
  24. 选择磁盘**asm1.vdi**,然后点击**打开**。
  25. VirtualBox New VM Settings - Choose existing disk ASM
  26. 重复此操作以添加所有剩余的asm磁盘。
  27. VirtualBox New VM Settings - Storage added
  28. 单击确定保存修改。
  29. 查看新虚拟机的摘要。
  30. Vbox 4: Create Second VM - complete VM settings
  31. 启动**collabn2**虚拟机。


配置第二个Linux虚拟机

[编辑 | 编辑源代码]
  1. 网络尚不可用,因为我们重新初始化了网络适配器,因此需要在虚拟机中进行以下更改。 以**root/racattack**身份登录。键入命令**system-config-network**。**设备配置**已突出显示。按**Enter**。
  2. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network change
  3. **eth0 (eth0) - 以太网**已突出显示。按**Enter**。
  4. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network save devices
  5. 向下到**静态IP**行。将IP更改为**192.168.78.52**。向下到**确定**并按**Enter**。
  6. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network eth0
  7. 选择**eth1 (eth1) - 以太网**并按**Enter**。向下到**静态IP**行。将IP更改为**172.16.100.52**。向下到**确定**并按**Enter**。
  8. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network eth1
  9. Tab到**保存**并按**Enter**。
  10. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network save devices
  11. 向下箭头到**DNS配置**并按**Enter**。
  12. RA-Oracle_Linux_6_64bit-Configure_OS-post clone DNS configuration
  13. 在**主机名**字段中,更改为**collabn2.racattack**。Tab到**确定**并按**Enter**。
  14. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network dns change
  15. Tab到**保存并退出**并按**Enter**。
  16. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network save quit
  17. 检查/etc/sysconfig/network-scripts/ifcfg-eth2中参数PEERDNS是否设置为no,以防止resolv.conf被dhcp客户端覆盖
  18. DEVICE=eth2 TYPE=Ethernet UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp HWADDR=xx:xx:xx:xx:xx DEFROUTE=yes PEERDNS=no PEERROUTES=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth2" USERCTL=no
  19. 删除udev网络规则文件。它将在下次重启时使用新的MAC地址重新生成。
  20. [root@collabn2 ~]# rm -f /etc/udev/rules.d/70-persistent-net.rules
  21. 删除网络适配器配置文件中的**HWADDR**和**UUID**行。
  22. [root@collabn2 ~]# sed -i -e '/HWADDR/d' -e '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[0-2]
  23. 通过键入**reboot**重启**collabn2**虚拟机。
  24. 也启动**collabn1**虚拟机,并为两者启动Putty会话。

    RA-Oracle_Linux_6_64bit-Configure_OS-collabn1 reboot
  25. 验证所有网络接口是否都已启动。
  26. [root@collabn2 ~]# ip l 1: lo: <环回,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <广播,多播,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:c9:39:d3 brd ff:ff:ff:ff:ff:ff 3: eth1: <广播,多播,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:33:bd:a8 brd ff:ff:ff:ff:ff:ff 4: eth2: <广播,多播,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:5f:61:29 brd ff:ff:ff:ff:ff:ff
  27. 验证所有ASM设备是否可见。
  28. [root@collabn2 ~]# ls -l /dev/asm* brw-rw----. 1 oracle dba 8, 17 Aug 5 15:40 /dev/asm-disk1 brw-rw----. 1 oracle dba 8, 33 Aug 5 15:40 /dev/asm-disk2 brw-rw----. 1 oracle dba 8, 49 Aug 5 15:40 /dev/asm-disk3 brw-rw----. 1 oracle dba 8, 65 Aug 5 15:40 /dev/asm-disk4


完成DNS设置

[编辑 | 编辑源代码]
  1. collabn2上打开一个会话。
  2. 停止DNS服务。
  3. [root@collabn2 ~]# service named stop 正在停止 named: . [ OK ]
  4. 删除实际的DNS文件。
  5. [root@collabn2 ~]# rm -f /var/named/racattack /var/named/in-addr.arpa
  6. 使用以下命令修改文件/etc/named.conf
  7. https://wikibooks.cn/wiki/RAC_Attack_-_Oracle_Cluster_Database_at_Home/RAC_Attack_12c/Complete_DNS_Setup

    sed -i -e 's/listen-on .*/listen-on port 53 { 192.168.78.52; };/' \
    -e 's/type master;/type slave;\n masters  {192.168.78.51; };/' \
    /etc/named.conf
    

    以便最后看起来像这样

    options {
           listen-on port 53 { 192.168.78.52; };
           listen-on-v6 port 53 { ::1; };
           directory       "/var/named";
           dump-file       "/var/named/data/cache_dump.db";
           statistics-file "/var/named/data/named_stats.txt";
           memstatistics-file "/var/named/data/named_mem_stats.txt";
           allow-query     { 192.168.78.0/24; localhost; };
           allow-transfer  { 192.168.78.0/24; };
           recursion yes;
    
           dnssec-enable yes;
           dnssec-validation yes;
           dnssec-lookaside auto;
    
           /* Path to ISC DLV key */
           bindkeys-file "/etc/named.iscdlv.key";
    
           managed-keys-directory "/var/named/dynamic";
    };
    
    logging {
           channel default_debug {
                   file "data/named.run";
                   severity dynamic;
           };
    };
    
    zone "." IN {
           type hint;
           file "named.ca";
    };
    
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    
    zone "racattack" {
     type slave;
     masters  { 192.168.78.51; };
     file "racattack";
    };
    
    zone "in-addr.arpa" {
     type slave;
     masters  { 192.168.78.51; };
     file "in-addr.arpa";
    };
    
  8. 启动named服务。
  9. [root@collabn2 ~]# service named start 正在启动 named: [ OK ]
  10. 检查collabn1上的主DNS服务器和collabn2上的从DNS服务器是否都正常工作。
  11. 运行以下所有语句以验证两个DNS服务器的正确配置

    https://wikibooks.cn/wiki/RAC_Attack_-_Oracle_Cluster_Database_at_Home/RAC_Attack_12c/Linux_Post_Installation_No_Internet

    [root@collabn2 ~]# dig @collabn1 collabn1.racattack
    [root@collabn2 ~]# dig @collabn1 collabn2.racattack
    [root@collabn2 ~]# dig @collabn1 collabn1-vip.racattack
    [root@collabn2 ~]# dig @collabn1 collabn2-vip.racattack
    [root@collabn2 ~]# dig @collabn1 collabn1-priv.racattack
    [root@collabn2 ~]# dig @collabn1 collabn2-priv.racattack
    [root@collabn2 ~]# dig @collabn1 collabn-cluster-scan.racattack
    
    [root@collabn2 ~]# dig @collabn2 collabn1.racattack
    [root@collabn2 ~]# dig @collabn2 collabn2.racattack
    [root@collabn2 ~]# dig @collabn2 collabn1-vip.racattack
    [root@collabn2 ~]# dig @collabn2 collabn2-vip.racattack
    [root@collabn2 ~]# dig @collabn2 collabn1-priv.racattack
    [root@collabn2 ~]# dig @collabn2 collabn2-priv.racattack
    [root@collabn2 ~]# dig @collabn2 collabn-cluster-scan.racattack
    


VNC服务器设置

[编辑 | 编辑源代码]
  1. 使用oracle帐户配置VNC服务器(密码不会显示)
  2. [root@collabn1 ~]# su - oracle [oracle@collabn1 ~]$ vncserver :1 您需要密码才能访问您的桌面。 密码:racattack 验证:racattack xauth: 创建新的授权文件 /home/oracle/.Xauthority 新的'collabn1.racattack:1 (oracle)'桌面是collabn1.racattack:1 创建默认启动脚本 /home/oracle/.vnc/xstartup 正在启动/home/oracle/.vnc/xstartup中指定的应用程序 日志文件是 /home/oracle/.vnc/collabn1.racattack:1.log
  3. 在您的笔记本电脑上打开vncviewer,并填写collabn1的IP地址,后跟:1
  4. RA-VNCViewer-Connect form

  5. 出现提示时输入密码racattack
  6. RA-VNCViewer-Password form
  7. 图形界面已准备好进行网格基础架构安装。
  8. RA-VNCViewer-Connected


安装网格基础架构

[编辑 | 编辑源代码]

准备安装GI

[编辑 | 编辑源代码]
  1. 验证包含安装介质的VirtualBox共享文件夹是否已正确挂载,并且Oracle可以访问它。
  2. [root@collabn1 ~]# su - oracle [oracle@collabn1 ~]$ df -k 文件系统 1K块 已用 可用 使用% 挂载点 /dev/mapper/vg_collabn1-lv_root 27407400 2798080 23217092 11% / tmpfs 1544640 0 1544640 0% /dev/shm /dev/sda1 495844 55641 414603 12% /boot 12cR1 976728060 863308936 113419124 89% /media/sf_12cR1 [oracle@collabn1 ~]$ ls -l /media/sf_12cR1 总计 6295549 -rwxrwx---. 1 root vboxsf 1361028723 Jun 27 16:21 linuxamd64_12c_database_1of2.zip -rwxrwx---. 1 root vboxsf 1116527103 Jun 27 16:12 linuxamd64_12c_database_2of2.zip -rwxrwx---. 1 root vboxsf 1750478910 Jun 27 16:27 linuxamd64_12c_grid_1of2.zip -rwxrwx---. 1 root vboxsf 201673595 Jun 27 15:23 linuxamd64_12c_grid_2of2.zip
  3. 您可以选择从您的笔记本电脑(使用Windows原生功能、WinZip、7-Zip或其他工具)或直接从服务器解压缩它。
  4. [oracle@collabn1 ~]$ cd /media/sf_12cR1 [oracle@collabn1 sf_12cR1]$ unzip linuxamd64_12c_database_1of2.zip 归档文件:linuxamd64_12c_database_1of2.zip 创建:database/ OK 正在膨胀:database/welcome.html OK 创建:database/response/ OK 正在膨胀:database/response/db_install.rsp OK 正在膨胀:database/response/netca.rsp OK 正在膨胀:database/response/dbca.rsp OK 创建:database/sshsetup/ OK 正在膨胀:database/sshsetup/sshUserSetup.sh OK 创建:database/rpm/ OK 正在膨胀:database/rpm/cvuqdisk-1.0.9-1.rpm OK [...] [oracle@collabn1 sf_12cR1]$ unzip linuxamd64_12c_database_2of2.zip [...] [oracle@collabn1 sf_12cR1]$ unzip linuxamd64_12c_grid_1of2.zip [...] [oracle@collabn1 sf_12cR1]$ unzip linuxamd64_12c_grid_2of2.zip [...]
  5. 软件包解压缩完成后,您将得到两个目录,griddatabase,其中包含安装文件。
  6. [oracle@collabn1 sf_12cR1]$ ls -l 总计 6295549 drwxrwx---. 1 root vboxsf 0 Jul 3 06:38 database drwxrwx---. 1 root vboxsf 0 Jun 10 08:15 grid -rwxrwx---. 1 root vboxsf 1361028723 Jun 27 16:21 linuxamd64_12c_database_1of2.zip -rwxrwx---. 1 root vboxsf 1116527103 Jun 27 16:12 linuxamd64_12c_database_2of2.zip -rwxrwx---. 1 root vboxsf 1750478910 Jun 27 16:27 linuxamd64_12c_grid_1of2.zip -rwxrwx---. 1 root vboxsf 201673595 Jun 27 15:23 linuxamd64_12c_grid_2of2.zip
  7. root用户身份安装cvuqdisk软件包
  8. [root@collabn1 ~]# rpm -Uvh /media/sf_12cR1/grid/rpm/cvuqdisk-1.0.9-1.rpm 正在准备... ########################################### [100%] 使用默认组oinstall安装软件包1:cvuqdisk ########################################### [100%] [root@collabn1 ~]#
  9. 在节点collabn2上执行相同的操作
  10. [root@collabn2 ~]# rpm -Uvh /media/sf_12cR1/grid/rpm/cvuqdisk-1.0.9-1.rpm 正在准备... ########################################### [100%] 使用默认组oinstall安装软件包1:cvuqdisk ########################################### [100%] [root@collabn2 ~]#


安装网格基础架构

[编辑 | 编辑源代码]
  1. 从VNC远程会话中,以oracle用户身份运行网格基础架构的安装。
  2. [oracle@collabn1 ~]$ /media/sf_12cR1/grid/runInstaller 正在启动Oracle通用安装程序... 正在检查临时空间:必须大于120 MB。实际22670 MB 通过 正在检查交换空间:必须大于150 MB。实际3023 MB 通过 正在检查监视器:必须配置为显示至少256种颜色。实际16777216 通过 正在准备从/tmp/OraInstall2013-08-06_04-25-00PM启动Oracle通用安装程序。请稍候...[oracle@collabn1 ~]$ [oracle@collabn1 ~]$
  3. 安装开始显示启动画面
  4. RA-Oracle_GI_12101-Install-Splash
  5. 保留跳过软件更新,然后单击下一步
  6. RA-Oracle_GI_12101-Install-Software Updates
  7. 保留为集群安装和配置Oracle Grid Infrastructure,然后单击下一步
  8. RA-Oracle_GI_12101-Install-Installation option
  9. 保留配置标准集群,然后单击下一步
  10. RA-Oracle_GI_12101-Install-Cluster Type
  11. 保留典型安装,然后单击下一步
  12. RA-Oracle_GI_12101-Install-Installation type
  13. SCAN名称框中,输入collabn-cluster-scan.racattack
  14. 在中央框中,仅显示第一个节点。单击添加...并输入第二个节点的网络名称。
    • 公共主机名:collabn2.racattack
    • 虚拟主机名:collabn2-vip.racattack
    RA-Oracle_GI_12101-Install-Cluster configuration
  15. 单击SSH连接...
  16. RA-Oracle_GI_12101-Install-Cluster configuration done
  17. 输入racattack作为oracle用户的密码,然后单击设置
  18. RA-Oracle_GI_12101-Install-SSH connectivity
  19. SSH等效性的设置已启动。
  20. RA-Oracle_GI_12101-Install-SSH connectivity progress
  21. 完成后,单击确定
  22. RA-Oracle_GI_12101-Install-SSH connectivity OK
  23. 单击识别网络接口...
  24. 检查是否设置了正确的地址。
    • eth0标记为公共
    • eth1标记为私有
    • eth2标记为不使用
    单击确定关闭识别网络接口窗口。 最后,单击下一步 RA-Oracle_GI_12101-Install-Identify Network Interfaces
  25. 在此步骤中会执行一些先决条件验证。可能需要几分钟才能完成。
  26. RA-Oracle_GI_12101-Install-Installer validation
  27. 由于选择的SCAN名称太长(超过15个字符),Oracle建议使用不同的名称作为集群名称。单击
  28. RA-Oracle_GI_12101-Install-Confirm Cluster Name
  29. 保留默认的Oracle基本目录和软件位置。
  30. 集群注册表存储类型组合框中,选择Oracle自动存储管理 输入racattack作为SYSASM密码。 选择dba作为OSASM组。 单击下一步 RA-Oracle_GI_12101-Install-Install Locations
  31. racattack是一个弱密码,Oracle会发出警告。单击继续
  32. RA-Oracle_GI_12101-Install-Sysasm weak password
  33. DATA保留为磁盘组名称。
  34. 选择外部冗余(在RAC Attack事件中这样做是安全的!)。 候选磁盘列表为空。点击更改发现路径... 磁盘发现路径文本字段中输入/dev/asm* 点击确定 RA-Oracle_GI_12101-Install-Create ASM Diskgroup
  35. 选中两个将立即分配到新磁盘组的磁盘。
  36. 点击下一步 RA-Oracle_GI_12101-Install-Create ASM Diskgroup disks
  37. 保留默认的清单目录。点击下一步
  38. RA-Oracle_GI_12101-Install-Create Inventory
  39. 选中自动运行配置脚本,然后选中使用“root”用户凭据
  40. 输入racattack作为root的密码,然后点击下一步 RA-Oracle_GI_12101-Install-Root script execution credentials
  41. 完成先决条件检查需要一些时间。
  42. RA-Oracle_GI_12101-Install-Prerequisite Check progress
  43. 如果一切正确,您将注意到两个检查失败了
    • 物理内存
    • ASM的设备检查
    选中“忽略全部”,然后点击下一步 RA-Oracle_GI_12101-Install-Prerequisite checks
  44. 点击确认您要跳过一些先决条件。
  45. RA-Oracle_GI_12101-Install-Prerequisite checks continue
  46. 将出现摘要页面。可以选择点击保存响应文件并选择一个位置来保存此安装会话的响应文件。
  47. RA-Oracle_GI_12101-Install-Save response file
  48. 查看摘要并点击安装开始安装。
  49. RA-Oracle_GI_12101-Install-Summary
  50. 安装开始。根据您的笔记本电脑硬件,可能需要一个多小时。
  51. RA-Oracle_GI_12101-Install-Install product progress
  52. 过了一会儿,安装程序会在以root身份运行一些脚本之前要求确认。点击继续。
  53. RA-Oracle_GI_12101-Install-Confirm root execution
  54. 安装继续,同样,可能需要很长时间才能完成。完成后,点击关闭退出。
  55. RA-Oracle_GI_12101-Install-Completed


安装GI后检查集群状态

[编辑 | 编辑源代码]
  1. 网格基础架构安装完成后,您可以获取集群组件的状态
  2. [oracle@collabn1 ~]$ . oraenv ORACLE_SID = [oracle] ? +ASM1 [oracle@collabn1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- 名称 目标 状态 服务器 状态 详细信息 -------------------------------------------------------------------------------- 本地资源 -------------------------------------------------------------------------------- ora.DATA.dg 在线 在线 collabn1 稳定 在线 在线 collabn2 稳定 ora.LISTENER.lsnr 在线 在线 collabn1 稳定 在线 在线 collabn2 稳定 ora.asm 在线 在线 collabn1 已启动,稳定 在线 在线 collabn2 已启动,稳定 ora.net1.network 在线 在线 collabn1 稳定 在线 在线 collabn2 稳定 ora.ons 在线 在线 collabn1 稳定 在线 在线 collabn2 稳定 -------------------------------------------------------------------------------- 集群资源 -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 在线 在线 collabn2 稳定 ora.LISTENER_SCAN2.lsnr 1 在线 在线 collabn1 稳定 ora.LISTENER_SCAN3.lsnr 1 在线 在线 collabn1 稳定 ora.collabn1.vip 1 在线 在线 collabn1 稳定 ora.collabn2.vip 1 在线 在线 collabn2 稳定 ora.cvu 1 在线 在线 collabn1 稳定 ora.oc4j 1 离线 离线 稳定 ora.scan1.vip 1 在线 在线 collabn2 稳定 ora.scan2.vip 1 在线 在线 collabn1 稳定 ora.scan3.vip 1 在线 在线 collabn1 稳定 --------------------------------------------------------------------------------
  3. 可选步骤:为了提高节点对Virtualbox环境巨大延迟的抵抗力,您可以增加CRS在导致节点隔离(重启)之前的超时时间。
  4. 在将配置应用于第一个节点时,您需要停止第二个节点。[oracle@collabn1 ~]$ ssh collabn2 [oracle@collabn2 ~]$ su - 密码: [root@collabn2 ~]# . oraenv ORACLE_SID = [root] ? +ASM2 Oracle 基础已设置为 /u01/app/oracle [root@collabn2 ~]# crsctl stop crs CRS-2791: 正在启动在 'collabn2' 上关闭 Oracle 高可用服务管理的资源 CRS-2673: 正在尝试停止 'ora.crsd' 在 'collabn2' 上 CRS-2790: 正在启动在 'collabn2' 上关闭集群就绪服务管理的资源 CRS-2673: 正在尝试停止 'ora.DATA.dg' 在 'collabn2' 上 ... CRS-2677: 'ora.gipcd' 在 'collabn2' 上的停止成功 CRS-2793: 'collabn2' 上 Oracle 高可用服务管理的资源的关闭已完成 CRS-4133: Oracle 高可用服务已停止。 [root@collabn2 ~]# exit 注销 [oracle@collabn2 ~]$ exit 注销 连接到 collabn2 已关闭。 [oracle@collabn1 ~]$ su - 密码: [root@collabn1 ~]# . oraenv ORACLE_SID = [root] ? +ASM1 Oracle 基础已设置为 /u01/app/oracle [root@collabn1 ~]# crsctl get css misscount CRS-4678: 集群同步服务的成功获取丢失计数 30。 [root@collabn1 ~]# crsctl set css misscount 90 CRS-4684: 集群同步服务的成功设置参数丢失计数为 90。 [root@collabn1 ~]# crsctl get css disktimeout CRS-4678: 集群同步服务的成功获取磁盘超时 200。 [root@collabn1 ~]# crsctl set css disktimeout 600 CRS-4684: 集群同步服务的成功设置参数磁盘超时为 600。 [root@collabn1 ~]# ssh collabn2 root@collabn2 的密码: 最后登录: 2013年8月6日星期二16:19:56 来自 192.168.78.51 [root@collabn2 ~]# . oraenv ORACLE_SID = [root] ? +ASM2 Oracle 基础已设置为 /u01/app/oracle [root@collabn2 ~]# crsctl start crs CRS-4123: Oracle 高可用服务已启动。启动命令在几秒钟内返回提示符。但是,整个堆栈完全启动可能需要几分钟。


ASM 配置

[编辑 | 编辑源代码]
  1. 从VNC会话中,运行ASM配置助手
  2. [oracle@collabn1 ~] . oraenv ORACLE_SID = [oracle] ? +ASM1 Oracle 基础已设置为 /u01/app/oracle [oracle@collabn1 ~]$ asmca
  3. asmca在“磁盘组”选项卡上打开,显示安装程序创建的DATA磁盘组。点击创建
  4. RA-Oracle_GI_12101-asmca-diskgroups
  5. 输入FRA作为磁盘组名称。
  6. 选择外部(无)冗余。 选中一个磁盘以创建5GB的磁盘组。 单击确定 RA-Oracle_GI_12101-asmca-add_diskgroups
  7. 正在创建磁盘组。
  8. RA-Oracle_GI_12101-asmca-Creating diskgroup
  9. 磁盘组已创建。
  10. RA-Oracle_GI_12101-asmca-Diskgroup created
  11. 点击选项卡,然后点击创建
  12. 输入SHARED作为卷名。

    选择磁盘组DATA

    大小在我们的实验中无关紧要,因此输入1。

    单击确定

    RA-Oracle_GI_12101-asmca-Creating volume


  13. 卷已创建。
  14. RA-Oracle GI 12101-asmca-Volume created
  15. 选择ASM集群文件系统选项卡。
  16. 单击创建 RA-Oracle_GI_12101-asmca-Filesystems
  17. 选择集群文件系统
  18. 挂载点:/shared 选中自动挂载 用户名:oracle 组名:dba 卷:SHARED 单击确定 RA-Oracle_GI_12101-asmca-Creating Filesystem
  19. 要完成文件系统的创建,请以root身份运行此脚本。
  20. RA-Oracle_GI_12101-asmca-Creating Filesystem acfs script [root@collabn1 ~]# /u01/app/oracle/cfgtoollogs/asmca/scripts/acfs_script.sh ACFS文件系统/shared已挂载到节点collabn1 ACFS文件系统/shared已挂载到节点collabn2
  21. 最后,文件系统已挂载到两个节点上。
  22. [root@collabn1 ~]# df -k 文件系统 1K-块 已用 可用 使用% 挂载点 /dev/mapper/vg_collabn1-lv_root 27407400 8778184 17236988 34% / tmpfs 1544640 653576 891064 43% /dev/shm /dev/sda1 495844 55641 414603 12% /boot 12cR1 976728060 863308972 113419088 89% /media/sf_12cR1 /dev/asm/shared-336 1048576 80176 968400 8% /shared [root@collabn2 ~]# df -k 文件系统 1K-块 已用 可用 使用% 挂载点 /dev/mapper/vg_collabn1-lv_root 27407400 8883544 17131628 35% / tmpfs 1544640 653576 891064 43% /dev/shm /dev/sda1 495844 55641 414603 12% /boot /dev/asm/shared-336 1048576 80176 968400 8% /shared


安装数据库软件

[编辑 | 编辑源代码]
  1. 在VNC会话中,以oracle用户身份运行安装程序。
  2. [oracle@collabn1 ~]$ /media/sf_12cR1/database/runInstaller 正在启动Oracle通用安装程序... 正在检查临时空间:必须大于500 MB。实际16829 MB 通过 正在检查交换空间:必须大于150 MB。实际3023 MB 通过 正在检查监视器:必须配置为至少显示256色。实际16777216 通过 正在准备从/tmp/OraInstall2013-08-08_06-27-48PM启动Oracle通用安装程序。请稍候...
  3. 将出现启动画面。
  4. RA-Oracle_RAC_12101-Install-Splash
  5. 取消选中我希望通过My Oracle Support接收安全更新,然后点击下一步
  6. RA-Oracle_RAC_12101-Install-Security_updates
  7. 点击确认您不想收到安全更新通知。
  8. RA-Oracle_RAC_12101-Install-Address not specified
  9. 选择跳过软件更新,然后点击下一步
  10. RA-Oracle_RAC_12101-Install-Software_updates
  11. 选择仅安装数据库软件,然后点击下一步
  12. RA-Oracle_RAC_12101-Install-Installation option
  13. 选择Oracle Real Application Clusters数据库安装,然后点击下一步
  14. RA-Oracle_RAC_12101-Install-Grid Installation option
  15. 验证所有节点是否都已选中,然后点击下一步
  16. RA-Oracle_RAC_12101-Install-Node selection
  17. 点击下一步接受默认语言选择。
  18. RA-Oracle_RAC_12101-Install-Product languages
  19. 选择企业版,然后点击下一步
  20. RA-Oracle_RAC_12101-Install-Database edition
  21. 如果您之前已创建了ACFS 1GB文件系统,则现在需要指定另一个位置。
  22. Oracle基础:/u01/app/oracle 软件位置:/u01/app/oracle/product/12.1.0/dbhome_1 单击下一步 RA-Oracle_RAC_12101-Install-Installation location
  23. 将所有组(除OSOPER组外,将其保留为空)保留为dba,然后点击下一步
  24. RA-Oracle_RAC_12101-Install-Operating system groups
  25. 安装程序检查所有先决条件。
  26. RA-Oracle_RAC_12101-Install-Prerequisite checks
  27. 查看安装摘要,可以选择保存响应文件,然后点击安装
  28. RA-Oracle_RAC_12101-Install-Summary
  29. 在普通的笔记本电脑配置上,安装可能需要半小时。
  30. RA-Oracle_RAC_12101-Install-Installation progress
  31. 在即将完成之前,安装程序会要求以root身份在两个节点上运行脚本。不要点击确定
  32. RA-Oracle_RAC_12101-Install-Execute root scripts
  33. 以root身份在两个节点上执行脚本。

  34. [root@collabn1 ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh 正在执行 Oracle 12c 的 root 用户操作 以下环境变量已设置: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/12.1.0/dbhome_1 输入本地 bin 目录的完整路径名: [/usr/local/bin]: “dbhome” 的内容未更改。无需覆盖。 “oraenv” 的内容未更改。无需覆盖。 “coraenv” 的内容未更改。无需覆盖。 当创建数据库时,数据库配置助手将根据需要将条目添加到 /etc/oratab 文件中 完成运行 root 脚本的通用部分。现在将执行特定于产品的 root 操作。 [root@collabn1 ~]# ssh collabn2 root@collabn2 的密码: 最后登录:2013年8月8日星期四 16:54:49 来自 192.168.78.1 [root@collabn2 ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh 正在执行 Oracle 12c 的 root 用户操作 以下环境变量已设置: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/12.1.0/dbhome_1 输入本地 bin 目录的完整路径名: [/usr/local/bin]: “dbhome” 的内容未更改。无需覆盖。 “oraenv” 的内容未更改。无需覆盖。 “coraenv” 的内容未更改。无需覆盖。 当创建数据库时,数据库配置助手将根据需要将条目添加到 /etc/oratab 文件中 完成运行 root 脚本的通用部分。现在将执行特定于产品的 root 操作。
  35. 在之前的窗口中点击确定,然后点击关闭退出安装程序。
  36. RA-Oracle_RAC_12101-Install-Completed


创建数据库

[编辑 | 编辑源代码]
  1. 运行数据库配置助手
  2. [oracle@collabn1 ~]$ /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbca
  3. 将出现启动画面。
  4. RA-Oracle_RAC_12101-DBCA Splash
  5. 选择创建数据库并点击下一步
  6. RA-Oracle_RAC_12101-DBCA Database Operation
  7. 选择使用默认配置创建数据库
  8. 全局数据库名称:RAC.racattack 存储类型:自动存储管理 (ASM) 数据库文件位置:+DATA 快速恢复区:+FRA 数据库字符集:AL32UTF8 - Unicode UTF-8 通用字符集 管理密码:racattack 选中作为容器数据库创建 可插拔数据库名称:PDB (*)

    单击下一步

    RA-Oracle_RAC_12101-DBCA Creation mode


  9. 由于密码较弱,会显示警告。点击继续。
  10. 由于空间要求,先决条件检查可能会失败。可以通过选中忽略所有来安全地忽略。
  11. 单击下一步 RA-Oracle_RAC_12101-DBCA Prerequisite checks
  12. 查看摘要页面并点击完成
  13. RA-Oracle_RAC_12101-DBCA Summary
  14. 数据库创建已完成。点击退出,然后点击关闭
  15. RA-Oracle_RAC_12101-DBCA Database Created


华夏公益教科书