• 20170808上课笔记


    Oracle NET

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

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

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

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

    监听的配置

    配置文件:

    $ 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

    监听关闭后,网络间客户端无法访问数据库,而本机不受影响(因为本机访问是通过进程并非通过网络)

    改IP情况需要修改以下文件

    vi /etc/sysconfig/network-scripts/ifcfg-eth0//ip第一块网卡修改文件

    vi /etc/hosts

    改主机名情况需要修改以下文件

    vi /etc/sysconfig/network

    vi /etc/hosts

    $ORACLE_HOME/network/admin/listener.ora//监听配置文件

    图形化工具

    netca//创建监听配置

    新建监听时,监听名不能相同,端口号不能相同

    netmgr//详细信息配置

    实例的配置

    静态注册和动态注册

             什么是静态注册

                       就是监听器的配置文件中写明了监听哪个实例需要配置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种注册方式:

    本地默认端口监听//管理员不需要做操作

    本地非默认端口监听//管理员进行配置需要修改local_listener

    远程监听 //监听和数据库不在同一台机器上 需要修改remote_listener

    本地非默认端口:

    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//不使用监听名,而是使用ip端口连接

    和本地命名 tasnames.ora文件配置

    共享模式和专有模式

    共享服务器的配置通过初始化参数dispatchers来配置

    可以通过DBCA来修改

    $ lsnrctl service

    SQL> show parameter disp

    SQL> show parameter shared_server

    专有模式和共享模式是可以兼容在一起使用的

    此时看用户如何选择

    tnsnames.ora中

    ORA10G =

      (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = dba.up.com)(PORT = 1521))

        (CONNECT_DATA =

          (SERVER = DEDICATED) # 不写这个值就是按服务器的模式来匹配

                                   # shared 指定使用共享方式连接

                                   # DEDICATED 指定使用专有模式连接

          (SERVICE_NAME = raw10g)

        )

      )

    测试三种模式

    ORCL_default =

      (DESCRIPTION =

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

        (CONNECT_DATA =

          (SERVICE_NAME = orcl)

        )

      )

    ORCL_dedicated =

      (DESCRIPTION =

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

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = orcl)

        )

      )

    ORCL_shared =

      (DESCRIPTION =

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

        (CONNECT_DATA =

          (SERVER = SHARED)

          (SERVICE_NAME = orcl)

        )

      )

    测试:

    $ sqlplus sys/password@orcl_default as sysdba

    $ sqlplus sys/password@orcl_dedicated as sysdba

    $ sqlplus sys/password@orcl_shared as sysdba

    SQL> select SID, SERVER, PROGRAM from v$session where USERNAME='SYS';

    SQL> select distinct sid from v$mystat;

    管理维护、大数据量导入、备份恢复等工作不适合用共享方式:

    SQL> shutdown immediate               共享连接下不能发布管理命令

    恢复原有设置:

    dbca修改为dedicated方式

    db link

    数据库A访问远程数据库B上面的表:

    在数据库A中,使用netca创建主机描述字符串orcl_dblink指向数据库B

    $ netca

    $ tnsping orcl_dblink

    在数据库A中创建数据库链接:

    SQL> create database link orcl_dblink_hr connect to hr identified by hr using 'orcl_dblink';

    using使用主机描述字符串orcl_dblink

    用户和口令都是数据库B上的

    db link的名字不要求和主机描述字符串一致

    访问数据库B中的表:

    SQL> select count(*) from hr.employees@orcl_dblink_hr;

    SQL> select count(*) from hr.employees, departments@orcl_dblink_hr;

  • 相关阅读:
    6_java_maven
    线性代数 linear algebra
    hadoop_wordcount_1027
    hadoop_worddistinct_1030
    hadoop_wordcount_1023
    搭建伪分布式_笔记
    linux-sunrpc
    linux-volatile
    linux---asmlinkage
    dqs_linux-1
  • 原文地址:https://www.cnblogs.com/guoxf/p/7323378.html
Copyright © 2020-2023  润新知