TypeCodes

如何在Windows宿主机中安装PL/SQL管理虚拟机中的Oracle

和微软SQL server一样,要想远程管理数据库,那么本地的windows主机中就需要安装sql server的客户端。而在Windows宿主机中管理虚拟机中的Oracle数据库,那么我们也需要安装Oracle数据库的客户端(当然是windows版本)。

这是常规的做法,但是oracle出产的软件一向遵守庞大臃肿的传统,Oracle11.2.0.2.0的Windows版本竟然和SQL server一样有2G多了。作为一个远程管理工具,我们没有必要在windows中安装一个完整的Oracle。类似于SQL server的Express版本,甲骨文也考虑到了这点,所以精简版的instantclient就应运而生了。下面就是具体的如何在Windows宿主机中安装PL/SQL管理虚拟机中的Oracle数据库步骤:

(一)下载instantclient-basic

进入 Oracle官网 下载合适的instantclient-basic压缩包,例如博主的虚拟机中的oracle数据库版本是11.2.0.1.0(可以通过[root@localhost ~]# sqlplus /nolog查看),那么我下载的是instantclient-basic-win32-11.2.0.1.0.zip。把下载好的.zip文件包解压到windows宿主机中任意分区,例如D:\11.2.0。

(二)配置instantclient

在虚拟机中的oracle数据库安装目录中找到tnsnames.ora文件,例如博主的oracle是/home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora,然后在windows中新建目录(例如:D:\11.2.0\network\admin),最后把这个文件放在这个目录下。

(三) tnsnames.ora文件说明

tnsnames.ora文件的一般形式是:

# tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.125)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

其中,ORCL 是远程数据库的实例名(在安装oracle数据库的时候填写);

PROTOCOL 是连接的协议;

HOST 是远程数据库的IP地址( 若登录出现ORA-12170: TNS:Connect timeout occurred的时候 ,可能是IP地址错误,在windows中无法ping通);

PORT 端口(同样,也可能是虚拟机中的linux系统的防火墙问题,可使用service iptables stop命令关闭);

(四)配置PL/SQL

打开PL/SQL,在菜单栏选择Tools-Preference-Connection,然后如下图配置,配置完后退出重新登录即可。

pl_sql配置

pl_sql默认登录

(五)说明一

其实,第二、三步骤也可以省略,它的作用是在PL/SQL登录的时候,Database自动选择oracle的数据库实例orcl。如果省略二、三步骤,那么在登录的时候,你就需要在Dtabase中手动输入“HOST/实例名”,如下图所示。

pl_sql带IP和实例名登录

(六)说明二

在PL/SQL登录时,出现"NLS_LANG is not defined on the client"的错误,这个是Oracle服务器端和客户端的字符集不一致造成的。服务端的字符集可以在PL/SQL中通过select userenv("language") from dual查看(博主的显示为AMERICAN_AMERICA.ZHS16GBK)。

打赏支持

Comments »