ORACLE_BASE 与 ORACLE_HOME

简单说,ORACLE_BASE是oracle公司所有产品的根目录,而ORACLE_HOME则是oracle产品的目录。

例如:如果装了2个版本的oracle,那么ORACLE_BASE可以是一个,但ORACLE_HOME是2个。

ORACLE_BASE目录下有admin和product,而ORACLE_HOME目录下则是ORACLE的命令、连接库、安装助手、listener等等一系列的东东。这只是ORACLE自己的定义习惯。ORACLE_HOME比ORACLE_BASE目录要更深一些。也就是说:ORACLE_HOME=$ORACLE_BASE/product/version

如果我们要稍微调整ORACLE_BASE 和ORACLE_HOME参数,步骤如下:

1、root用户登录;

2、跳转到/home/oracle目录下:cd /home/oracle,;

3、备份.bash_profile文件:cp .bash_profile .bash_profile.bak;

4、编辑.bash_profile文件中的相关项信息,保存并退出;

如果完全要修改Oracle的安装目录,则可以参考如下:

 Oracle修改目录比较麻烦,因为Oracle里很多shell程序都写死了路径。

 首先修改ORACLE_HOME、ORACLE_BASE到目标目录下,使用relink all重新链接oracle 的目标代码,然后需要修改shell程序里的绝对路径。可以使用

  mkdir /tmp/oracle

  for i in `find . -name "*" | xargs file | grep "shell script" | awk -F: '{print $1}' `

  do

  F=`basename $i`

  cat $i | sed 's/\/opt\/oracle\//\/app\/oracle\//g' > /tmp/oracle/$F

  cp /tmp/oracle/$F $i

  done

  我是从/opt/oracle 切换到 /app/oracle下的,目录不同可以修改。

  修改后首先修改/etc/oratab里的路径,修改$ORACLE_BASE/admin/sid/pfile/ 里的init.ora文件。把路径改到相应的目录上。

  删除$ORACLE_HOME/dbs/spfile*.ora文件。

  使用sqlplus / as sysdba

  create spfile from pfile=’$ORACLE_BASE/admin/sid/pfile/init.ora’ --重建spfile ;

  startup mount;

  alter database rename file ‘oldpath’ to ‘newpath’ 修改所有的数据文件与日志文件到新的目录下

  alter database open --能启动就可以了

 

附:

ORACLE_SID 参数则是操作系统的环境变量。
在多个实例的服务器中,ORACLE通过ORACLE_SID决定启动哪个实例。一般,如果服务器只有一个实例,ORACLE_SID的值和实例的名称以及数据库名称相同。
在“我的电脑”的“环境变量”中创建名为“ORACLE_SID”的变量值设定成你想启动的实例的名字。
举例说明:
如果在linux系统,则在.bash_profile文件中设置ORACLE_HOME=/oracle/product/10.2.0
ORACLE_BASE=/oracle

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9399028/viewspace-682463/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9399028/viewspace-682463/

你可能感兴趣的:(ORACLE_BASE 与 ORACLE_HOME)