注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曾国藩的博客

 
 
 

日志

 
 

配置ORACLE 客户端连接到数据库-2  

2012-07-11 13:56:43|  分类: SQL/Oracle/Mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://blog.csdn.net/robinson_0612/article/details/5917103

四、常用的配置文件

    ldqp.ora         -->用于配置LDAP目录名称解析

    cman.ora         -->用于配置Oracle 连接管理参数

    tnsnames.ora     -->用于配置本地客户端或远程客户端的本地名称解析

    listener.ora     -->用于配置侦听器的相关注册信息

    sqlnet.ora       -->用于配置服务器或客户端所支持的解析方式

 

    netmgr(Net Manager)中的几个配置模块

        Profile 分支       -->对应于sqlnet.ora文件,可以设置客户端和服务器端同时应用的Oracle选项

        Sevice Naming 分支 -->用于配置客户端的名称解析,对应于tnsnames.ora文件

        Listener 分支      -->用于配置服务器端的数据库侦听器,对应于listener.ora文件

 

五、侦听器配置程序(lsnrctl) TNSPING命令  

    [oracle@robinson admin]$ lsnrctl

 

    LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 03-SEP-2010 21:30:52

 

    Copyright (c) 1991, 2005, Oracle.  All rights reserved.

 

    Welcome to LSNRCTL, type "help" for information.

 

    LSNRCTL> help   --使用help 查看lsnrctl 的扩展命令

    The following operations are available

    An asterisk (*) denotes a modifier or extended command:

 

    start               stop                status    -->停止、启动、查看状态等(常用)         

    services            version             reload             

    save_config         trace               spawn              

    change_password     quit                exit                

    set*                show*                  

   

    lsnrctl命令用法

        LSNRCTL> command [listener_name]

       

    lsnrctl命令演示参照前面例子中的使用

   

    tnsping命令用于测试网络的可联通性

        C:/>tnsping orcl

 

        TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-9-

        2010 21:52:45

 

        Copyright (c) 1997, 2005, Oracle.  All rights reserved.

 

        Used parameter files:

        F:/oracle/product/10.2.0/client_1/network/admin/sqlnet.ora

 

        Used TNSNAMES adapter to resolve the alias

        Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)

        (HOST = 192.168.1.128)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl.robin

        son.com)))

        OK (0 msec)

       

六、总结       

    1.客户端连接时的五个重要参数:用户名、密码、IP地址、端口号、服务名

    2.从客户端成功连接到数据库服务器

        客户端要求

            需要安装适当的客户端软件(Oracle Client)

            正确配置sqlnet.ora  

                NAMES.DIRECTORY_PATH = (TNSNAMES,EZCONNECT ….)      

                SQLNET.AUTHENTICATION_SERVICES = (NTS)   关于认证方式,请参考:Oracle 密码文件

                NAMES.DEFAULT_DOMAIN=robinson.com

--表示客户端在请求连接时将设定的缺省值追加网络服务名(net_service_name)之后

                    --如果db_domainrobinson.com,使用scott/tiger@orcl连接,则等同于使用scott@orcl.robinson.com进行连接

            正确配置tnsnames.ora

        服务器端要求

            listener已经启动

            数据库已经启动

  

 

    3.手动配置listener.oratnsnames.ora

        配置tnsname.ora文件:

            可用的配置工具

                oracle Net Configuration Assistant(GUI)       -->实际上修改tnsnames.ora文件

                oracle Net Manager(GUI)                       -->实际上修改tnsnames.ora文件

               

        给出下面的示例:

            orcl =                                           -->网络服务别名,可以修改,对应于连接标识符

              (DESCRIPTION =

                (ADDRESS_LIST =

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

                )

                (CONNECT_DATA =

                  (SERVICE_NAME = orcl.robinson.com)

                )

              )

            红色的内容为根据实际需要进行修改的内容,现描述如下:

            PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。

HOST:数据库侦听所在的主机的主机机名或IP地址,通常数据库侦听与数据库位于同一个机器上。建议使用IP地址。在UNIXWINDOWS下可以使用hostname来获得主机的机器名或使用ifconfig(UNIX)ipconfgi(Windows)来获得主机的IP地址。

            PORT:数据库侦听使用的端口,缺省为,可以查看服务器端的listener.ora文件获得端口号

                  或在数据库服务器命令提示符下使用nsrctl status [listener name]命令查看获得端口号。

                  此处Port的值一定要与数据库侦听正在侦听的端口一样。

            SERVICE_NAME:在服务器端,使用sqlplus> show parameter service_name命令查看。

           

            上述配置时应保证客户机能够ping通服务器,之后可以使用

tnsping orcl(网络服务名)来测试网络的联通情况

                SQL> conn scott/tiger@orcl

                Connected.

            使用上面的连接方式进行连接时,则连接标识符orcl被解释为tnsnames.oraorcl对应

的描述信息,根据描述信息来解析连接服务器

           

        配置listener.ora  -->同样可以使用tnsnames.ora配置时所使用的GUI工具来完成

            给出下面的示例System parameter file is /u01/app/oracle/10g/network/admin/listener.ora

            LISTENER =

              (DESCRIPTION =

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

              )   --LISTENER部分描述了主机地址、端口及协议

           

            SID_LIST_LISTENER =

              (SID_LIST =

                (SID_DESC =

                  (GLOBAL_DBNAME = orcl1)

                  (ORACLE_HOME = /u01/app/oracle/10g)

                  (SID_NAME = ORCL)

                )

                (SID_DESC =

                  (GLOBAL_DBNAME = orcl2)

                  (ORACLE_HOME = /u01/app/oracle/10g)

                  (SID_NAME = ORCL)

                )

              )

           

            a. LISTENER部分描述了主机地址、端口及协议

            b. SID_LIST_LISTENER描述对外提供数据库服务的列表

               两个SID_DESC是对同一个SID数据库设置的两个service_names所设置的监听服务

            启动该Listener后的信息如下

                Services Summary...

                Service "orcl1" has 1 instance(s).

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

                Service "orcl2" has 1 instance(s).

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

                The command completed successfully

            配置客户端的tnsnames.ora如下

                orcl1 =

                  (DESCRIPTION =

                    (ADDRESS_LIST =

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

                    )

                    (CONNECT_DATA =

                      (SERVICE_NAME = orcl1)

                    )

                  )

                 

                orcl2 =

                  (DESCRIPTION =

                    (ADDRESS_LIST =

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

                    )

                    (CONNECT_DATA =

                      (SERVICE_NAME = orcl2)

                    )

                  )

                 

            从客户端进行连接     

                C:/>sqlplus /nolog

 

                SQL*Plus: Release 10.2.0.1.0 - Production on 星期六94 09:47:22 2010

 

                Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

                SQL> conn scott/tiger@orcl1

                Connected.

                SQL> conn scott/tiger@orcl2

                Connected.     

               

            注意:

                笔者首次连接时收到如下错误提示,listener.ora中的SID_NAME的值改为小写,orcl,问题解决

                所以尽可能的统一大小写。

                    SQL> conn scott/tiger@orcl1;    --下面是未统一大小写时的错误提示

                    ERROR:

                    ORA-01034: ORACLE not available

                    ORA-27101: shared memory realm does not exis

                    Linux Error: 2: No such file or directory

                   

    4.关于GLOBAL_DBNAME

        下面是GLOBAL_DBNAME的官方描述

            GLOBAL_DBNAME

                Purpose        

    Use the parameter GLOBAL_DBNAME to identify the database service.

               

                While processing a client connection request, the listener tries to match the value of

                this parameter with the value of the SERVICE_NAME parameter in the client connect

                descriptor. If the client connect descriptor uses the SID parameter, then the listener

                does not attempt to map the values. This parameter is primarily intended for

                configurations with Oracle8 release 8.0 or Oracle7 databases (where dynamic service

                registration is not supported for dedicated servers). This parameter may also be

                required for use with Oracle9i and Oracle8 database services by some configurations

                and management tools.

               

                The value for this parameter is typically obtained from the combination of the DB_

                NAME and DB_DOMAIN parameters (DB_NAME.DB_DOMAIN) in the initialization

                parameter file, but the value can also contain any valid name used by clients to

                identify the service.

               

                Embed this parameter under the SID_DESC parameter.

               

        大致意思如下:

            当客户端发出连接请求时,监听器首先使用客户端连接描述符中的SERVICE_NAME相匹配。

            如果客户端连接描述符中使用的是SID,则不再尝试匹配该值,而是对监听器中设置的SID_NAME进行匹配

            该参数的值主要从初始化参数文件中的db_namedb_domian中组合得到。

       

        演示GOLBAL_DBNAME使用

            假定服务器listener.ora配置如下:

                SID_LIST_LISTENER =

                  (SID_LIST =

                    (SID_DESC =

                      (GLOBAL_DBNAME = orcl.robinson.com)

                      (ORACLE_HOME = /u01/app/oracle/10g)

                      (SID_NAME = orcl)

                    )

                  )

 

                LISTENER =

                  (DESCRIPTION =

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

                  )

                 

            客户端的tnsnames.ora配置如下:

                orcl =

                  (DESCRIPTION =

                    (ADDRESS_LIST =

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

                    )

                    (CONNECT_DATA =

                      (SERVICE_NAME = orcl.robinson.com)

                    )

                  )

            spfileorcldb_domain为空值

                [oracle@robinson ~]$ strings $ORACLE_HOME/dbs/spfileorcl.ora | grep db_domain

                *.db_domain=''

           

            数据库中的相关设置为空值

                SQL> col name format a20

                SQL> col value format a35

                SQL> select name,value,isdefault from v$parameter

                  2  where name in ('instance_name','db_domain','service_names');

 

                NAME                 VALUE                               ISDEFAULT

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

                db_domain                                                FALSE

                instance_name                                            FALSE

                service_names                                            FALSE 

               

            能够成功连接

                SQL> conn system/redhat@orcl

                Connected.

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

            修改客户端tnsnames.ora中的service_name

                即去掉SERVICE_NAME = orcl.robinson.com这项内容且添加为SID = ORCL

            修改后的内容如下:

                ORCL =

                  (DESCRIPTION =

                    (ADDRESS_LIST =

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

                    )

                    (CONNECT_DATA =

                      (SID = ORCL)

                    )

                  )

               

            SQL> conn scott/tiger@orcl   --能够成功连接

            Connected.

                   

        关于GOLBAL_DBNAME总结:

当客户端使用的是SID连接参数,则匹配侦听器配置文件中的SID_NAME    (主要用于兼容以前的老版本,8i或更早版本)

否则当使用的是SERVICE_NAME,则匹配侦听器配置文件中的SERVICE_NAME(现在多用SERVICE_NAME)

   

七、更多   

 

Oracle 冷备份

 

SPFILE错误导致数据库无法启动

 

Oracle 用户、对象权限、系统权限

 

Oracle 角色、配置文件

 

  Oracle 联机重做日志文件(ONLINE LOG FILE)

 

  Oracle 控制文件(CONTROLFILE)

 

  Oracle 表空间与数据文件

 

Oracle 档日志

 

  评论这张
 
阅读(546)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018