oracle数据库无监听程序问题

oracle数据库无监听程序问题,第1张

原因有三:

1、你没有配置监听,去配置一下:cmd->netca->选第一个,默认点下去;

2、监听没有开启,在你本地查看一下监听的服务有没有开启;

3,、另一台机器tnsnamesora文件没有配置你本地数据库的主机信息;

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步写的服务名。

13、如果sqlplus

能够进入,PLSQL

Developer也就可以了。

---

以上,希望对你有所帮助。

在Oracle数据库服务器上开启防火墙后,如果监听无法正常工作,可能是因为防火墙未正确配置。您可以按照以下步骤进行排查:

1 确认防火墙是否开启,如果开启了,需要允许Oracle监听端口通过防火墙。默认情况下,Oracle监听端口是1521。

2 检查Oracle监听程序是否已经启动。您可以使用lsnrctl命令来检查监听程序的状态。如果监听程序没有启动,您需要启动它。

3 检查监听程序的日志文件,查看是否有相关的错误信息。日志文件默认存储在ORACLE_HOME/network/log目录下。

4 如果您使用的是Oracle 11g及更高版本,可以尝试使用静态监听程序。静态监听程序可以通过手动编辑监听程序配置文件来配置监听程序。在防火墙开启的情况下,静态监听程序可以更加可靠地工作。

5 如果您仍然无法解决问题,请尝试关闭防火墙,如果监听程序可以正常工作,那么问题可能是由于防火墙未正确配置导致的。

希望这些信息能够帮助您解决问题。

如果你只有一个客户端,而数据库是在远程服务器上的话,那么就请通知远程的dba打开监听程序,也就是OracleOraDb10g_home1TNSListener这个服务

如果你的数据库是安装在本机上的

只要conn username/password这种登录形式也可以登录上数据库

conn username/password@orcl这种登录形式则需要打开OracleOraDb10g_home1TNSListener服务

打卡OracleOraDb10g_home1TNSListener服务:

开始——控制面板——管理工具——服务——打开OracleOraDb10g_home1TNSListener即可

Oracle监听器配置(LISTENER)

如 图(一)示,选中树形目录中监听程序项,再点击左上侧“+”按钮添加监听程序,点击监听程序目录,默认新加的监听器名称是LISTENER(该名称也可以 由任意合法字符命名)。选中该名称,选中窗口右侧栏下拉选项中的“监听位置”,点击添加地址按钮。在出现的网络地址栏的协议下拉选项中选中 “TCP/IP”,主机文本框中输入主机名称或IP地址(如果主机即用作服务端也作为客户端,输入两项之一均有效;如果主机作为服务端并需要通过网络连 接,建议输入IP地址),端口文本框中输入数字端口,默认是1521,也可以自定义任意有效数字端口。配置好的监听位置如下图示:

2

选 中窗口右侧栏下拉选项中的“数据库服务”,点击添加数据库按钮。在出现的数据库栏中输入全局数据库名,如myoracle。注意这里的全局数据库名与数据 库SID有所区别,全局数据库名实际通过域名来控制在同一网段内数据库全局命名的唯一性,就如Windows下的域名控制器,如这里可以输入 myoracle19216815。Oracle主目录可以不填写,输入SID,如myoracle。完整的数据库服务配置如下图示:

保 存以上配置,默认即可在Oracle安装目录下找到监听配置文件 (Windows下如D:oracleora92networkadminlistenerora,Linux/Unix下$ ORACLE_HOME/network/admin/listererora)。至此,Oracle服务端监听器配置已经完成。

本地服务名配置(Tnsnames)

本 地服务名是基于Oracle客户端的网络配置,所以,如果客户端需要连接数据库服务器进行 *** 作,则需要配置该客户端,其依附对象可以是任意一台欲连接数据 库服务器进行 *** 作的pc机,也可以是数据库服务器自身。如前面所介绍,可以利用Oracle自带的图形化管理工具Net Manager来完成Oracle客户端的配置。选中如图(一)中的服务命名,再点击左上侧“+”按钮,d出如下图示对话框:

输入Net服务名,如myoracle,点击下一步,进入下图示对话框:

选中TCP/IP(Internet协议),点击下一步,如下图示:

输入主机名与端口号。注意这里的主机名与端口号必须与数据库服务器端监听器配置的主机名和端口号相同。点击下一步,如下图示:

选 中(Oracle8i或更高版本)服务名,输入服务名。这里的服务名实际上就是数据库服务器端监听器配置中的全局数据库名,前者与后者必须相同。连接类型 通常选专用服务器,这要视数据库服务器的配置而定,如果配置的共享数据库服务器,这里的连接类型就要选共享服务器,否则建议选专用服务器(关于专用服务器 的介绍请参阅相关文档)。配置好后点击下一步,如下图示:

如 果数据库服务器端相关服务启动了,可以点击测试按钮进行连接测试。Oracle默认是通过scott/tiger用户进行测试连接,由于scott用户是 Oracle自带的示例用户,对于正式的业务数据库或专业测试数据库可能没有配置这个用户,所以需要更改成有效的用户登录才可能测试成功。如果这里测试连 接不成功,也不要紧,先点完成按钮结束配置。

回 到Oracle网络管理器(Oracle Net Manager)主窗口,保存配置,默认即可在Oracle安装目录下找到本地服务名配置文件 (Windows下如D:oracleora92networkadmintnsnamesora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnamesora)。配置完成的本地服务名如下图示:

树形目录下的服务命名可以通过编辑菜单里的重命名菜单更改成任意合法字符组成的服务名称,注意服务名称前不能有空格字符,否则可能无法连接数据库服务器。

连接数据库服务器

(1) 启动服务器端监听器与数据库服务

Linux/Unix下,启动监听器:

$ lsnrctl start

关闭监听器:

$ lsnrctl stop

查看监听状态:

$ lsnrctl status

启动数据库:

$ sqlplus /nolog

SQL>conn sys@myoracle as sysdba --这里的myoracle是前面配置的客户端本地服务名

SQL>conn / as sysdba

SQL>startup

Windows下,启动监听器:

C:lsnrctl start

启动Oracle实例服务:

C:oradim a href=">

第一种:

首先,备份数据库(X:oracleoradata)下的数据文件,重新命名即可(否则装数据库的时候会提示sid已存在)。重新安装数据库,当然数据库的名字就是你要恢复的名字。安装完成后,打开控制面板,停止oracle的服务。把(X:oracleoradata)下新生成的文件改名,把原先目录下的文件恢复名字。再重新启动oracle服务和监听。用sys/asdba登陆数据库,可能会提示权限不够(ora-01031)修改(X:oracleora92etworkadmin)文件夹下的sqlnetora文件,添加SQLNET_SERVICES=(NTS),增加权限。登陆进去后,打开table提示不能打开。打开common页,执行命令alertdatabaseopen;这时再刷新table,发现原先的表可以打开了。恢复成功了。再用原先数据库的普通用户进入。发现一切正常。

第二种:

1、首先,将原来的ORACLE文件夹改名,原来的路径是D:/oracle我暂时改成D:/oracle_old找来ORACLE(我用的是ORACLE9I)安装光盘,将ORACLE安装在原来安装的目录下,这样恢复起来更加方便,主要是注册表的内容不用修改。

2、安装完了之后,系统中又有一个可以使用的ORACLE了。这个时候要做的就是将原来的文件和数据恢复过来。第一步,先关闭ORACLE的所有已经启动的项目,在"服务"里面逐一关闭。然后,将安装目录改名。(例如D:/oracle改成D:/oracle_new,再将D:/oracle_old改成D:/oracle)这样理论上说从物理层面恢复了ORACLE了。但是现在还不能启动ORACLE的监听程序和服务程序,还要从逻辑上解决。

3、在dos环境下执行一个删除命令:oradim-delete-sidmm,其中mm为创建oracle时候创建的实例建议执行这个命令后重新启动机器,重启后就可以建立和原来实例名相同的实例。当然你懒,不重新启动也可以,但是你的实例名就不能和原来的一样了。

4、在dos环境下执行命令oradim-new-sidmm-startmodea-pfile"D:oracleadminmmpfileinitmmora"创建一个新的实例,其中"mm"为新数据库的名称。

5、启动服务,先打开数据库,然后可以用以前的用户名和密码登陆进去。要补充的是,一般的ORACLE数据库的监听程序都是用电脑的名称来识别地址的,而不是127001或者localhost所以,如果我们安装系统的时候用的是不同的电脑名称(比如我原来用的是wm_mm重新安装后用的是wenming_mm),那么还有一个工作要做,就是修改文件listenerora将里面的相关的东西改过来就可以了。

需要耐心、细心,可能在一步里有一个细小的差别就会出些古怪的错误提示,有时需要根据错误提示采取策略,总之原理是,先装一个一模一样的ORACLE,安装目录、数据库名称都一样,这样保证注册表里不用更改;再覆盖物理文件,最后重新实例化,打开数据库就可以进去了。

注:恢复必须要有以下文件a、初始化参数文件INITORAb、所有数据文件dbfc、所有重做日志文件(联机日志、归档日志)redod、所有控制文件crtle、internal密码文件。

很可能是你在安装完Oracle数据库后更改了计算机名,而且你安装的数据库版本应该是10G以下的,可以找到你的安装目录(现在已10g为例):

\product\1020\db_1\network\admin

里边有两个文件需要修改:

listenerora和tnsnamesora

把里边的原来的计算机名修改成你最新的计算机名;

以下是listenerora的原文:

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

(ADDRESS = (PROTOCOL = TCP)(HOST = zrh)(PORT = 1521)) --此处修改host=新的计算机名

)

)

以下是tnsnamesora的原文:

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = zrh)(PORT = 1521)) --此处修改

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

以上就是关于oracle数据库无监听程序问题全部的内容,包括:oracle数据库无监听程序问题、如何配置Oracle数据库监听、oracle数据库监听开启防火墙后无法监听等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10180905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存