程序员人生 网站导航

oracle 配置监听器listener及net service

栏目:Oracle时间:2014-04-05 06:21:17

  建站学院(LieHuo.Net)Oracle教程 我用的数据库是oracle 10.2.0,全局数据库名 orcl.local,SID是orcl。创建oracle数据库的一个实例之后,就能从本地连接了,如下:

  sqlplus /nolog 或者 sqplus sys/orcl as sysdba or sqlplus "as sysdba"之后再输入用户名密码。

  几点比较挠头,在windows上安装时,如果安装到了Program Files下,由于路径中有空格,会造成不必要的麻烦。因此还是按照他的默认路径或者取一个没有空格的路径。

  1 。使用net configuration assistant 进行配置时,名称很容易搞混。配置完了再检查一下listener.ora与tnsnames.ora

  最简单的一个配置,我对由她生成的listner.ora进行了修改,修改了SID_NAME(必须地,蓝色),删掉了另外两行(可选,红色)

以下为引用的内容:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = D:worksoracleproduct10.2.0db_1)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = lenovo-f54d7532)(PORT = 1521))
    )
  )

  附:由net configuration assistant 的监听程序配置 生成的:

以下为引用的内容:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:/works/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = lenovo-f54d7532)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

  生成了之后,用lsnrctl start 来启动,并通过lsnrctl status 来查看状态。

  此时启动可能不成功,原因可是命名方法配置里的问题,查看sqlnet.ora:

以下为引用的内容:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)

  将蓝色的NTS改成NONE,try again。最好不要配置命名方法,如果生生了sqlnet文件的话,删掉它。

  2 用net configuration assistant 的本地net服务名配置,

  a) 填写“服务名”,数据库实例的名字,与SID相同,当前我创建库的时候用的是orcl,因此这里填orcl

  b)选TCP,

  c)主机名填IP,192.168.1.111 我的ip,我的机器使用固定IP,非DHCP

  端口号默认就1521,与监听器一致

  d)输入net服务名(网络服务名),默认与前面的一样。改成自己想用的名字,任意。

  此时生成的tnsnames.ora是下面的样子

以下为引用的内容:

PPPPDB=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = lenovo-f54d7532)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )


  将红色部分删掉(可选,它是第一次添加listner时就自动添加的),蓝色部分改成SID(必须的,不改的话报:ORA-28547: 连接服务器失败, 可能是 Oracle Net 管理错误)。

  修改后即如下面的样子:

以下为引用的内容:
PPPPDB=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = lenovo-f54d7532)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = orcl)
    )
  )

  HOST 可以是IP地址,域名,机器名。

  我用的就是机器名。

  3 命令行中 测试

sqlplus uuu/uuu123@PPPPDB

  如果联通成功就ok了。注意这时候如果使用sys用户的话,需要加上as  sysdba。用Net Manager 也能完成这些。注意检查一下生成的配置文件。确保在操作钱。DB是启动的。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐