Linux下oracle数据库连接问题
来源:互联网 发布:虚拟炒股软件 编辑:程序博客网 时间:2024/05/17 15:39
早阵子在centos下装好了oracle数据库 参考这篇 ,但是连接的时候出了问题
问题描述:
linux主机监听程序已经启动 如下信息
[root@template10 ~]# lsnrctl statusLSNRCTL for Linux: Version 11.2.0.1.0 - Production on 07-6月 -2016 17:54:27Copyright (c) 1991, 2009, Oracle. All rights reserved.正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=template10)(PORT=1521)))LISTENER 的 STATUS------------------------别名 LISTENER版本 TNSLSNR for Linux: Version 11.2.0.1.0 - Production启动日期 07-6月 -2016 17:51:21正常运行时间 0 天 0 小时 3 分 5 秒跟踪级别 off安全性 ON: Local OS AuthenticationSNMP OFF监听程序参数文件 /data/app/oracle/product/11.2.0/network/admin/listener.ora监听程序日志文件 /data/app/oracle/diag/tnslsnr/template10/listener/alert/log.xml监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))服务摘要..服务 "orcl11g" 包含 1 个实例。 实例 "orcl11g", 状态 UNKNOWN, 包含此服务的 1 个处理程序...命令执行成功[root@template10 ~]# netstat -apn |grep 1521tcp 0 0 :::1521 :::* LISTEN 2203/tnslsnr tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:64758 TIME_WAIT - tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:64737 TIME_WAIT - [root@template10 ~]# /etc/init.d/iptables stop
客户端:
C:\Users\Administrator>telnet 112.xx.xx.xx 1521
正在连接112.xx.xx.xx…无法打开到主机的连接。 在端口 1521: 连接失败
注:telnet win7下默认不可用需要开启
能ping通 112.xx.xxx.xx
112.xx.xx.xx 为服务器IP 地址栏访问时nginx主页
连接时 ORA-12541: TNS: 无监听程序
晚点研究
如果有童靴遇到过解决了还望告知 不甚感激!
连接centos下oracle数据库
远程连接linux下oracle数据库
linux下数据库允许远程连接
linux下oracle数据库监听开启防火墙关闭但无法连接提示 ORA-12541: TNS: 无监听程序
连接远程linux服务器下oracle数据库 ORA-12541: TNS: 无监听程序
以上是换了又换的搜索关键字
百度到
问题在于listener.ora文件 admin 用户没有读权限
修改了listener.ora文件 权限 问题依旧
又有说listener.ora文件 host 改为计算机名 改了以后 问题依旧
还是得从问题根源入手
百度到Oracle三个配置文件 listener.ora 、sqlnet.ora 、tnsnames.ora 区别
1. sqlnet.ora—– 作用类似于linux 或者其他unix 的nsswitch.conf 文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串。
例如我们客户端输入
sqlplus sys/oracle@orcl
假如我的sqlnet.ora 是下面这个样子
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那么,客户端就会首先在tnsnames.ora 文件中找orcl 的记录. 如果没有相应的记录则尝试把orcl 当作一个主机名,通过网络的途径去解析它的 ip 地址然后去连接这个ip 上GLOBAL_DBNAME=orcl 这个实例,当然我这里orcl 并不是一个主机名
如果我是这个样子
NAMES.DIRECTORY_PATH= (TNSNAMES)
那么客户端就只会从tnsnames.ora 查找orcl 的记录, 括号中还有其他选项,如LDAP 等并不常用。
刚刚服务器上登陆的是莫名其妙
ORA-01031: insufficient privileges
之前一直是好的。这期间只改了admin下的两个配置文件。而且改之前是备份了的。恢复备份之后报这个错。检查了权限问题。
[oracle@template10 root]$ llls: 无法打开目录.: 权限不够[oracle@template10 root]$ cd ~[oracle@template10 ~]$ ll总用量 4drwxrwxrwx 2 oracle dba 4096 6月 6 15:13 response[oracle@template10 ~]$ sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on 星期二 6月 7 22:14:21 2016Copyright (c) 1982, 2009, Oracle. All rights reserved.SQL> connect sys as sysdba 输入口令: 已连接到空闲例程。SQL>
难道是因为不在oracle用户的目录下执行的连接?? 不应该啊,再试了下不管在哪个目录切换到oracle用户都可以连接了 期间只是重启了两次服务器 可能是改了listener.ora么
参考这篇
Tnsnames.ora中对应service_name ,SQLPLUS>;show parameter service_name; 进行查看
改成了
[root@template10 admin]# vim tnsnames.ora # tnsnames.ora Network Configuration File: /data/app/oracle/product/11.2.0/network/admin/tnsnames.ora# Generated by Oracle configuration tools.#LISTENER_ORCL =# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))orcl= (DESCRIPTION= (ADDRESS=(PROTOCOL=TPC)(HOST=template10)(PORT=1521)(KEY=EXTPROC1521)) (CONNECT_DATA= (SERVER = DEDICATED) (SERVICE_NAME=orcl11g.us.oracle.com) ) )
template10 是我改的主机名
想不通的是linux服务器防火墙都关了。联通云门户里面安全组规则也开放了1521端口。Windows下telent 连接
无法打开到主机的连接。 在端口 1521: 连接失败 1521端口无法访问
这是为什么呢?或许解决了这个问题,问题就解决了!
今天终于解决这个问题了和昨天猜想的一样!
联通云门户里开放1521端口还需要在路由上配置转发!这是关键的地方!其实早应该想到的!究其原因还是因为对云主机的不熟悉。不管怎样当看到下面这个场景还是很激动的!毕竟难忘的经历折腾了好久。
最后贴一下服务器上的配置。 template10 是改了后的主机名 为什么改名是因为云主机的主机名是一样的。百度到说无监听是因为listener.ora 文件中Host值不为主机名。那个0.0.0.0:1521和127.0.0.1:1521有影响的文章。好像都是转的同一篇的。具体也不知道是不是真的有影响。
如何修改linux主机名顺便说一下
[root@template10 admin]# vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=template10 改成你想要的名字
还要改host文件。一开始我也不知道linux的host文件在哪里。可能很多初学者都不知道。值得说一下 linux下的host文件位置 /etc/hosts
[root@template10 admin]# vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 template10 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6~
template10 加上。reboot 重启一下 hostname 查看主机名
[root@template10 admin]# hostnametemplate10
改名结束
listener.ora 文件
[root@template10 admin]# cd /data/app/oracle/product/11.2.0/network/admin/[root@template10 admin]# vim listener.ora ADR_BASE_LISTENER = /data/app/oracleSID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=orcl11g) (ORACLE_HOME=/data/app/oracle/product/11.2.0) (GLOBAL_DBNAME = orcl11g) ) )LISTENER = (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=template10)(PORT=1521)) )~
tnsnames.ora 文件
[root@template10 admin]# vim tnsnames.ora 6n# tnsnames.ora Network Configuration File: /data/app/oracle/product/11.2.0/network/admin/tnsnames.ora# Generated by Oracle configuration tools.#LISTENER_ORCL =# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))orcl= (DESCRIPTION= (ADDRESS=(PROTOCOL=TPC)(HOST=template10)(PORT=1521)(KEY=EXTPROC1521)) (CONNECT_DATA= (SERVER = DEDICATED) (SERVICE_NAME=orcl11g.us.oracle.com) ) )orcl11g= (DESCRIPTION= (ADDRESS=(PROTOCOL=TPC)(HOST=template10)(PORT=1521)(KEY=EXTPROC1521)) (CONNECT_DATA= (SERVER = DEDICATED) (SERVICE_NAME=orcl11g) ) )~ ~
sqlnet.ora 文件
[root@template10 admin]# vim sqlnet.ora # sqlnet.ora Network Configuration File: /data/app/oracle/product/11.2.0/network/admin/sqlnet.ora# Generated by Oracle configuration tools.#NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)#sqlnet.authentication_services=(NONE)#SQLNET.AUTHENTICATION_SERVICES=(ALL) #这里说什么linux下要设置成ALL 或者不设置#REMOTE_LOGIN_PASSWORDFILE=(exclusive)ADR_BASE = /data/app/oracle
ps昨天发现有某网站赤裸裸抄袭我这篇还没完成的博客阅读量还很大。汗颜!有些错误信息我会更正后更新博客。希望早期不成熟的经历过程不要误导他人。博主也是本着乐于分享的精神仅供参考,希望有帮助到遇到类似问题的童鞋,不要像我一样瞎折腾,能少走弯路!
- Linux下oracle数据库连接问题
- oracle数据库连接问题:TNS
- [置顶] oracle数据库连接问题
- Oracle数据库连接池问题在tomcat下的配置
- Tomcat Oracle 数据库连接池问题
- oracle数据库连接数的问题
- Oracle 问题汇总-数据库连接方面
- 数据库连接池问题weblogic-oracle
- Oracle数据库连接问题排查思路
- .net下Sybase数据库连接问题
- .net下Sybase数据库连接问题
- debug下数据库连接的问题
- 解决Linux下oracle乱码问题
- linux 下 oracle 10g 安装问题
- Linux 下Oracle安装、启动、使用问题、
- linux系统下oracle字符乱码问题
- linux下的oracle 乱码问题
- Linux 下Oracle 无法DBCA的问题。
- CUsparse ch3 Cusparse索引及其数据格式
- OC textField键盘弹起事件
- 五指cms筛选功能的实现
- CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target
- 第15周-阅读程序(5)
- Linux下oracle数据库连接问题
- 关于分布式一致性的探究
- spark组件之graphx函数方法(一)
- 搞了将近一个月的AS400,现在又转回Android~
- 如何把tomcat服务加到Windows系统服务
- java compareTo 和 binarySearch
- 算法分析之递归
- Linux文件权限详解
- 通讯录的原型实现(-)