安装多个ORACLE导致多个Oracle HOME的情况!
Oracle由于版本的不同,在注册表中产生的注册表信息也有所不同,但主要的键值信息还是一样的,例如Oracle10g比oracle9i在注册表中表现的更为“简洁”,在未知的情况下,获取Oracle10g的相关信息,需要模糊查询一下键值
SOFTWARE\ORACLE\Key_*
Key_后面跟着是OracleHomeName的信息,默认情况如 KEY_OraDb10g_home1
而9i在注册表中的表现比较直接,可以查询这个
SOFTWARE\ORACLE\ALL_HOMES\ORACLE_COUNTER
这个值比较直观的告诉你 ,当前机器上有多少个Oracle实例,可以通过HOMEX (X为数字)找到对应的值,HOME0或HOME1或HOME2...中的ORACLE_HOME_NAME找到对应值。
如果系统里安装了多个ORACLE产品,那么在注册表里,有可能也会有多个ORACLE HOME,默认的是哪个ORACLE HOME?
其中在\SOFTWARE\ORACLE\ALL_HOMES\DEFAULT_HOME这个值就是默认的ORACLE HOME,有了DEFAULT_HOME的值,就可以获取默认的oracle实例名。
PLSQL如果在多实例的环境下 会默认连接默认实例的Oracle Home Name。
每获取到一个Oracle Home Name 都能获取到Oracle Home 的安装路径(为下面做伏笔)。
如何想要更改默认的ORACLE_HOME,可以在键值
把HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\DEFAULT_HOME修改成HOMEX里对应的ORACLE_HOME_NAME。
注:注册表查询的起始位置是HKEY_LOCAL_MACHINE。
另:plsql在连接oracle数据库时 通常都能找到机器上所创建的数据库名,有多少就能查到多少,这是为什么呢,它都还没连接到Oracle上呢。
因为plsql也是先查询了注册表信息后(结合了上面说的查询过程),得到oracle的安装目录,然后读取 NETWORK\ADMIN 下的tnsnames.ora这个文件,来获取该实例下有多少个数据名的信息。有兴趣的可以打开这个文件看一下,然后在打开plsql,连接之前 数据库下拉框里的信息是否跟这个文件的信息一致呢!
如果你也想读取都数据库名的信息,怎么读?
直接读。。。?
不能这么强硬的,要温柔,可以利用正则表达式,较好的把数据库名的信息(而且仅读数据库名的信息)并显示出来,像plsql一样。
======================================================================
好吧,就说这些,完全有可能写的不对,我也是凭印象写,如果错误,请指正!
安装多个ORACLE导致多个Oracle HOME的情况!的更多相关文章
- 因xhost命令和DISPLAY环境变量操作不当导致无法启动Oracle图形化安装界面
在redhat操作系统上安装Oracle 11.1时,遇到在执行runInstaller后无法启动安装图像化界面,甚是郁闷. 问题现象: 使用Xmanager2.0软件登陆AIX桌面,root用户可以 ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.7.Oracle 11G R2 RAC修改public网络IP
问题:Linuxrac2节点的public网IP被占用,导致集群节点2无法访问 1.禁止相关CRS资源的启动,停止这些资源(vip,listener,scan,scan_listener,databa ...
- ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报 分类: Oracle RA ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.3.Oracle 集群节点间连通失败
1.检查节点连通性的错误 [grid@linuxrac1 grid]$ ./runcluvfy.sh stage -post hwos -n linuxrac1,linuxrac2 -verbose ...
- 通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库
通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库. 首先下载安装包在Oralce官方网站上下载Oracle Instantclient Basic package.地址如 ...
- linux (centOS)安装 oracle 11g 以及卸载oracle
目录 首先.1. 一.参数以及环境配置 1.创建用户和组 2.创建数据库软件目录和数据文件存放目录 3.配置oracle用户的环境变量 4.修改linux内核,修改/etc/sysctl.conf文件 ...
- 错误: 未能完成程序集的安装(hr = 0x8007000b),.net程序关于使用Oracle.DataAccess.dll不同版本x86和x64问题,即oracle odp.net 32位/64位版本的问题
如果你的机器上安装了odp.net,且确信machine.config也有类似以下结节:(64位+.net 4.0环境下,machine.config可能会有4份,分别对应于.net2.0/4.0的3 ...
- 安装并使用Oracle SQL Developer访问Oracle
---问题 如何安装并使用Oracle SQL Developer访问Oracle. ---步骤 Oracle SQL Developer是Oracle官方出品的免费图形化开发工具,相对SQL*Plu ...
- centos 6.5 安装 cx_Oracle 5.12 步骤 ,使用oracle instantclient12.1
新建sh文件 内容如下: 以su用户执行这个文件 #!/bin/bash # INSTALL ORACLE INSTANT CLIENT # ############################# ...
随机推荐
- Android跨进程通信Content Provider
Content Provider ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通 ...
- docker进入容器的四种方法
在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法. 进入Docker容器比较常见的几种 ...
- 图解Python 【第一篇】:Python基础1
本节内容一览图 一.Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间, ...
- redis-Sentinel持续高可用
自动故障转移机制 redis目前只支持主从复制备份(不支持主主复制),当主redis挂了,从redis只能提供读服务,无法提供写服务.所以,还得想办法,当主redis挂了,让从redis升级成为主re ...
- SHA加密
import java.security.MessageDigest; /** * 提供SHA加密 */ public class SHAUtil { // 进行SHA-1加密 public stat ...
- springboot自定义filter获取spring容器bean对象
今天在自己定义的filter中,想要直接注入spring容器的其它bean进行操作,发现不能正常的注入: 原因:web容器加载顺序导致, 加载顺序是listener——filter——servlet, ...
- Java日志体系(三)commons-logging
1.1 简介 Apache Commons Logging,又名JakartaCommons Logging (JCL),它是Apache提供的一个通用的日志接口,它的出现避免了和具体的日志方案直接耦 ...
- 封装Button ,封装UITableView,封装UICollectionView
---恢复内容开始--- 封装Button ,封装UITableView,封装UICollectionView: 1.实现Button的创建和点击事件不用分开操作处理; 2.实现UITableView ...
- Day03:文本数据IO操作 / 异常处理
文本数据IO操作 Reader和Writer 字符流原理 Reader是字符输入流的父类 Writer是字符输出流的父类. 字符流是以字符(char)为单位读写数据的.一次处理一个unicode. ...
- 20190925 - 使 macOS 的 rm 命令删除到回收站的不完美办法
今天使用 macOS 时,使用 rm 删除了一个不重要文件,为保证以后不删除重要文件,找到一个让 rm 命令更安全的办法. 使用 MacPorts 安装 rmtrash 命令. sudo port i ...