Bo's Oracle Station

查看: 5583|回复: 13

关于网络的理解,不知道有没错帮忙看下(课程第6次:2016-09-05星期一)

[复制链接]

17

主题

32

帖子

140

积分

版主

Rank: 7Rank: 7Rank: 7

积分
140
发表于 2016-9-5 23:29:15 | 显示全部楼层 |阅读模式
本帖最后由 botang 于 2016-9-6 11:06 编辑

vim listener.ora
#动态注册LISTENER监听器
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15212))
    )
  )
#动态注册L2监听器
L2=
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15213))
    )
  )
#使监听器LISTENER静态注册,使其能够与上面的监听器进行一动一静
SID_LIST_LISTENER =
        (SID_LIST =
                (SID_DESC =
                        (GLOBAL_DBNAME= rcat.example.com)
                        (SID_NAME= rcat)
                        (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
        )
        )
        )
使监听器L2静态注册,使其能够与上面的监听器进行一动一静
SID_LIST_L2 =
        (SID_LIST =
                (SID_DESC =
                        (GLOBAL_DBNAME= rcat.example.com)
                        (SID_NAME= rcat)
                        (ORACLE_HOME= /u01/app/oracle/product/11.2.0/dbhome_1/
        )
        )
        )



vim tnsnames.ora
#使我的RCAT数据库动态监听在15212端口
RCAT =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15212))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rcat.example.com)
    )
  )
#动态注册FOR15212(是否这么理解?)
FOR15212 =
  (DESCRIPTION =
  (ADDRESS_LIST=
  (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15212))
  (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15213))

)
)

#使我的RCAT数据库动态监听在15213端口
RCAT2
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15213))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rcat.example.com)
    )
  )
#负载均衡静态15212和15213这两个监听端口
TIGER =
    (DESCRIPTION =
        (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15212))
        (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15213))
        (LOAD_BALANCE = yes )
    )
    (CONNECT_DATA =
        (SERVICE_NAME = rcat.example.com)
    )
  )


#以上需要使其动态注册生效,需要进sqlplus修改配置
. oraenv
rcat
sqlplus /nolog
conn /as sysdba
alter system set local_listener=FOR15212;
alter register;   #更快的让监听器动态注册,不然得等待2分钟以上
. oraenv
+ASM
sqplus /nolog
conn /as sysdba
alter system set local_listener=FOR15212;
alter register; #更快的让监听器动态注册,不然得等待2分钟以上



以上结束后查看LISTENER监听器状态
[oracle@station90 admin]$ lsnrctl services LISTENER;

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 05-SEP-2016 23:16:52

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=station90.example.com)(PORT=15212)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service... #静态注册
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "rcat.example.com" has 2 instance(s).
  Instance "rcat", status UNKNOWN, has 1 handler(s) for this service... #动态注册
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
  Instance "rcat", status READY, has 1 handler(s) for this service...  #静态注册
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "rcatXDB.example.com" has 1 instance(s).                        #静态注册
  Instance "rcat", status READY, has 1 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: station90.example.com, pid: 12730>
         (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=44903))
The command completed successfully

L2监听器的状态
[oracle@station90 admin]$ lsnrctl services l2

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 05-SEP-2016 23:19:08

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=station90.example.com)(PORT=15213)))
Services Summary...
Service "rcat.example.com" has 2 instance(s).
  Instance "rcat", status UNKNOWN, has 1 handler(s) for this service...   #动态注册
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
  Instance "rcat", status READY, has 1 handler(s) for this service...    #静态注册
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "rcatXDB.example.com" has 1 instance(s).                          
  Instance "rcat", status READY, has 1 handler(s) for this service... #静态注册
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: station90.example.com, pid: 12730>
         (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=44903))
The command completed successfully



问题1、关于以上理解是否有误
问题2、LISTENER监听的状态有+ASM 为静态注册,但是L2监听为什么没有+ASM这个监听?
问题3、rcatXDB.example.com是什么?
问题4、改什么配置的时候需要重启lsnrctl? 更改alter system set local_listener=FOR15212后是否也要重启监听?
问题5、一般生产环境是否都是这样配置的动态+静态+负载均衡?问题6、负载均衡怎么测试链接?问题7、其他未提到及发现的问题。








回复

使用道具 举报

17

主题

32

帖子

140

积分

版主

Rank: 7Rank: 7Rank: 7

积分
140
 楼主| 发表于 2016-9-6 00:13:29 | 显示全部楼层
默认监听都是动态的吗?
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-9-6 11:09:02 | 显示全部楼层
wuchunqiang 发表于 2016-9-6 00:13
默认监听都是动态的吗?
vim listener.ora
#动态注册LISTENER监听器
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15212))
    )
  )
#动态注册L2监听器
L2=
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15213))
    )
  )


以上正确,默认是动态注册的。没有配置listener.ora文件,都能启动。启动在1521并且动态注册。
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-9-6 11:10:42 | 显示全部楼层
#使监听器LISTENER静态注册,使其能够与上面的监听器进行一动一静
SID_LIST_LISTENER =
        (SID_LIST =
                (SID_DESC =
                        (GLOBAL_DBNAME= rcat.example.com)
                        (SID_NAME= rcat)
                        (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
        )
        )
        )
使监听器L2静态注册,使其能够与上面的监听器进行一动一静
SID_LIST_L2 =
        (SID_LIST =
                (SID_DESC =
                        (GLOBAL_DBNAME= rcat.example.com)
                        (SID_NAME= rcat)
                        (ORACLE_HOME= /u01/app/oracle/product/11.2.0/dbhome_1/
        )
        )
        )


静态注册,理解是对的。
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-9-6 11:15:24 | 显示全部楼层
本帖最后由 botang 于 2016-9-6 11:22 编辑
vim tnsnames.ora
#使我的RCAT数据库动态监听在15212端口
RCAT =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15212))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rcat.example.com)
    )
  )


#使我的RCAT数据库动态监听在15213端口
RCAT2
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15213))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rcat.example.com)
    )
  )




#使我的RCAT数据库动态监听在15212端口,这句有点问题:不是“使我的RCAT数据库动态监听“,rcat数据库要在15212端口注册服务,tnsnames.ora既然这么写,就说明tnsnames.ora所在的那台客户端认为在15212能找到注册服务,若不能找到就连不上。

同理:#使我的RCAT数据库动态监听在15213端口,这句有也点问题。
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-9-6 11:20:26 | 显示全部楼层
#动态注册FOR15212(是否这么理解?)
FOR15212 =
  (DESCRIPTION =
  (ADDRESS_LIST=
  (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15212))
  (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15213))

)
)


能这样理解,就对了!这段tnsnames.ora是给数据库服务器准备的,叫数据库服务器正确寻找并动态注册进两个监听器。
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-9-6 11:28:15 | 显示全部楼层
本帖最后由 botang 于 2016-9-6 11:29 编辑
#负载均衡静态15212和15213这两个监听端口
TIGER =
    (DESCRIPTION =
        (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15212))
        (ADDRESS = (PROTOCOL = TCP)(HOST = station90.example.com)(PORT = 15213))
        (LOAD_BALANCE = yes )
    )
    (CONNECT_DATA =
        (SERVICE_NAME = rcat.example.com)
    )
  )


1. tiger是给win客户端写的条目
2. tnsnames.ora里面给win客户端写的条目只管找得到或找不到数据库服务器,以及是否包含负载均衡和故障转移的找法。对于tnsnames.ora来说它管你(数据库服务器)是动态注册还是静态注册的。
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-9-6 11:33:44 | 显示全部楼层
#以上需要使其动态注册生效,需要进sqlplus修改配置
. oraenv
rcat
sqlplus /nolog
conn /as sysdba
alter system set local_listener=FOR15212;
alter register;   #更快的让监听器动态注册,不然得等待2分钟以上
. oraenv
+ASM
sqplus /nolog
conn /as sysdba
alter system set local_listener=FOR15212;
#以上需要使其动态注册生效,需要进sqlplus修改配置
. oraenv
rcat
sqlplus /nolog
conn /as sysdba
alter system set local_listener=FOR15212;
alter register;   #更快的让监听器动态注册,不然得等待2分钟以上
. oraenv
+ASM
sqplus /nolog
conn /as sysdba
alter system set local_listener=FOR15212;
alter register; #更快的让监听器动态注册,不然得等待2分钟以上
#更快的让监听器动态注册,不然得等待2分钟以上


对的,只是语法不是“alter register; “而是”alter system register; “
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-9-6 11:35:05 | 显示全部楼层
本帖最后由 botang 于 2016-9-6 12:04 编辑
以上结束后查看LISTENER监听器状态
[oracle@station90 admin]$ lsnrctl services LISTENER;

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 05-SEP-2016 23:16:52

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=station90.example.com)(PORT=15212)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service... #静态注册  是动态注册出现的
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "rcat.example.com" has 2 instance(s).
  Instance "rcat", status UNKNOWN, has 1 handler(s) for this service... #动态注册  是静态注册出现的
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
  Instance "rcat", status READY, has 1 handler(s) for this service...  #静态注册  是动态注册出现的
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "rcatXDB.example.com" has 1 instance(s).                        #静态注册 是动态注册出现的隐含服务,XMLDB
  Instance "rcat", status READY, has 1 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: station90.example.com, pid: 12730>
         (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=44903))
The command completed successfully

L2监听器的状态
[oracle@station90 admin]$ lsnrctl services l2

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 05-SEP-2016 23:19:08

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=station90.example.com)(PORT=15213)))
Services Summary...
Service "rcat.example.com" has 2 instance(s).
  Instance "rcat", status UNKNOWN, has 1 handler(s) for this service...   #动态注册  是静态注册出现的
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
  Instance "rcat", status READY, has 1 handler(s) for this service...    #静态注册  是动态注册出现的
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "rcatXDB.example.com" has 1 instance(s).                          
  Instance "rcat", status READY, has 1 handler(s) for this service... #静态注册  是动态注册出现的隐含服务,XMLDB
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: station90.example.com, pid: 12730>
         (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=44903))
The command completed successfully

至于为什么l2里没有动态注册的+ASM,是操作上什么问题。应该有的,见我课堂。
Screenshot.png
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-9-6 15:35:14 | 显示全部楼层
问题4、改什么配置的时候需要重启lsnrctl? 更改alter system set local_listener=FOR15212后是否也要重启监听?


前者要重启,后者不要
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-3-29 16:47 , Processed in 0.050621 second(s), 27 queries .

快速回复 返回顶部 返回列表