PL/SQL连接虚拟机中的oracle数据库
前提:
台式电脑A(10.10.14.70);笔记本B(10.10.14.62);笔记本B安装的虚拟机Centos 6.8(10.10.14.59)并安装的oracle 11g数据库;
需求:
在台式电脑A上,通过PL/SQL连接笔记本B上虚拟机里面的Oracle数据库?
解决办法:
一、修改Oracle数据库的配置文件:
路径:/software/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin
修改listener.ora文件:
# listener.ora Network Configuration File: /software/oracle/app/oracle/product/11.2.0/dbhome_1/net
work/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.14.59)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /software/oracle/app
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /software/oracle/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
修改tnsnames.ora文件:
# tnsnames.ora Network Configuration File: /software/oracle/app/oracle/product/11.2.0/dbhome_1/net
work/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.14.59)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
二、关闭虚拟机中的防火墙:
1、查看防火墙是否开启 执行 service iptables status 命令:
2、关闭防火墙 执行 service iptables stop 命令;
3、再次查看状态: 执行 service iptables status 命令:
4、这样的操作之后,有个不方便的地方就是每次系统重启的时候,防火墙都需要手动关闭.这样做比较麻烦.所以我们可以改变防火墙启动的策略来永久性的关闭防火墙.
执行 chkconfig iptables off 命令:
这样,以后再启动linux主机时,就不需要重新关闭防火墙了
注:红色部分,我没样做;
三、Linux下启动Oracle服务和监听程序
1、连接到数据库所在的linux机器,切换到oracle用户模式下
[[email protected] ~]# su - oracle
2、然后用sqlplus登录到数据库,关闭数据库
[[email protected] bin]$ sqlplus /nolog //登录sqlplus
SQL> connect /as sysdba //连接oracle
SQL> startup //起动数据库
SQL> exit //退出sqlplus ,起动监听
3、起动监听
[[email protected] bin]$ cd $ORACLE_HOME/bin //进入oracle安装目录
[[email protected] bin]$ lsnrctl start //起动监听
4、客户端连接
四、如果报错:ORA-12514,解决办法:
linux下oracle报错,提示ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务的解决办法
在listener.ora文件中配置相应的服务,然后重新启动数据库和监听服务
使用到的脚本命令:
linux环境:
1. 修改 /software/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora文件 这个路径根据自己的情况
默认情况下该文件内容:
LISTENER=
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.42.250)(PORT =1521))
(ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))
)
)
出现ORA-12514的问题时候,我们需要增加的服务配置:
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /software/oracle/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
2. 启动相关数据库和监听服务
以oracle身份登录数据库: su -oracle
进入 sqlplus 控制台:sqlplus /nolog
以系统管理员登录:connect / as sysdba
关闭数据库:shutdown immediate
退出sqlplus控制台:exit
进入监听器控制台:lsnrctl
关闭监听器:stop
启动监听器:start
退出监听控制台:exit
进入 sqlplus 控制台:sqlplus /nolog
以系统管理员登录:connect / as sysdba
启动数据库:startup
退出sqlplus控制台:exit