Linux環境下Oracle10G和Oracle11G并存的安裝和配置
在Linux系統中可以實現Oracle10G和Oracle11G雙版本數據庫的并存嗎?答案是肯定的,本文我們就介紹Linux下Oracle10G和Oracle11G雙版本數據庫并存的安裝和配置,接下來我們就開始介紹。
環境
WMWARE WORKSTAION 7
OS OracleLinux-R6 32Bit 1G內存 30G硬盤1+20G硬盤2(用于存放安裝軟件)
DATABASE
10201_database_linux32
linux_11gR2
之所以選擇的操作系統是OEL,主要是出于兼容性考慮,畢竟這是Oracle自家的玩意兒,自己公司的產品的兼容性肯定要比與別家的相比好點。
PS:不過令我很郁悶的一點就是,啟動數據庫安裝程序的時候,為什么相同的環境變量配置,使用Red Hat Enterprise的時候都能夠正常顯示中文,但是一到OEL就是經典的方塊,不過操作系統是5.x還是6.x,不過database是10.x還是11.x。
下面是安裝過程的簡單記錄和匯總。
一、首先安裝oracle10g
1. 建立oracle安裝需要的組
root用戶執行:
- groupadd oinstall
- groupadd dba
- groupadd oper
2. 建立oracle用戶
root用戶執行:
- useradd oracle -g oinstall -G dba,oper
- passwd oracle
3. 修改oracle的配置文件
oracle用戶執行
添加下面的行到.bash_profile
- export EDITOR=vi #設置sqlplus默認編輯器為vi
- alias sqlplus=’rlwrap sqlplus’ #一個小工具,能夠讓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. 修改內核參數
root用戶執行,添加下面的行到/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用戶執行,添加下面的行到/etc/security/limits.conf
- oracle soft nofile 65536
- oracle hard nofile 65536
- oracle soft nproc 16384
- oracle hard nproc 16384
4. 建立相關的目錄
root用戶執行:
- mkdir /opt/oracle
- chown oracle:oinstall /opt/oracle
5. 格式化、掛載新增加的硬盤
root用戶執行:
- [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用戶執行:unzip -q 10201_database_linux32.zip
7. 版本欺騙
root用戶執行
- cp /etc/redhat-release /etc/redhat-release.bak
- vi /etc/redhat-release修改這個文件為
- #Red Hat Enterprise Linux Server release 6.0 (Santiago)
- Red Hat 4
8. 亂碼問題
oracle用戶執行,在執行./runInstaller之前:export LANG=en_US。
9. 安裝過程中遇到的錯誤
9.1. 缺少libXp包
root用戶執行
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安裝光盤中查找安裝即可,具體安裝細節不在贅述。
由于從來沒有在Linux6版本中安裝過10g版本的數據庫,一開始還怕會有不少問題,還好,一切順利,接下來的11g版本相信也不會有什么問題。
10. 安裝rlwrap
root用戶執行
- [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這個變量.
vi $ORACLE_HOME/bin/dbstart,把79行的ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle修改成:ORACLE_HOME_LISTNER=$ORACLE_HOME。
否則報錯:
- [oracle@gtlions bin]$ ./dbstart
- Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
12. 使用關閉腳本
由于在10g版本當中沒有隨著關閉腳本配置關閉監聽的功能,腳本中寫道
# Oracle Net Listener is NOT shutdown using this script.
因此我們需要增加監聽的停止腳本,我們可以借鑒下11g的關閉腳本,拷貝相關部分過來即可
- 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
增加或者修改如下內容,注意最后的一個Y,安裝完成的時候默認是會寫入這個文件一行記錄,但是最后一位是N/etc/oratab TEST10G:/opt/oracle/db/10g/product/10.2.0/db_1:Y
二、接著安裝oracle11g
1. 修改oracle的配置文件
注意,首先備份好這個文件,因為這個文件是10g版本使用的配置文件,只有同時保存了2個版本的對應的配置文件,在以后的使用過程中才能方便的切換。
備份后修改先前配置,修改后對應設置如下:
- 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. 版本恢復原狀
vi /etc/redhat-release修改這個文件為Red Hat Enterprise Linux Server release 6.0 (Santiago)
3. 亂碼問題
在執行./runInstaller之前export LANG=en_US
三、配置和使用
最后,如何分別使用和同時使用這2個版本的數據庫。
當然是通過使用不同的配置文件來實現的啦,重點在于每次使用不同版本的數據庫的時候切換到相應的環境變量。
有多個辦法比如:
1、逐個設置相關的變量;
2、備份2個版本的環境變量參數文件.bash_profile,登陸后手工切換;
3、這里我用的SecureCRT的ssh工具,針對oracle配置兩個會話,設置在登錄后執行不同的腳本,在這么我們就是要讓它來替我們完成環境變量的設置。
四、最后
特地查看了下2個版本的安裝目錄的占用空間的大小,數據文件上差不多,10g的占用1.1g,11g的占用1.4g,但是安裝軟件占用的就相差很大了,11g的幾乎是10g的3倍,前者是3.7g,后者才1.3g。大家伙啊11g。
關于Linux系統上Oracle10G和Oracle11G雙版本數據庫并存的安裝和配置過程就介紹到這里了,希望可以帶給您一些收獲。
【編輯推薦】