监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。
二、本地服务名(Tnsname)
Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。
三、Oracle网络连接配置方法
配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle服务端或客户端的配置)。在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如:$ netmgr。
四、客户端连接服务器端常见问题排除方法
要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。下面列出几种常见的连接问题:
1、 ORA-12541: TNS: 没有监听器:
显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:
$ lsnrctl start或C:\lsnrctl start。
2、 ORA-12500: TNS: 监听程序无法启动专用服务器进程:
对于Windows而言,没有启动Oracle实例服务。启动实例服务:C:\oradim –startup -sid myoracle。
3、 ORA-12535: TNS: *** 作超时:
出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。
4、 ORA-12154: TNS: 无法处理服务名:
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:\oracle\ora92\network\admin \tnsnamesora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnamesora)里每项服务的首行服务名称前不能有空格。
5、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。
6、 Windows下启动监听服务提示找不到路径:
用命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。打开注册表,进入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener项,查看ImagePath字符串项是否存在,如果没有,设定值为D:\oracle\ora92\BIN\TNSLSNR,不同的安装路径设定值做相应的更改。这种方法同样适用于Oracle实例服务,同上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE项,查看ImagePath字符串项是否存在,如果没有,则新建,设定值为d:\oracle\ora92\ binORACLEEXE MYORACLE。首先在Linux本地,用sqlplus连,测试服务是否启动。\x0d\注意:不要连localhost,而必循连向外提供服务的那个IP。\x0d\如果没连通,那就是本地服务有问题。先用sqlplus的sysdba的模式连上去,看看实例启动是否正常;再看看listener是否启动(lsnctl start)。\x0d\\x0d\然后,在windows下,用telnet 1521(默认端口),测试是否能连上oracle服务。\x0d\如果连不上,检查一下网络是否通(ping);网络通的话,再检查一下linux的防火墙是不是开放访问权限了。\x0d\\x0d\最后,在oracle Net Configuration Assistant里配置相应的,IP地址、数据库实例的服务名、用户/口令。\x0d\\x0d\这再不通就怪了。Oracle 应用服务器 10g 是集成的、基于标准的软件平台,Oracle Application Server 10g 是继 Oracle9i Application Server (Oracle9iAS) Release 20 version 902 和 version 903 之后的最新版本 Oracle 应用服务器。本地oracle客户端连接远程oracle数据库服务器配置说明如下:
1找到本地oracle客户端安装目录,如:%path%\Oracle
2再找配置文件tnsnamesora,其目录为 %path%\Oracle\product\1010\Client_2\NETWORK\ADMIN\tnsnamesora,如不存在,请先新建。
3用记事本打开文件tnsnamesora,用以下内容替换原有内容:
# tnsnamesora Network Configuration File: %path%\Oracle\product\1010\Client_2\NETWORK\ADMIN\tnsnamesora
# Generated by Oracle configuration tools
%dbname% =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxxxxxxxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = %dbname%)
)
)
其中:
%path%是本地oracle客户端的安装目录
%dbname%是远程服务器的数据库实例名
xxxxxxxxxxxx 是远程服务器IP地址,如:19216801
方法二:
1、打开cmd输入netca。
2、选择本地net服务名配置→下一步。
3、选择添加→下一步。
4、在服务名中输入你想要连接的服务器上的oracle服务的名字→下一步。
5、选择tcp→下一步。
6、在主机名中输入你想要连接的服务器ip,端口号不变→下一步。
7、选择进行测试→下一步。(当然你也可以选择不测试)
※1测试如果不通过,点击更改登录输入一个肯定能登入的用户名和口令→确定,出现正在连接测试成功。表明测试成功。
※2测试不通过的话,点上一步确认你写的服务名和主机名,确认无误的情况下,确认你要连接的服务器oracle监听服务已经打开。
8、在net服务名中输入你想要使用的本地的服务名→下一步。
※就是sqlplus user/passwd @本地服务名。
9、选择否→下一步。
10、出现net服务配置完毕字样→下一步。
11、点击完成完成服务配置。
12、在上面服务配置完成以后,在cmd中输入如下命令即可远程登录oracle服务器:
sqlplus user_name/password@本地服务名
一定记住,上面的本地服务名是你第8步写的服务名
1·在oracle官网上下载oracle数据库,以OracleDatabase11gRelease2版本的oracle数据库为例,其他版本的安装也大同小异。注意,下载前得AeptLicenseAgreement
2·下载并解压文件,找到setupexe,双击进行安装。与一般软件安装一样,一路next,接收许可协议中的条款,注意可以自定义安装路径。安装过程中需要设置管理员用户sys/system的口令密码(记住这个密码),通过管理员用户可以创建普通用户,输入密码后继续安装,这里要注意oracle数据库的监听器程序端口是1521。
3·安装成功后,每当windows启动的时候,oracle服务器跟监听器就会自动启动,不常用数据库时,可以将oracle服务设置为手动启动模式。设置方法为右击计算机进入管理系统,进入服务和应用程序中的服务界面,找到oracle数据库的四个服务器,其中有两个正在运行,先停止这两个服务器,然后在属性中的启动类型中设置成手动模式。
4·通过SQL命令链接数据库:在开始菜单中的所有应用中找到oracledatabase,进入运行SQL命令行,在SQL命令行中输入connsystem,会提示你输入口令,输入在安装过程中设置的口令即可链接成功。
4·通过windows自带的命令行链接数据库:找到运行(winR),输入cmd进入cmd命令输入界面,输入sqlplus,然后输入管理员用户名(system)和口令密码即可链接成功。
5·通过windows自带的命令行链接数据库:找到运行(winR),输入cmd进入cmd命令输入界面,输入sqlplus“/assysdba”即可链接成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)