跳转到内容

RAC 攻击 - Oracle 集群数据库实战 / RAC 攻击 12c / 节点隔离

来自维基教科书,开放的书籍,开放的世界


本实验的目标是通过强制触发 Oracle 集群软件的内置隔离功能,来演示 Oracle 集群软件的隔离能力。在 Oracle 集群软件中,隔离是在节点级别处理的,通过重启无响应或故障节点。这类似于“射杀另一台机器”(STOMITH)算法,但实际上是自杀而不是影响另一台机器。在线上有很多好的信息来源。



  1. 从一个正常运行的集群开始,数据库实例正常运行。
  2. 监控每个节点上的集群软件日志文件。在每个节点上,打开一个新的窗口并运行以下命令[oracle@<node_name> ~]$ tail –f /u01/app/12.1.0/grid/log/`hostname -s`/crsd/crsd.log [oracle@<node_name> ~]$ tail –f /u01/app/12.1.0/grid/log/`hostname -s`/cssd/ocssd.log


  3. 我们将模拟“拔掉”网络接口,通过将一个私有网络接口关闭。在 collabn2 节点上,通过运行以下命令(作为 root 用户)关闭私有网络接口。
  4. [root@collabn2 ~]# ifconfig eth1 down或者,您也可以通过在 VirtualBox 中物理地将 **内部网络** 接口断开连接来模拟此操作。 转到 collabn2 -> 设置 -> 网络 -> 适配器 2,取消选中 **电缆已连接** 并单击 **确定**。 RA-Virtualbox_4216-Cable Disconnect
  5. 运行此命令后,观察您在步骤 2 中开始监控的日志文件。您应该在这些日志文件中看到错误,最终(可能需要一两分钟,实际上)您将观察到一个节点自行重启。
  6. 如果您使用 **ifconfig** 触发了故障,则该节点将重新加入集群,并且实例应该自动启动。 如果您使用 **VirtualBox** 触发了故障,则该节点将不会重新加入集群。
    • 哪个文件包含指示节点未重新加入集群原因的错误消息?
    • 重启的节点总是与发生故障的节点相同吗?为什么或为什么不?


华夏公益教科书