• PL/SQL远程连接Oracle的方式,无需安装客户端


    第一次用PL/SQL Developer这个非官方的软件,遇到了种种困难,幸好通过万能的Google已经全部解决,记录下来备察.
    前提是保证你的远程oracle服务器一切正常.
     
    微软客户端设置
    使用oracle免费发放的instant client来代替oracle client,免去了安装的麻烦,下载instantclient-basiclite-nt-11.2.0.2.0.zip解压到你想要放到的任何目录,如:D:oracleinstantclient_11_2,创建一个名叫tnsnames.ora的文件,放到该目录下,可以先创建成txt文档,保存完下面的内容再把扩展名.txt去掉:
    myDB =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.23)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = testdb)
    )
    )
    注:
    myDB为连接数据库别名
    HOST = 192.168.7.23为你连接的数据库ip
    PORT = 1521 为你数据的端口
    SERVICE_NAME = testdb 为你数据库实例名
     
    右击我的电脑选属性”->“高级”->“环境变量”->”系统变量
    新增下面两个变量
    TNS_ADMIN    D:oracleinstantclient_11_2
     

    NLS_LANG    SIMPLIFIED CHINESE_CHINA.ZHS16GBK
     
     
    软件上的设置(版本为8.0)
    在PLSQL Developer选择Tools > Preferences > connection,在右侧的 "Oracle Home" and "OCI Library"中填入以下内容:
    D:oracleinstantclient_11_2
    D:oracleinstantclient_11_2oci.dll
    完成以上的设置应该就能正常登录数据库了,如果还有别的问题,只能再次Google.
     
     
     

    如何为一个instance配置多个监听,并且实现Client Load Balancing和Client Load Balancing。
    打开NETCA,配置两个监听器。
    LISENTER,默认监听器,一路next,就配置完毕, 监听端口1521。
    配置LISENTER2,注意监听端口改为1522,其它和LISENTER一致。
    这个时候,LISENTER已经可以使用了。


    但是LISENTER2还是不行,因为Oracle只会为第一个默认的监听注册服务
    在$ORACLE_HOME/NETWORK/ADMIN,编辑lisenter.ora文件,如下:
    红色字体为需要增加的内容
    SID_LIST_LISTENER2 =
    (SID_LIST =
      (SID_DESC =
        (SID_NAME = WWJ)
        (ORACLE_HOME = d:oracleproduct10.2.0db_1)
        (GLOBAL_DBNAME = WWJ) 
      )
    )


    LISTENER2 =
    (DESCRIPTION_LIST =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = valen)(PORT = 1522))
      )
    )

    SID_LIST_LISTENER =
    (SID_LIST =
      (SID_DESC =
        (SID_NAME = PLSExtProc)
        (ORACLE_HOME = d:oracleproduct10.2.0db_1)
        (PROGRAM = extproc)
      )
    )
    LISTENER =
    (DESCRIPTION_LIST =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = valen)(PORT = 1521))
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
    )
    需要解释的是,SID_LIST_<lisenter name> 这里的<lisenter name>要和LISTENER名称一致。
    SID_DESC则注册要提供服务的数据库实例名。这样LISTENER2 才能够提供服务。
    否则会报TNS-错误。
    测试过程,配置local tns name如下:
    1522 =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
      )
      (CONNECT_DATA =
        (SERVICE_NAME = wwj)
      )
    )
    1521 =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
      )
      (CONNECT_DATA =
        (SERVICE_NAME = wwj)
      )
    )

    local =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
      )
      (CONNECT_DATA =
        (SERVICE_NAME = wwj)
      )
    )
    1522和1521分别对应两个监听器,local稍后再解释:
    测试:
    SQL> conn@1521
    已连接。
    SQL> conn@1522
    已连接。
    OK,再看local,
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
    这里的意思是,该命名对应了两个监听端口,如果一个Crash,会立刻切换到另外一个。
    并且如果多个连接,会随机的分配监听。
    测试
    SQL> conn @local
    已连接。
    STOP LISENTER,再次连接,这个时候,连接比第一次慢了1秒钟左右
    SQL> conn @local
    已连接。
    成功,这时连接上了LISTENER2
  • 相关阅读:
    【ASP.Net MVC3 】使用Unity 实现依赖注入
    小菜学习设计模式(五)—控制反转(Ioc)
    ASP.NET MVC中使用Unity Ioc Container
    Unity依赖注入使用详解
    单例模式实现
    Oracle书籍资料链接——更新ing
    eclipse设置控制台字体大小
    eclipse——反编译插件
    java.lang.String里面的trim()方法——删除首尾空格
    java关键词整理——思维导图
  • 原文地址:https://www.cnblogs.com/a15821617282/p/3746885.html
Copyright © 2020-2023  润新知