linux centOs中安装好数据库,客户端用plsql连接oracle

原创作品,转载请在文章显眼位置注明出处:https://www.cnblogs.com/sunshine5683/p/10030375.html 

首先,回顾上篇 CenOs7安装oracle图文详细过程(02) ,安装好oracle后再服务器端使用sqlplus访问数据库成功,后来客户机访问并没有测试,接下来就接着,继续学习客户机端连接数据库,过程中同样遇到很多问题,因为是边学边弄,所以可谓是一步一个坎!

一、在客户端安装oracle客户端,我这里服务器在虚拟机上,操作系统是linux,服务器是11g,客户端在Windowsserver2008R2上,版本9i

1、首先在客户机上安装plsql(过程简单,省略)

2、在客户机上安装oracle9i(过程简单,省略),并配置好监听程序

3、启动plsql,连接服务器出现ora-12541 TNS:无监听程序,此处解决方法:

在数据库服务器查看监听服务状态 [oracle@xhq ~]$ lsnrctl status:  显示监听服务,如下

Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=adrep)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services     --------------------------------------------------------------------->没有监听服务
The command completed successfully
 

然后在服务器主机上使用命令 netmgr调出配置监听界面,重新配置监听,其中

扫描二维码关注公众号,回复: 4271095 查看本文章

Global Database Name :数据库名

oracle home directory:安装目录,自动加载,可选择

SID:实例名

接着查看实例名:然后填在相应的位置

 

 为了一行显示,设置行宽

然后退出配置程序,查看监听状态,可以看到监听服务正常

此时使用plsql连接,还是报ora-12541 TNS:无监听程序异常,查阅资料,是防火墙没关,tnsping 实例名(客户端监听配置的名字),同样显示超时然后关闭防火墙:

得知centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以只要停止firewalld服务即可: 
# sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

然后使用plsql连接,显示无监听程序ORA-12541:TNS:无监听程序,此时重启监听

然后使用plsql登录,正常登录

使用tnsping 服务名,正常,不再超时

到此,客户端连接数据库问题已经全部解决!

附加1:

上面关闭防火墙由于使用的不是iptables,如果要改用iptables的话,需要安装iptables服务: 
sudo yum install iptables-services 
sudo systemctl enable iptables && sudo systemctl enable ip6tables 
sudo systemctl start iptables && sudo systemctl start ip6tables

接下来在思考如何不关闭防火墙来连接服务器,还望各位路过的大神指点!

附加2:

在用户之间切换时候注意加 “-”,如su - oracle,如果直接使用su oracle ,导致使用使用lsnrctl status 命令无法执行,具体原因还不知道,但是切换用户时候加"-"问题解决,所以此次也列出来了。

到此,问题全部解决!

猜你喜欢

转载自www.cnblogs.com/sunshine5683/p/10030375.html