ITPub博客

首页 > 数据库 > Oracle > LoadBalance测试实验

LoadBalance测试实验

原创 Oracle 作者:huming0927 时间:2011-07-08 23:04:24 0 删除 编辑

以下是我根据张晓明《大话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/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: DataGuard基本理论
请登录后发表评论 登录
全部评论
  • 博文量
    24
  • 访问量
    28962