RAC 攻击 - Oracle 集群数据库在家庭/客户端负载均衡
外观
注意:此实验室是为 11.1 编写的,在 11.2 中没有显示相同的行为 - 它需要更新!
--
- 从 VMware 控制台中开启两个节点。
[root@collabn1 ~]# srvctl status database -d RAC Instance RAC1 is running on node collabn1 Instance RAC2 is running on node collabn2
- 在数据库上打开一个 SQLPlus 会话,并确认SH用户没有会话。SQL> select inst_id, count(*) from gv$session where username='SH' group by inst_id; 没有选择行
- 通过清除 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 状态:就绪 本地服务器
- 在您另一个已连接的 SQLPlus 会话中,密切关注连接的平衡。同时,打开一个新的 shell 会话并运行此脚本,该脚本将打开 160 个到数据库的连接。a=160; while [ $a -gt 0 ]; do sqlplus sh/sh@RAC & a=$((a-1)) done 在客户端负载均衡期间,连接如何在数据库实例之间分配?注意:在 11.2 中,这些连接在 SCAN 监听器而不是 RAC 节点上进行负载均衡。
- 通过运行以下两个命令来终止所有 sqlplus 会话。运行第二个命令后,在您开始看到消息 "no more job" 后按 <Ctrl-C>。killall sqlplus while true; do fg; done <Ctrl-C>