oracleNet

目标:能够自主处理大部分oracle客户端和服务端的网络配置问题

 

一、oracleNet的组成部分

客户端:tnsnames.ora        $ORACLE_HOME/ network/admin

服务器端:listener.ora        $ORACLE_HOME/ network/admin

服务器端:sqlnet.ora         $ORACLE_HOME/ network/admin

 

二、        工作原理

tnsnames.ora

监听器

sqlnet.ora

三、        配置方法

1.         Tnsnames.ora

(1)         用服务名配置

ZERO2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.32.174.204)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = zero2[F1] )

    )

  )

(2)         用实例名配置

db01 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.32.174.204)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SID = zero1[F2] )

    )

  )

 

(3)         检查工具 tnsping(只测试主机和端口)

   Tnsping db01;    ----db01 tnsname

2.        listener.ora

(1)         动态注册:instance_name,service_name

     

(2)         静态注册:配置 listener.ora 文件

    

以下内容注册了一个服务(位置请对照listener.ora文件)

  (SID_DESC =

      (GLOBAL_DBNAME = Zero2[F3] )

      (ORACLE_HOME = D:/oracle/ora92)

      (SID_NAME = Zero1)

    )

 

(3)         Lsnrctl 监听器管理工具的使用

运行cmd

键入lsnrctl

键入help,可以看到列出的所有命令

键入stutas,可以看到当前监听器的状态以及监听的服务的信息

其他命令还有start,stop,reload ……

键入 help reload,可以获取reload 命令的使用方法

3.        sqlnet的配置

        

(1)         操作系统认证(只要登录主机就可以以如下方式登录数据库:sys/anypassword as sysdba)

实现方法:

1)配置sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NTS)  --windows

SQLNET.AUTHENTICATION_SERVICES= (ALL)  --unix

(2)         密码文件认证(必须通过oracle的密码认证才能以sysdba的角色登录)

实现方法

1)配置sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NONE)

2)设置oracle参数

用sys用户登录,发布命令:alter system set remote_login_passwordfile=EXCLUSIVE SCOPE=SPFILE;

3)创建密码文件(oracle把sysdba和sysopr角色的密码存放到该文件中):

orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID  password=pwd entries=10;

4)重启数据库

(3)         Tnsname解析和主机名解析

1)Tnsname解析:把登录时提供的连接字符串当作tansname解析,登录时从tnsnames.ora文件中找到相应的数据库信息。

2)主机名解析:把登录时提供的连接字符串当作主机名解析,登录时直接找该主机上的oracle服务。

3)主机名解析的注意事项:

    a. oracle 服务的端口必须为1521。

    b. listener.ora文件必须配置与主机名一致的服务,例如:

   (SID_DESC =

      (GLOBAL_DBNAME = lenovo-282d43b3[F4] )

      (ORACLE_HOME = D:/oracle/ora92)

      (SID_NAME = Zero1)

    )

    c. 监听器名称必须为LISTENER,oracle已默认设置了。

(4)         Ip的限制,见附件

四、        常见的问题

(1)         不能解析名称

在tnsnames.ora文件没有配置相应的连接字符串。

(2)         Tnsping没有问题但连接时报不能解析服务名

服务名有问题,服务端没有在LISTENER.ora中配置服务名:

ZERO2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.32.174.204)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = zero2)

    )

  )

 

(3)         没有监听器

 1)监听器的监听的主机或端口有误:

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

      )

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = lenovo-282d43b3)(PORT = 1521))

      )

    )

  )

 2tansname文件的端口配置错误。

ZERO2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.32.174.204)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = zero2)

    )

  )

 

(4)         找不到主机

tansname文件的主机配置错误

ZERO2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.32.174.204)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = zero2)

    )

  )

 

(5)         忘记了sys密码怎么办(orapwd)

 

方法一修改密码

    以其他用户登录修改sys的密码alter user sys identified by lin;

 

方法二,操作系统认证

   1)配置sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NTS)  --windows

SQLNET.AUTHENTICATION_SERVICES= (ALL)  --unix

   2)登录主机,以任意密码登录数据库

 

方法三,如果以上方法都不能用只能用orapwd工具了

   1)登录主机发布如下命令:

   orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID  password=pwd entries=10 force=y;                ----unix

   orapwd file=%ORACLE_HOME%/database/pwd%ORACLE_SID%.ora  password=pwd entries=10 force=y;     ----windows

说明

a. $ORACLE_HOME 是数据库主目录可以用具体的目录代替

b. $ORACLE_SID 是数据库实例名可以用具体的实例名代替

c. 如果不支持force=y则必须先手动删除原有的pwd$ORACLE_SID.ora文件。

d. 配置完成后登录时报 ORA-01031: insufficient privileges则需要重启数据库。

 

 

 

 


 [F1]与监听器的GLOBAL_DBNAME或DBNAME对应

 [F2]与数据库的instance_name 对应

 [F3]Tnsnames.ora文件中的SERVICE_NAME使用

 [F4]主机名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值