• ORACLE监听配置及测试实验


    实验一:

    修改db_domain和service_name

    我们将Db_name和Db_domain两个参数用’.’连接起来,表示一个数据库,并将该数据库的名称称为Global_name即等于service_name,即它扩展了Db_name。

    SYS@VDEDU > show parameter db_domain--查看db_domain

    NAME      TYPE  VALUE

    ------------------------------------ ----------- ------------------------------

    db_domain      string

    SYS@VDEDU > alter system set db_domain='oracle.com' scope=spfile;

    System altered.

    tnsnames.ora是Oracle客户端的网络服务名配置文件,用于存放该客户端配置的可连接实例的参数

    可以在tnsname里修改service_name,加上.oracle.com

    wps494.tmp

    lsnrctl status

    LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 31-MAY-2018 16:27:17

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

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle01)(PORT=1521)))

    STATUS of the LISTENER

    ------------------------

    Alias                     LISTENER

    Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

    Start Date                31-MAY-2018 14:25:47

    Uptime                    0 days 2 hr. 1 min. 30 sec

    Trace Level               off

    Security                  ON: Local OS Authentication

    SNMP                      OFF

    Listener Parameter File   /u01/app/oracle/product/11.2.4/dbhome_1/network/admin/listener.ora

    Listener Log File         /u01/app/oracle/diag/tnslsnr/oracle01/listener/alert/log.xml

    Listening Endpoints Summary...

      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle01)(PORT=1521)))

      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

    Services Summary...

    Service "VDEDU.oracle.com" has 1 instance(s).

      Instance "VDEDU", status READY, has 1 handler(s) for this service...

    Service "VDEDUXDB.oracle.com" has 1 instance(s).

      Instance "VDEDU", status READY, has 1 handler(s) for this service...

    The command completed successfully

    Lsnrctl status查看service

    Sqlplus / as sysdba再启动数据库

    Quit 退出sqlplus

    此时再登录,就可以了

    [oracle@oracle01 admin]$ sqlplus scott/oracle@VDEDU

    当客户端有用户想要操作数据库的时候,比如说在数据库下建表,插入、删除数据,这个时候用户需要登录认证,而用户的登录就是一次连接请求,是客户端与服务器的连接,oracle服务器需要监听到这个请求,然后对此连接的用户名密码进行判断,因此必须要有一个监听进程,就是用来监听客户端的连接以及断开请求,这就决定了运行连接命令 SQL>conn /as sysdba之前必须已经启动了监听进程

    数据库启动时,查看lsnrctl status可以看到动态监听、静态监听和对应实例

    wps4A5.tmp

    关闭数据库时只能看到静态监听

    实验二

    设置静态监听

    首先进去$ORACLE_HOME/network/admin目录下,修改listener.ora

    写入静态参数,注意第一行顶格写,下面的行都不要顶格写

    SID_LIST_LISTENER = ##(此处应与监听名相同)

            (SID_LIST =

            (SID_DESC =

            (GLOBAL_DBNAME = kingsql_static) ##(Service_name)

            (ORACLE_HOME =/u01/app/oracle/product/11.2.0/dbhome_1)

            (SID_NAME=VDEDU) ##(实例)

            ) )

    Lsnrctl reload 监听文件重载

    关闭数据库

    此时再查看lsnrctl status,只能看到静态监听

    wps4A6.tmp

    sqlplus sys/oracle@192.168.183.132:1521/kingsql_static as sysdba此时数据库如果没有启动也能进入

    Sqlplus scott/oracle@192.168.183.132:1521/kingsql_static

    配置静态监听的好处:静态注册,不管数据库有没有打开,监听都已经启动。而动态监听是数据库开启之后才启动。

    注册就是将数据库作为一个服务注册到监听程序。

    客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库。

    这个服务名可能与实例名一样,也有可能不一样。

    在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务)

    相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对应的服务名(一个数据库可能对应有多个服务名),当客户端需要连接数据库时,只需要提供服务名,就可以建立客户端和服务器之间的连接.

    动态注册不需要显示的配置listener.ora文件,实例MOUNT时,PMON进程就会根据instance_name,service_name参数将实例和服务动态注册到listerer中。

    动态监听的优点:
    (1)不需要人工干预,在lsnrctl start后,会自动注册数据库的instance_name,service_name,然后tns不论使用SID和SERVICE_NAME均可以连接上来
    (2)修改了SERVICE_NAME或者SID不用修改listener.ora文件

    (3)动态注册的数据库通过状态信息中的状态READY或状态BLOCKED(对于一个备用数据库)来指明。

    不管关闭何时数据库,动态注册的数据库都会动态地从 监听器注销,而与之相关的信息将从状态列表中消失。

    这样,不管数据库是在运行还是已经关闭,监听器总是知道它的状态。

    该信息将被用于连接请求的回退(fallback)和负载平衡。动态监听由PMON进程会向监听进行动态注册,也可以手动注册:ALTER SYSTEM REGISTER;

    实验三

    创建第二个监听程序

    编辑listener.ora

    wps4C6.tmp

    LSNR2 =

      (DESCRIPTION_LIST =

       (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle01)(PORT = 1528))

        (ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1528))

       )

      )

    查看本地监听

    SYS@VDEDU>show parameter local_Listener

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    local_listener                       string

    修改数据库本地监听,使数据库的登录向LSNR2申请

    SYS@VDEDU>alter system set local_listener=’(ADDRESS = (PROTOCOL = TCP)(HOST = oracle01)(PORT = 1528))’; 

    System altered.

    重启数据库

    Lsnrctl start/stop/status/reload=Lsnrctl start/stop/status/reload LISTENER

    Lsnrctl start/stop/status/reload LSNR2不能省略

    修改tnsname.ora

    KINGSQL =

      (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle01)(PORT = 1528))

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = KINGSQL)

        )

      )

    把端口修改为1528

    再次登录 sqlplus scott/oracle@KINGSQL 就是通过LSNR2监听(1528端口)登录了

  • 相关阅读:
    【高精度】NCPC 2014 C catalansqure
    【动态规划】【缩点】NCPC 2014 G Outing
    【KMP】【最小表示法】NCPC 2014 H clock pictures
    【图论】【宽搜】【染色】NCPC 2014 A Ades
    【模拟】NCPC 2014 E ceremony
    【模拟】NCPC 2014 D Dice Game
    【模拟】NCPC 2014 K Train passengers
    【二分】NEERC15 L Landscape Improved(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
    【模拟】NEERC15 G Generators(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
    【模拟】NEERC15 J Jump(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
  • 原文地址:https://www.cnblogs.com/kawashibara/p/9141223.html
Copyright © 2020-2023  润新知