跳转到内容

RAC 攻击 - Oracle 集群数据库在家/RAC 攻击 12c/集群软件调用

来自 Wikibooks,开放书籍,开放世界


本实验室的目标是演示 Oracle 快速应用程序通知 (FAN) 调用。在 11g 之前的版本中,这些也被称为 Oracle 集群软件调用。

此功能是 Oracle 集群软件的一个相对不为人知的特性,可以触发脚本(或整个目录),以执行您可能希望在发生集群范围事件时执行的任何任务。

有关更多信息,请咨询此处提供的文档:http://docs.oracle.com/cd/E16655_01/rac.121/e17887/hafeats.htm#BABHAJAH

在本练习中,我们将配置每个节点上的某些 FAN 调用脚本,然后触发各种集群事件,以查看每个事件如何触发调用脚本。



  1. 从一个正常的运行集群开始,两个节点都运行起来。
  2. 从每个服务器上的一个 shell 提示符(以 oracle 身份登录)开始,导航到 /u01/app/12.1.0/grid/racg/usrco。使用 vi(或您喜欢的编辑器)在其中创建一个名为 callout1.sh 的文件。该文件的内容应为:
  3. #!/bin/ksh umask 022 FAN_LOGFILE=/tmp/`hostname`_uptime.log echo $* "reported="`date` >> $FAN_LOGFILE &
  4. 确保文件的权限设置为 755,使用以下命令:
  5. [oracle@<node_name> ~]$ chmod 755 /u01/app/12.1.0/grid/racg/usrco/callout1.sh
  6. 监控每个节点上集群软件的日志文件。在每个节点上,启动一个新窗口并运行以下命令
  7. [oracle@<node_name> ~]$ tail -f /u01/app/12.1.0/grid/log/`hostname -s`/crsd/crsd.log
  8. 接下来,我们需要触发一个会导致调用触发的事件。一个这样的事件是节点关闭。关闭节点 collabn2 上的集群软件。
  9. [root@collabn2 ~]# crsctl stop crs CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'collabn2' CRS-2673: Attempting to stop 'ora.crsd' on 'collabn2' CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'colleabn2' CRS-2673: Attempting to stop 'ora.rac.db' on 'collabn2' CRS-2673: Attempting to stop 'ora.DATA.SHARED.advm' on 'collabn2' CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'collabn2' ... CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'collabn2' has completed CRS-4133: Oracle High Availability Services has been stopped.
  10. 执行此命令后,观察您在步骤 2 中开始监控的日志文件。因为我们在测试集群上设置了很长的超时,所以您可能需要等待几分钟才能看到任何内容。
    • 您最终应该看到记录节点已失败的条目,之后不久,您应该在 /tmp/<hostname>_uptime.log 文件中观察到一个条目,指示节点已关闭。
    • 注意哪些成员运行集群软件调用脚本。(幸存的成员可以运行命令以通知客户端和/或应用程序服务器,其中一个集群节点已关闭。)
    您应该在 /tmp/*.log 文件中看到以下消息NODE VERSION=2.0 host=collabn2 status=nodedown reason=public_nw_down incarn=0 timestamp=2013-08-13 12:15:51 timezone=-04:00 vip_ips= reported=Tue Aug 13 12:15:51 EDT 2013 INSTANCE VERSION=1.0 service=rac.racattack database=rac instance=RAC2 host=collabn2 status=down reason=USER timestamp=2013-08-13 12:15:51 timezone=-04:00 db_domain=racattack reported=Tue Aug 13 12:15:51 EDT 2013 NODE VERSION=2.0 host=collabn2 status=nodedown reason=public_nw_down incarn=0 timestamp=2013-08-13 12:15:51 timezone=-04:00 vip_ips= reported=Tue Aug 13 12:15:52 EDT 2013 NODE VERSION=1.0 host=collabn2 status=nodedown reason=member_leave incarn=271826344 timestamp=2013-08-13 12:17:23 timezone=-04:00 reported=Tue Aug 13 12:17:23 EDT 2013 NODE VERSION=1.0 host=collabn2 incarn=271826344 status=down reason=member_leave timestamp=13-Aug-2013 12:17:23 reported=Tue Aug 13 12:17:24 EDT 2013
  11. 重新启动集群软件。是否有节点启动事件?
  12. [root@collabn2 bin]# crsctl start crs
  13. 尝试关闭其中一台虚拟机 - 与之前的测试相比有什么区别?如果您禁用 Linux 网络接口或虚拟网卡会怎样?
  14. 如果您愿意,您可以进行更多测试。另一个有趣的事件是数据库实例意外关闭。在安装数据库后返回此实验室以测试这种情况。
  15. [oracle@collabn2 ~]$ sqlplus "/ as sysdba" SQL*Plus: Release 12.1.0.1.0 Production on Tue Aug 13 12:34:52 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL> shutdown abort; ORACLE instance shut down. SQL>


华夏公益教科书