在捉襟见肘的硬件环境下,可以考虑通过在同一台物理服务器上部署多版本数据库软件的方法来达到多套数据库环境的模拟。现将在OEL5.5(Oracle Enterprise Linux 5.5)环境下详细部署实践过程整理如下。
1.确认操作系统及当前数据库版本
1)确认操作系统版本
ora11g@secdb /home/oracle$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
ora11g@secdb /home/oracle$ uname -a
Linux secdb 2.6.18-194.el5 #1 SMP Mon Mar 29 20:06:41 EDT 2010 i686 i686 i386 GNU/Linux
这是一套32位的OEL5.5(Oracle Enterprise Linux 5.5)的操作系统。
2)确认数据库版本
ora11g@secdb /home/oracle$ ps -ef | grep smon | grep -v grep
oracle 8468 1 0 21:30 ? 00:00:00 ora_smon_ora11g
sys@ora11g> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
服务器上仅部署了一套数据库实例,版本是Oracle 11.2.0.1.0。
2.上传对应的Oracle安装介质
1)从本地将对应的安装介质上传到服务器上
$ scp 10201_database_linux32.zip oracle@172.17.192.183:/software/ora10g
The authenticity of host '172.17.192.183 (172.17.192.183)' can't be established.
RSA key fingerprint is d8:42:21:d3:4c:9d:f2:e3:f1:1d:45:1f:71:5f:ca:5c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.192.183' (RSA) to the list of known hosts.
oracle@172.17.192.183's password:
10201_database_linux32.zip 638MB 11.4MB/s 00:56
2)在服务器端解压安装介质
ora11g@secdb /software/ora10g$ chmod 777 10201_database_linux32.zip
ora11g@secdb /software/ora10g$ unzip 10201_database_linux32.zip
…… 这里省略解压过程……
解压之后会生成对应的database目录,这个目录中便存放着Oracle 10.2.0.1的数据库安装介质。
ora11g@secdb /software/ora10g$ ls -tlr
total 639M
drwxr-xr-x 6 oracle oinstall 4.0K Oct 21 2008 database/
-rwxrwxrwx 1 oracle oinstall 638M Jan 19 21:13 10201_database_linux32.zip*
3.停止服务器上监听和数据库实例
1)停止监听程序
ora11g@secdb /home/oracle$ lsnrctl stop
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-JAN-2011 21:25:16
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully
2)停止数据库实例
ora11g@secdb /home/oracle$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 19 21:25:59 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
sys@ora11g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
4.调整数据库服务器的环境变量
由于不同版本的数据库软件必须部署在不同的目录下,因此在安装10g版本数据库软件之前需要先调整一下系统的环境变量。
需要调整的环境变量是:必须调整的环境变量是ORACLE_HOME和ORACLE_SID,其他环境变量可以视情况进行调整。
通过修改.bash_profile文件可以达到调整环境变量的目的。
看一下这个调整过程。
1)现有.bash_profile文件的内容如下
ora11g@secdb /home/oracle$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/oracle/ora11gR2
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=ora11g
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_ASSUME_KERNEL=2.6.18
umask 022
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2)环境变量调整
由于原有11g环境的ORACLE_BASE指向了“/oracle/ora11gR2”路径,为防止混淆,这里我重新指定了ORACLE_BASE环境变量。(ORACLE_BASE环境变量亦可不用调整)
(1)创建ORACLE_BASE对应的目录
ora11g@secdb /oracle$ mkdir -p /oracle/ora10gR2
ora11g@secdb /oracle$ mkdir -p /oracle/ora10gR2/oradata
(2)调整的环境变量如下
export ORACLE_BASE=/oracle/ora10gR2
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=ora10g
(3)调整完环境变量后使其生效
ora11g@secdb /home/oracle$ vi ~/.bash_profile
ora11g@secdb /home/oracle$ . ~/.bash_profile
(4)再次确认环境变量是否调整正确
ora10g@secdb /home/oracle$ echo $ORACLE_BASE;echo $ORACLE_HOME;echo $ORACLE_SID
/oracle/ora10gR2
/oracle/ora10gR2/product/10.2.0/db_1
ora10g
5.部署Oracle 10gR2软件
1)使用VNC远程连接到数据库服务器
2)开启Terminal,重新初始化环境变量,进入到安装介质目录
确保所需要的系统rpm包都安装完毕。
ora11g@secdb /home/oracle$ . ~/.bash_profile
ora10g@secdb /home/oracle$ cd /software/ora10g/database/
ora10g@secdb /software/ora10g/database$ chmod -R 777 *
ora10g@secdb /software/ora10g/database$ .runInstaller -ignoreSysPrereqs
后续的图形化安装过程这里不赘述。相信大家都轻车熟路。
注意在安装过程中,有一个步骤提示需要注意:“Upgrade an Existing Database”,这里需要选择默认的“No”,因为我们的目标是安装新的数据库,不是升级。再者,原有的数据库是11g,现在安装的是10g,也无法进行更新。
6.使用dbca工具创建数据库实例
数据库创建过程不赘述。
注意一下实例名字为ora10g即可。
当dbca数据库实例创建完成之后,整个环境部署便完成了。
此时,该服务器上同时并存了两个版本的数据库软件和数据库实例。
调整环境变量,启动原有Oracle 11g版本的实例后,可见该环境下并存了两个版本的数据库实例。
ora10g@secdb /home/oracle$ ps -ef | grep smon | grep -v grep
oracle 8468 1 0 21:30 ? 00:00:00 ora_smon_ora11g
oracle 14100 1 0 22:45 ? 00:00:00 ora_smon_ora10g
注意,这里显示的“ora11g”和“ora10g”不仅仅是实例名称的区别,而是在两套数据库版本环境下的独立数据库实例。
7.小结
经实践证明,在Linux环境下同一服务器完成多版本Oracle软件安装是可行的,同时表明在Linux环境下多个数据库版本部署的先后顺序上没有必须从低版本到高版本部署的限制(从数据库安装原理角度上来看这点很容易明白)。如果需要的话,还可以使用这种方法在此服务器下另外部署一套Oracle 9i的数据库环境。
后需要提请注意的是:由于在Oracle不同版本软件安装时所需的操作系统安装包有所不同,在安装过程中请确保所需的系统包都安装妥当。
Good luck.
secooler
11.01.19
-- The End --
【INSTALL】在11gR2数据库环境下同时部署10gR2数据库实践(OEL环境)
分享好友
分享这个小栈给你的朋友们,一起进步吧。
订阅须知
• 所有用户可根据关注领域订阅专区或所有专区
• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询
• 专区发布评论属默认订阅所评论专区(除付费小栈外)