Linux環(huán)境下Oracle10G和Oracle11G并存的安裝和配置
在Linux系統(tǒng)中可以實(shí)現(xiàn)Oracle10G和Oracle11G雙版本數(shù)據(jù)庫的并存嗎?答案是肯定的,本文我們就介紹Linux下Oracle10G和Oracle11G雙版本數(shù)據(jù)庫并存的安裝和配置,接下來我們就開始介紹。
環(huán)境
WMWARE WORKSTAION 7
OS OracleLinux-R6 32Bit 1G內(nèi)存 30G硬盤1+20G硬盤2(用于存放安裝軟件)
DATABASE
10201_database_linux32
linux_11gR2
之所以選擇的操作系統(tǒng)是OEL,主要是出于兼容性考慮,畢竟這是Oracle自家的玩意兒,自己公司的產(chǎn)品的兼容性肯定要比與別家的相比好點(diǎn)。
PS:不過令我很郁悶的一點(diǎn)就是,啟動數(shù)據(jù)庫安裝程序的時(shí)候,為什么相同的環(huán)境變量配置,使用Red Hat Enterprise的時(shí)候都能夠正常顯示中文,但是一到OEL就是經(jīng)典的方塊,不過操作系統(tǒng)是5.x還是6.x,不過database是10.x還是11.x。
下面是安裝過程的簡單記錄和匯總。
一、首先安裝oracle10g
1. 建立oracle安裝需要的組
root用戶執(zhí)行:
- groupadd oinstall
- groupadd dba
- groupadd oper
2. 建立oracle用戶
root用戶執(zhí)行:
- useradd oracle -g oinstall -G dba,oper
- passwd oracle
3. 修改oracle的配置文件
oracle用戶執(zhí)行
添加下面的行到.bash_profile
- export EDITOR=vi #設(shè)置sqlplus默認(rèn)編輯器為vi
- alias sqlplus=’rlwrap sqlplus’ #一個(gè)小工具,能夠讓sqlplus想windows下一樣使用方向鍵
- export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.UTF8″
- export ORACLE_SID=TEST10G
- export ORACLE_BASE=/opt/oracle/db/10g
- export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
- export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:
- export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/ccs/bin:/etc:/bin:/usr/openwin/bin:/usr/local/bin:/usr/X11R6/bin:
- umask 022
4. 修改內(nèi)核參數(shù)
root用戶執(zhí)行,添加下面的行到/etc/sysctl.conf
- kernel.shmmax = 2147483648
- kernel.shmmni = 4096
- kernel.shmall = 2097152
- kernel.sem = 250 32000 100 128
- fs.file-max = 65536
- net.ipv4.ip_local_port_range = 1024 65000
- net.core.rmem_default = 1048576
- net.core.rmem_max = 1048576
- net.core.wmem_default = 262144
- net.core.wmem_max = 262144
5. 修改資源限制
root用戶執(zhí)行,添加下面的行到/etc/security/limits.conf
- oracle soft nofile 65536
- oracle hard nofile 65536
- oracle soft nproc 16384
- oracle hard nproc 16384
4. 建立相關(guān)的目錄
root用戶執(zhí)行:
- mkdir /opt/oracle
- chown oracle:oinstall /opt/oracle
5. 格式化、掛載新增加的硬盤
root用戶執(zhí)行:
- [root@gtlions ~]# fdisk -l
- [root@gtlions ~]# fdisk /dev/sdb
輸入 n p 1 w
- [root@gtlions ~]# mkfs -t ext4 -c /dev/sdb1
- [root@gtlions ~]# mkdir /media/newdriver
- [root@gtlions ~]# mount /dev/sdb1 /media/newdriver/
- [root@gtlions ~]# mkdir /media/newdriver/ora
- [root@gtlions ~]# chown oracle:oinstall /media/newdriver/ora
6. 上傳軟件并解壓軟件
oracle用戶執(zhí)行:unzip -q 10201_database_linux32.zip
7. 版本欺騙
root用戶執(zhí)行
- cp /etc/redhat-release /etc/redhat-release.bak
- vi /etc/redhat-release修改這個(gè)文件為
- #Red Hat Enterprise Linux Server release 6.0 (Santiago)
- Red Hat 4
8. 亂碼問題
oracle用戶執(zhí)行,在執(zhí)行./runInstaller之前:export LANG=en_US。
9. 安裝過程中遇到的錯(cuò)誤
9.1. 缺少libXp包
root用戶執(zhí)行
Exception in thread “main” java.lang.UnsatisfiedLinkError: /tmp/OraInstall2011-07-30_01-41-36AM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
解決辦法:缺少libXp包,Linux安裝光盤中查找安裝即可,具體安裝細(xì)節(jié)不在贅述。
由于從來沒有在Linux6版本中安裝過10g版本的數(shù)據(jù)庫,一開始還怕會有不少問題,還好,一切順利,接下來的11g版本相信也不會有什么問題。
10. 安裝rlwrap
root用戶執(zhí)行
- [root@gtlions ~]# tar zxvf rlwrap-0.37.tar.gz
- [root@gtlions ~]# cd rlwrap-0.37
- [root@gtlions rlwrap-0.37]# ./configure
- [root@gtlions rlwrap-0.37]# make
- [root@gtlions rlwrap-0.37]# make install
11. 使用啟動腳本
使用啟動腳本之前需要做一些修改,主要是配置下ORACLE_HOME_LISTNER這個(gè)變量.
vi $ORACLE_HOME/bin/dbstart,把79行的ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle修改成:ORACLE_HOME_LISTNER=$ORACLE_HOME。
否則報(bào)錯(cuò):
- [oracle@gtlions bin]$ ./dbstart
- Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
12. 使用關(guān)閉腳本
由于在10g版本當(dāng)中沒有隨著關(guān)閉腳本配置關(guān)閉監(jiān)聽的功能,腳本中寫道
# Oracle Net Listener is NOT shutdown using this script.
因此我們需要增加監(jiān)聽的停止腳本,我們可以借鑒下11g的關(guān)閉腳本,拷貝相關(guān)部分過來即可
- ORACLE_HOME_LISTNER=$ORACLE_HOME
- if [ ! $ORACLE_HOME_LISTNER ] ; then
- echo “ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener”
- echo “Usage: $0 ORACLE_HOME”
- else
- LOG=$ORACLE_HOME_LISTNER/listener.log
- # Set the ORACLE_HOME for the Oracle Net Listener, it gets reset to
- # a different ORACLE_HOME for each entry in the oratab.
- export ORACLE_HOME=$ORACLE_HOME_LISTNER
- # Stop Oracle Net Listener
- if [ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; then
- echo “$0: Stoping Oracle Net Listener” >> $LOG 2>&1
- $ORACLE_HOME_LISTNER/bin/lsnrctl stop >> $LOG 2>&1 &
- else
- echo “Failed to auto-stop Oracle Net Listener using $ORACLE_HOME_LISTNER/bin/tnslsnr”
- fi
- fi
13. 配置/etc/oratab
增加或者修改如下內(nèi)容,注意最后的一個(gè)Y,安裝完成的時(shí)候默認(rèn)是會寫入這個(gè)文件一行記錄,但是最后一位是N/etc/oratab TEST10G:/opt/oracle/db/10g/product/10.2.0/db_1:Y
二、接著安裝oracle11g
1. 修改oracle的配置文件
注意,首先備份好這個(gè)文件,因?yàn)檫@個(gè)文件是10g版本使用的配置文件,只有同時(shí)保存了2個(gè)版本的對應(yīng)的配置文件,在以后的使用過程中才能方便的切換。
備份后修改先前配置,修改后對應(yīng)設(shè)置如下:
- export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.UTF8″
- export ORACLE_SID=TEST11G
- export ORACLE_BASE=/opt/oracle/db/11g/base
- export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
- export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:
- export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/ccs/bin:/etc:/bin:/usr/openwin/bin:/usr/local/bin:/usr/X11R6/bin:
- umask 022
2. 版本恢復(fù)原狀
vi /etc/redhat-release修改這個(gè)文件為Red Hat Enterprise Linux Server release 6.0 (Santiago)
3. 亂碼問題
在執(zhí)行./runInstaller之前export LANG=en_US
三、配置和使用
最后,如何分別使用和同時(shí)使用這2個(gè)版本的數(shù)據(jù)庫。
當(dāng)然是通過使用不同的配置文件來實(shí)現(xiàn)的啦,重點(diǎn)在于每次使用不同版本的數(shù)據(jù)庫的時(shí)候切換到相應(yīng)的環(huán)境變量。
有多個(gè)辦法比如:
1、逐個(gè)設(shè)置相關(guān)的變量;
2、備份2個(gè)版本的環(huán)境變量參數(shù)文件.bash_profile,登陸后手工切換;
3、這里我用的SecureCRT的ssh工具,針對oracle配置兩個(gè)會話,設(shè)置在登錄后執(zhí)行不同的腳本,在這么我們就是要讓它來替我們完成環(huán)境變量的設(shè)置。
四、最后
特地查看了下2個(gè)版本的安裝目錄的占用空間的大小,數(shù)據(jù)文件上差不多,10g的占用1.1g,11g的占用1.4g,但是安裝軟件占用的就相差很大了,11g的幾乎是10g的3倍,前者是3.7g,后者才1.3g。大家伙啊11g。
關(guān)于Linux系統(tǒng)上Oracle10G和Oracle11G雙版本數(shù)據(jù)庫并存的安裝和配置過程就介紹到這里了,希望可以帶給您一些收獲。
【編輯推薦】






