跳转到内容

RAC 攻击 - Oracle 集群数据库在家庭/客户端负载均衡

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


注意:此实验室是为 11.1 编写的,在 11.2 中没有显示相同的行为 - 它需要更新!

--

  1. 从 VMware 控制台中开启两个节点
    [root@collabn1 ~]# srvctl status database -d RAC
    Instance RAC1 is running on node collabn1
    Instance RAC2 is running on node collabn2
    


  2. 在数据库上打开一个 SQLPlus 会话,并确认SH用户没有会话。SQL> select inst_id, count(*) from gv$session where username='SH' group by inst_id; 没有选择行
  3. 通过清除 REMOTE_LISTENER init 参数并重新注册,在两个实例上禁用服务器端负载均衡。在与监听器注册之前,重新启动它们以重置连接统计信息。SQL> alter system set remote_listener=''; 系统已更改。collabn1:/home/oracle[RAC1]$ lsnrctl stop collabn1:/home/oracle[RAC1]$ lsnrctl start SQL> -- 实例 RAC1 SQL> alter system register; 系统已更改。collabn1:/home/oracle[RAC1]$ lsnrctl services 服务 "RAC.vm.ardentperf.com" 有 1 个实例。实例 "RAC1",状态为 READY,为该服务有 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 拒绝:0 状态:就绪 本地服务器 collabn2:/home/oracle[RAC2]$ lsnrctl stop collabn2:/home/oracle[RAC2]$ lsnrctl start SQL> -- 实例 RAC2 SQL> alter system register; 系统已更改。collabn2:/home/oracle[RAC2]$ lsnrctl services 服务 "RAC.vm.ardentperf.com" 有 1 个实例。实例 "RAC2",状态为 READY,为该服务有 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 拒绝:0 状态:就绪 本地服务器
  4. 在您另一个已连接的 SQLPlus 会话中,密切关注连接的平衡。同时,打开一个新的 shell 会话并运行此脚本,该脚本将打开 160 个到数据库的连接。a=160; while [ $a -gt 0 ]; do sqlplus sh/sh@RAC & a=$((a-1)) done 在客户端负载均衡期间,连接如何在数据库实例之间分配?
  5. 通过运行以下两个命令来终止所有 sqlplus 会话。运行第二个命令后,在您开始看到消息 "no more job" 后按 <Ctrl-C>。killall sqlplus while true; do fg; done <Ctrl-C>


华夏公益教科书