首页 > 数据库 > Oracle > LoadBalance测试实验
以下是我根据张晓明《大话Oracle RAC》中的方法我的一个生产系统做的LB测试:
LB测试前的准备工作
SQL> show parameter listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string
remote_listener string LISTENERS_YXDB
单纯的Client-Side
LB
1、准备客户端tnsnames.ora内容
(LOAD_BALANCE = yes)
2、去掉Server-Side LoadBalance内容:
alter system set remote_listener='' scope=spfile sid='*';
3、重启Database和Listener
srvctl stop database -d yxdb
srvctl stop listener -n yxdb1
srvctl stop listener -n yxdb2
srvctl start listener -n yxdb1
srvctl start listener -n yxdb2
srvctl start database -d yxdb
4、清空两个节点的Listener日志并检验清空后的效果
cat /dev/null > $ORACLE_HOME/network/log/listener_yxdb1.log
cat /dev/null > $ORACLE_HOME/network/log/listener_yxdb2.log
grep establish $ORACLE_HOME/network/log/listener_yxdb1.log | wc -l
grep establish $ORACLE_HOME/network/log/listener_yxdb2.log | wc -l
grep INSTANCE_NAME $ORACLE_HOME/network/log/listener_yxdb1.log | wc -l
grep INSTANCE_NAME $ORACLE_HOME/network/log/listener_yxdb2.log | wc -l
5、在客户端执行测试脚本,建立100个链接
test.bat > LB_test1-2.log
6、备份listener脚本
cp $ORACLE_HOME/network/log/listener_yxdb1.log $ORACLE_HOME/network/log/listener_yxdb1_test1-2.log
cp $ORACLE_HOME/network/log/listener_yxdb2.log $ORACLE_HOME/network/log/listener_yxdb2_test1-2.log
7、检查结果
grep yxdb1 $ORACLE_HOME/network/log/LB_test1-2.log | wc -l
100
grep yxdb2 $ORACLE_HOME/network/log/LB_test1-2.log | wc -l
0
# yxdb1
grep establish $ORACLE_HOME/network/log/listener_yxdb1_test1-2.log | wc -l
100
grep INSTANCE_NAME=yxdb $ORACLE_HOME/network/log/listener_yxdb1_test1-2.log | wc -l
0
# yxdb2
grep establish $ORACLE_HOME/network/log/listener_yxdb2_test1-2.log | wc -l
0
grep INSTANCE_NAME=yxdb $ORACLE_HOME/network/log/listener_yxdb2_test1-2.log | wc -l
0
测试单纯的Server-Side
LB
1、准备客户端tnsnames.ora内容
(LOAD_BALANCE = off)
2、数据库端准备工作
alter system set remote_listener='LISTENERS_YXDB' scope=spfile sid='*';
3、重启Database和Listener
srvctl stop database -d yxdb
srvctl stop listener -n yxdb1
srvctl stop listener -n yxdb2
srvctl start listener -n yxdb1
srvctl start listener -n yxdb2
srvctl start database -d yxdb
4、清空两个节点的Listener日志并检验清空后的效果
cat /dev/null > $ORACLE_HOME/network/log/listener_yxdb1.log
cat /dev/null > $ORACLE_HOME/network/log/listener_yxdb2.log
grep establish $ORACLE_HOME/network/log/listener_yxdb1.log | wc -l
grep establish $ORACLE_HOME/network/log/listener_yxdb2.log | wc -l
grep INSTANCE_NAME $ORACLE_HOME/network/log/listener_yxdb1.log | wc -l
grep INSTANCE_NAME $ORACLE_HOME/network/log/listener_yxdb2.log | wc -l
5、在客户端执行测试脚本,建立100个链接
test.bat > LB_test2-2.log
6、备份listener脚本
cp $ORACLE_HOME/network/log/listener_yxdb1.log $ORACLE_HOME/network/log/listener_yxdb1_test2-2.log
cp $ORACLE_HOME/network/log/listener_yxdb2.log $ORACLE_HOME/network/log/listener_yxdb2_test2-2.log
7、检查结果
grep yxdb1 $ORACLE_HOME/network/log/LB_test2-2.log | wc -l
56
grep yxdb2 $ORACLE_HOME/network/log/LB_test2-2.log | wc -l
44
# yxdb1
grep establish $ORACLE_HOME/network/log/listener_yxdb1_test2-2.log | wc -l
100
grep INSTANCE_NAME=yxdb $ORACLE_HOME/network/log/listener_yxdb1_test2-2.log | wc -l
0
# yxdb2
grep establish $ORACLE_HOME/network/log/listener_yxdb2_test2-2.log | wc -l
44
grep INSTANCE_NAME=yxdb $ORACLE_HOME/network/log/listener_yxdb2_test2-2.log | wc -l
44
测试混合的Client-Side、Server-Side LB
1、准备客户端tnsnames.ora内容
(LOAD_BALANCE = yes)
2、数据库端准备工作
alter system set remote_listener='LISTENERS_YXDB' scope=spfile sid='*';
3、重启Database和Listener
srvctl stop database -d yxdb
srvctl stop listener -n yxdb1
srvctl stop listener -n yxdb2
srvctl start listener -n yxdb1
srvctl start listener -n yxdb2
4、清空两个节点的Listener日志并检验清空后的效果
cat /dev/null > $ORACLE_HOME/network/log/listener_yxdb1.log
cat /dev/null > $ORACLE_HOME/network/log/listener_yxdb2.log
grep establish $ORACLE_HOME/network/log/listener_yxdb1.log | wc -l
grep establish $ORACLE_HOME/network/log/listener_yxdb2.log | wc -l
grep INSTANCE_NAME $ORACLE_HOME/network/log/listener_yxdb1.log | wc -l
grep INSTANCE_NAME $ORACLE_HOME/network/log/listener_yxdb2.log | wc -l
5、在客户端执行测试脚本,建立100个链接
test.bat > LB_test3-2.log
6、备份listener脚本
cp $ORACLE_HOME/network/log/listener_yxdb1.log $ORACLE_HOME/network/log/listener_yxdb1_test3-2.log
cp $ORACLE_HOME/network/log/listener_yxdb2.log $ORACLE_HOME/network/log/listener_yxdb2_test3-2.log
7、检查结果
grep yxdb1 $ORACLE_HOME/network/log/LB_test3-2.log | wc -l
68
grep yxdb2 $ORACLE_HOME/network/log/LB_test3-2.log | wc -l
32
# yxdb1
grep establish $ORACLE_HOME/network/log/listener_yxdb1_test3-2.log | wc -l
100
grep INSTANCE_NAME=yxdb $ORACLE_HOME/network/log/listener_yxdb1_test3-2.log | wc -l
0
# yxdb2
grep establish $ORACLE_HOME/network/log/listener_yxdb2_test3-2.log | wc -l
32
grep INSTANCE_NAME=yxdb $ORACLE_HOME/network/log/listener_yxdb2_test3-2.log | wc -l
32
附:
test.bat:
sqlplus wq9109/9109@wq9109 @test.sql &
sqlplus wq9109/9109@wq9109 @test.sql &
sqlplus wq9109/9109@wq9109 @test.sql &
……
sqlplus wq9109/9109@wq9109 @test.sql &
//共100条上述命令
test.sql:
select instance_name from v$instance
/
exit;[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14338195/viewspace-1052154/ ,如需转载,请注明出处,否则将追究法律责任。