zoukankan      html  css  js  c++  java
  • Oracle NET

    1.客户端通过@ora10g的名字去tnsname.ora文件获取服务器的具体连接信息

    2.客户端通过tnsname.ora中的描述向服务器发出链接请求服务器端

    3.服务器的监听器接收到连接请求后,验证请求的服务的有效性

    4.服务器端产生一个服务进程和客户端进程建立连接

     

    查看会话建立过程:

    $ netstat -tlnp | grep 1521

    $ sqlplus sys/password@orcl as sysdba

    $ netstat -tnp | grep sqlplus

    $ kill -9 1234 杀死维护sqlplus的进程

    监听的配置

    配置文件:

    $ vi $ORACLE_HOME/network/admin/listener.ora

    通过netca添加新的监听服务Listener15210,端口使用15210

    $ vi listener.ora

    $ netstat -tln|grep 1521

    $ lsnrctl status listener15210

     

    通过netmgr配置高级选项

     

    通过lsnrctl命令来启动/停止/查看/重载监听器/服务

    lsnrctl start|stop|status|reload|service

    指定监听的名称:

    $ lsnrctl status listener15210

     

    网络环境变化,需要检查listener.ora和/etc/hosts文件

     

    netca删除Listener15210

    实例的配置

    静态注册和动态注册

    什么是静态注册

    就是监听器的配置文件中写明了监听哪个实例 需要配置SID_DESC字段

    定位实例的方式可以使用SID_NAME或者SERVICE_NAME来定位

    什么是动态注册

    就是监听器的配置文件中没写明监听哪个实例

    要通过PMON告知监听器要监听的具体实例

    PMON是将SERVER_NAME告诉给监听器 这个过程就是注册

    默认一分钟PMON注册一次 也就是说启动监听 还没注册时 是无法连接的

    添加3种方式,后面的删掉,用文档改写

    区分静态注册和动态注册

    lsnrctl status

    是 ready 就是动态

    是 unknow 就是静态

     

    静态注册listener.ora文件信息:

    $ vi listener.ora

    SID_LIST_LISTENER =

      (SID_LIST =

            (SID_DESC =

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

                    (SID_NAME =ora11g)

            )

      )

    $ lsnrctl reload

    .....

    Services Summary...

    Service "ora11g" has 1 instance(s).

      Instance "ora11g", status UNKNOWN, has 1 handler(s) for this service...

    状态总是显示未知的,当有请求时,监听器才去确认数据是否存在

     

    动态注册

    Oracle9i起实例使用动态服务注册来通知监听程序有关其数据库服务的信息。

    服务注册依赖PMON 进程向监听程序注册实例信息 注册间隔为1分钟左右

    手动注册命令 alter system register;

    无需在listener.ora 文件中设置任何信息 此文件可以不存在

     

    3种注册方式:

    本地默认端口监听

    本地非默认端口监听

    远程监听

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

    创建本地非默认端口:

     

    netca创建listener15210,使用15210端口

    $ netstat -tlnp | grep 15210

     

    写入监听的别名:

    $ cd $ORACLE_HOME/network/admin

    $ vi tnsnames.ora  本地命名文件

    listener15210 =

      (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = node1.test.com)(PORT = 15210))

      )

      

    修改参数:

    SQL> ALTER SYSTEM SET LOCAL_LISTENER=listener15210;

    SQL> ALTER SYSTEM register;     立即注册(可选)

     

    服务信息已添加到新的监听中:

    $ lsnrctl status listener15210

     

    客户端指定新端口连接:

    $ sqlplus sys/password@192.168.0.1:1521/orcl as sysdba 报错

    $ sqlplus sys/password@192.168.0.1:15210/orcl as sysdba

     

    删除配置:

    SQL> ALTER SYSTEM SET LOCAL_LISTENER='';

    SQL> ALTER SYSTEM register;

    $ vi tnsnames.ora 删除listener15210别名

    netca删除15210端口的监听

     

    客户端配置

    轻松连接:

    $ sqlplus sys/password@192.168.0.1:1521/orcl as sysdba

    适用于临时性的连接

     

    本地命名:

    查看现有的主机连接字符串

    $ cd $ORACLE_HOME/network/admin

    $ vi tnsnames.ora

     

    $ sqlplus sys/password@orcl as sysdba

     

    使用netca添加新的主机连接字符串orcl192 第三项

     

    $ sqlplus sys/password@orcl192 as sysdba

    SQL> select name from v$database;

     

    tnsping测试,不需要用户名和口令:

    $ tnsping 192.168.0.1:1521/orcl

    $ tnsping orcl192

     

    解析方法的顺序:

    $ vi sqlnet.ora

    netca可以修改 第二项

     

    恢复默认设置:

    SQL> alter system set local_listener='';

    SQL> alter sytem register;

     

    netca删除不需要的监听和连接配置

  • 相关阅读:
    hadoop基础学习---数据管理策略
    hadoop基础学习---基本概念
    hadoop配置
    linux配置java环境
    Linux使用expect实现自动登录的脚本
    机器学习系列-寒小阳
    深度学习与计算机视觉系列-寒小阳
    深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全
    深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统
    深度学习与计算机视觉系列(10)_细说卷积神经网络
  • 原文地址:https://www.cnblogs.com/shan2017/p/7367399.html
Copyright © 2011-2022 走看看