关于使用PLSQL Developer 连接虚拟机上的Oracle

最近在自己看视频学习Oracle,过程中碰到许多问题,写下来记录一下。

我自己的电脑是win10,虚拟机用的是VMware Workstation,虚拟机上装了Windows xp专业版。
本机上装了Oracle11g,虚拟机上装的是Oracle10g

按照网上plsql连接远程oracle的教程,首先下载Instant Client(这里),作为本地Oracle环境 。 具体步骤如下:

1、安装好plsql及oracle远程连接的客户端(instantclient)
2、在instantclient客户端目录下,创建两级目录:network\admin,创建完结构为:instantclient32_11_2\network\admin
在admin目录下创建tnsnames.ora文件,配置如下信息:

ORCL(连接名,可以随意写) =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = “这里写要连接的数据库的IP地址”)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = corcl)
    )
  )

3、打开plsql,这里弹出的Oracle Login界面直接点cancle,进入主界面后,
在tool-proferences 中配置如下:
关于使用PLSQL Developer 连接虚拟机上的Oracle_第1张图片

然后又配置了三组环境变量:
ORACLE_HOME=oracle安装目录
TNS_ADMIN=instantclient目录
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK (解决plsql中文复制乱码的问题)

这里的第二个环境变量最后我没用到,网上查了之后知道这个环境变量的作用 :当你系统中装了多个Oracle的产品的话,那么客户端连instance的时候,到底是使用那个tnsnames.ora呢?这个时候就需要看TNS_ADMIN这个参数了。
我的系统中只装了一个Oracle,所以没有用到这个变量。

其实上面第2步也不用在instantclient客户端目录下创建tnsnames.ora,在本机安装的Orcale目录下的\product\11.2.0\dbhome_1\NETWORK\ADMIN下找到tnsnames.ora文件,在这个文件中加上上面的配置信息就可以了。
注意:这里的连接名不能和本机上Oracle的连接名相同,相同的话似乎后面的会覆盖前面的关于使用PLSQL Developer 连接虚拟机上的Oracle_第2张图片
例如我这里本机的Oracle连接名是ORCL,虚拟机上Oracle的连接名是orcl_10,这样就可以选择连哪一个数据库了。

期间遇到了很多问题,诸如:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
ORA-12145
Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止
这一类的错误网上很多解决方法,不在此赘述。

还有一个问题是关于sqlplus/nolog,conn /as sysdba 登录时权限不足的问题:
oracle在登录时,有三种身份认证方式:操作系统身份认证、密码文件认证、数据库认证。而conn /as sysdba是属于操作系统认证。

在“我的电脑”单击右键,找到“管理”,选择“本地用户和组”,发现有一个组叫“ora_dba”,
如果你登录的用户不在这个组中,那就会出现权限不足的问题;如果在这个组中,那你就可以登录。
sqlplus /nolog,conn /as sysdba 之所以能够登录,原因就在于此,可以试一下:sqlplus/nolog,conn adsadasda/dasdasd as sysdba,也可以登录。

你可能感兴趣的:(关于使用PLSQL Developer 连接虚拟机上的Oracle)