Oracle11gR2 在 Linux CentOS 5.3,RHEL 5.4 上的安裝 作者: Zinc Chen 郵箱: zinc.chen@live.cn 一. 安裝操作系統(tǒng) 操作平臺 : VMWARE 7.0.0 build-197124+CentOS-5.4-x86_64-bin-DVD.iso 數(shù)據(jù)庫版本 : Oracle11gR2 針對 32/64 位 Linux ,請選用對應版本的
Oracle11gR2 在 Linux CentOS 5.3,RHEL 5.4 上的安裝
作者: Zinc Chen 郵箱: zinc.chen@live.cn
一. 安裝操作系統(tǒng)
操作平臺 :
VMWARE 7.0.0 build-197124+CentOS-5.4-x86_64-bin-DVD.iso
數(shù)據(jù)庫版本 :
Oracle11gR2 針對 32/64 位 Linux ,請選用對應版本的 Oracle
下載地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip
輔助軟件 :
SecureCRT( 用于遠程執(zhí)行命令 ) 、 winscp( 用于遠程文件傳輸 )
要求內(nèi)存不小于 1G ; / 更新:測試機不滿足要求,但是在安裝的時候可以選擇忽略
在內(nèi)存小于 4G , SWAP 應該是內(nèi)存的 1.5 倍;
內(nèi)存 4 到 16G , SWAP 和內(nèi)存相同大小即可
內(nèi)存超過 16G , SWAP 是 16G ;
( 我的虛擬機物理內(nèi)存設置為 2G , SWAP 設置為 3G) ;
由于 11gR2 對于共享內(nèi)存要求變大,因此系統(tǒng)共享內(nèi)存應該大于 512* 進程數(shù);
如果共享內(nèi)存不足的話,會造成 ORA-845 或 ORA-1078 錯誤;
要求 /tmp 分區(qū)不少于 400M ,安裝目錄應大于 4G ;
4. 我的虛擬機配置情況:
宿主配置為四核心 Q9550, 內(nèi)存 8G DDR2 800 的,主板 Intel G45 ,硬盤采用 320G*3 前段組 RAID0, 后段組 RAID5 ,操作系統(tǒng)為 Vista 64bit SP2
虛擬操作系統(tǒng)配置: CPU 雙核心,內(nèi)存 2048G ,硬盤 160G
硬盤分區(qū)情況如下:
SWAP 3072M <- 交換分區(qū)(根據(jù)內(nèi)存大小按照 3 進行計算)
/boot 300M <- 啟動分區(qū)(可以設置為 100M ,但是為了內(nèi)核升級方便,建議使用 300M )
/ 15G <- 系統(tǒng)主目錄(僅僅用于安裝操作系統(tǒng))
/ora 15G <-oracle 系統(tǒng)安裝分區(qū)(僅僅用于 Oracle 應用程序)
/oradata 90G <-oracle 數(shù)據(jù)分區(qū)(僅僅用于存放 Oracle 數(shù)據(jù),根據(jù)硬盤大小,約大約好)
/orabak 30G <- 備份分區(qū)(存放每日的數(shù)據(jù)備份,請根據(jù)備份策略與數(shù)據(jù)量進行合理計算)
/更新:實際使用中,先劃分前面的分區(qū),然后根據(jù)硬盤剩余對后面的空間進行劃分,建議采用 LVM2 對分區(qū)進行管理,這樣可以在線調(diào)整分區(qū)大小,靈活性比較高。
5. 默認服務器開啟了 SSH ,在配置防火墻的時候注意檢查一下,這樣可以使用 SecureCRT 連接進入控制,使用 FileZilla 傳輸文件;
6. 安裝系統(tǒng)的時候,可以直接選擇依賴包,以解決 Oracle 安裝的時候依賴關系,當然也可以在安裝完基本系統(tǒng)以后再補充安裝依賴包,建議采用后者,以避免操作太多導致混亂;
7. VM 中安裝的話,需要安裝 VM 相關的驅(qū)動 ( 點擊 VM->Install VMware Tools) :
進入光盤路徑: mount /media/cdrom /dev/cdrom
cd /media/cdrom
安裝 VMwareTools : rpm –ivh VMwareTools-7.8.6-185404.i386.rpm
初始化圖形界面: /usr/bin/vmware-config-tools.pl
重新啟動 X : ctrl+alt+backspace
彈出 VM 的驅(qū)動光盤,掛載默認的系統(tǒng)盤,后面要用
二.配置系統(tǒng),準備安裝
檢查硬件情況 ( 虛擬機情況 ) :
[root@ora ~]# grep "model name" /proc/cpuinfo model name : Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz model name : Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz [root@ora ~]# grep MemTotal /proc/meminfo MemTotal: 2075560 kB [root@ora ~]# grep SwapTotal /proc/meminfo SwapTotal: 3113340 kB [root@ora ~]# free total used free shared buffers cached Mem: 2075560 1000572 1074988 0 59336 814732 -/+ buffers/cache: 126504 1949056 Swap: 3113340 0 3113340 [root@ora ~]# df -k /dev/shm 文件系統(tǒng) 1K- 塊 已用 可用 已用 % 掛載點 tmpfs 1037780 0 1037780 0% /dev/shm [root@ora ~]# df -k /tmp 文件系統(tǒng) 1K- 塊 已用 可用 已用 % 掛載點 /dev/sda5 9920592 3165436 6243088 34% / |
檢查軟件情況 (CentOS 5.3 的情況, RHEL 無需改動 ) :
[root@ora ~]# cat /proc/version Linux version 2.6.18-128.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Jan 21 10:44:23 EST 2009 [root@ora ~]# uname -a Linux ora.libcms.net 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux [root@ora ~]# more /etc/issue CentOS release 5.3 (Final) Kernel \r on an \m [root@ora ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 ora.libcms.net ora localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 |
將 CentOS 系統(tǒng)偽裝成 RedHat
Vi /etc/redhat-release 修改為 : Red Hat Enterprise Linux Server release 5.3 (Tikanga) |
#cat /proc/partitions 查看現(xiàn)在分區(qū)
#cd /mnt 進入掛載目錄
#mkdir cdrom 創(chuàng)建光盤掛載區(qū)
#mkdir usb 創(chuàng)建U盤掛載區(qū)
#mount /dev/sdb /mnt/usb 例如將sdb設備掛載到/mnt/usb目錄下
#umount /mnt/usb 使用完畢后將設備卸載
linux的硬件設備在/dev目錄下,光驅(qū)也是其中。
/dev/cdrom表示光驅(qū),掛載光驅(qū)的方法如下(以root身份):
mkdir /mnt/cdrom
mount -t auto -o ro /dev/cdrom
/mnt/cdrom #不加參數(shù)也能自動掛上。
以下是操作的屏幕復制內(nèi)容:
linux@cdyemail:/$ ls /mnt #查看mnt下面有沒有cdrom目錄 ,這個是隨意的目錄。
cdrom iso usb winc wind
linux@cdyemail:/$ mount /dev/cdrom /mnt/cdrom #掛載發(fā)現(xiàn)沒有權(quán)限
mount: 只有 root 才能進行此操作
linux@cdyemail:/$ su #切換到root用戶,也可以用sudo 來取得root權(quán)限。
密碼:
root@cdyemail:/# mount -t auto -o ro /dev/cdrom /mnt/cdrom #-t auto類型自動, -o ro只讀模式
root@cdyemail:/# ls -l /mnt/cdrom #查看光盤內(nèi)容
root@cdyemail:/# umount /mnt/cdrom #刪除掛載的光驅(qū)
root@cdyemail:/# eject /dev/cdrom #彈出光驅(qū)
root@cdyemail:/#
附:
對于iso鏡像文件可以進行掛載
mount -t iso9660 -o loop iso文件 /mnt/iso
你想安裝:gcc-4.1.2-46.SEL5_4.2.i386.rpm的軟件包,需要先安裝相關的軟件包,這都有依賴性。 如果,你只想安裝gcc-4.1.2-46.SEL5_4.2.i386的軟件包的話,就多加一個 --nodeps 的參數(shù)就好了
如:rpm -ivh --nodeps gcc-4.1.2-46.SEL5_4.2.i386.rpm
這就無需依賴其他的安裝包了
rpm -ivh gcc-c++-4.1.2-46.el5.x86_64.rpm --nodeps --force
安裝系統(tǒng)的依賴包 ( 注意對應版本 , 安裝系統(tǒng)的時候如果已經(jīng)處理,這里就無需要安裝了 )
// 下面是 redhat 5.4 64bit 版本的命令 cd /media/cdrom cd Server rpm -ivh binutils-2.17.50.0.6-12.el5.x86_64.rpm rpm -ivh compat-libstdc++-33-3.2.3-61.x86_64.rpm rpm -ivh compat-libstdc++-33-3.2.3-61.i386.rpm rpm -Uvh elfutils-libelf-devel-static-0.137-3.el5.x86_64.rpm --nodeps rpm -ivh elfutils-libelf-devel-0.137-3.el5.x86_64.rpm rpm -ivh elfutils-libelf-0.137-3.el5.x86_64.rpm rpm -Uvh elfutils-devel-static-0.137-3.el5.x86_64.rpm --nodeps rpm -ivh elfutils-libs-0.137-3.el5.x86_64.rpm rpm -ivh elfutils-devel-0.137-3.el5.x86_64.rpm rpm -ivh glibc-headers-2.5-42.x86_64.rpm rpm -ivh glibc-2.5-42.i686.rpm rpm -ivh glibc-devel-2.5-42.i386.rpm rpm -ivh glibc-2.5-42.x86_64.rpm rpm -ivh glibc-common-2.5-42.x86_64.rpm rpm -ivh glibc-devel-2.5-42.x86_64.rpm rpm -ivh gcc-4.1.2-46.el5.x86_64.rpm rpm -ivh gcc-c++-4.1.2-46.el5.x86_64.rpm rpm -ivh kernel-headers-2.6.18-164.el5.x86_64.rpm rpm -ivh ksh-20080202-14.el5.x86_64.rpm rpm -ivh libaio-0.3.106-3.2.i386.rpm rpm -ivh libaio-0.3.106-3.2.x86_64.rpm rpm -ivh libaio-devel-0.3.106-3.2.i386.rpm rpm -ivh libaio-devel-0.3.106-3.2.x86_64.rpm rpm -ivh libgcc-4.1.2-46.el5.i386.rpm rpm -ivh libgcc-4.1.2-46.el5.x86_64.rpm rpm -ivh libgomp-4.4.0-6.el5.x86_64.rpm rpm -ivh libstdc++-4.1.2-46.el5.x86_64.rpm rpm -ivh libstdc++-devel-4.1.2-46.el5.x86_64.rpm rpm -ivh make-3.81-3.el5.x86_64.rpm rpm -ivh sysstat-7.0.2-3.el5.x86_64.rpm rpm -ivh unixODBC-2.2.11-7.1.i386.rpm rpm -ivh unixODBC-devel-2.2.11-7.1.i386.rpm rpm -ivh unixODBC-2.2.11-7.1.x86_64.rpm rpm -ivh unixODBC-devel-2.2.11-7.1.x86_64.rpm |
增加必須要的用戶組與用戶
[root@ora ~]# groupadd oinstall [root@ora ~]# groupadd dba [root@ora ~]# adduser -g oinstall -G dba oracle [root@ora ~]# passwd oracle Changing password for user oracle. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@ora ~]# df -h [root@ora ~]# mkdir -p /ora/app/oracle/product/ [root@ora ~]# chown -R oracle:oinstall /ora [root@ora ~]# chmod -R 775 /ora [root@ora ~]# chown -R oracle:oinstall /oradata [root@ora ~]# chmod -R 775 /oradata [root@ora ~]# chown -R oracle:oinstall /orabak [root@ora ~]# chmod -R 775 /orabak |
修改內(nèi)核參數(shù)
[root@ora ~]#vi /etc/sysctl.conf kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr= 1048576 [root@ora ~]#/sbin/sysctl -p [root@ora ~]#/sbin/sysctl -a |
為 oracle 用戶設置 Shell 限制
[root@ora ~]# vi /etc/security/limits.conf 增加: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 vi /etc/pam.d/login file 增加: session required pam_limits.so\ vi /etc/profile 增加: if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi vi /etc/csh.login 增加: if ( $USER == "oracle" ) then limit maxproc 16384 limit descriptors 65536 endif |
修改用戶的啟動腳本
su oracle echo $SHELL cd /home/oracle vi .bash_profile 增加如下內(nèi)容: ORACLE_BASE=/ora/app/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 ORACLE_HOME_LISTNER=$ORACLE_BASE/product/11.2.0/dbhome_1 ORACLE_SID=orcl PATH=$ORACLE_HOME/bin:$PATH export ORACLE_BASE ORACLE_HOME ORACLE_HOME_LISTNER ORACLE_SID PATH ORACLE_TERM=xterm export ORACLE_TERM TNS_ADMIN=$ORACLE_HOME/network/admin export TNS_ADMIN #set the user languages #NLS_LANG="SIMPLIFIED CHINESE_CHINA".GBK #LC_CTYPE=zh_CN.GBK #LC_ALL=zh_CN.UTF8 #LANG=zh_CN.GBK LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib CLASSPATH=$ORACLE_HOME/jdk/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export NLS_LANG LC_CTYPE LC_ALL LANG LD_LIBRARY_PATH CLASSPATH umask 022 載入啟動腳本: source .bash_profile |
上傳 oracle 的安裝文件到服務器,采用 SFTP 協(xié)議傳輸。
以 oracle 用戶上傳之 /ora 文件夾 [oracle@ora ora]$ unzip linux_11gR2_database_1of2.zip [oracle@ora ora]$ unzip linux_11gR2_database_2of2.zip |
二.安裝 Oracle11gR2
cd /ora/database
./runInstaller 開始安裝 .
選擇高級安裝 , 進行自定義安裝
在 CentOS 的安裝中 , 提示 pdksh 包找不到是正常現(xiàn)象, redhat5 以上的版本已經(jīng)更名 pdksh 為 ksh 包了,前面我們已經(jīng)安裝了,所以可以忽略
在 CentOS 的安裝中 , 會出現(xiàn)一個關于 oraInventory 目錄的警告 , 點擊 OK, 不用理會繼續(xù)即可 , 在隨后的窗口中將 /oraInventory 修改為 /ora/app/oraInventory
隨后參數(shù)都是默認 , 在安裝中會彈出一個要求執(zhí)行
/ora/app/oraInventory/oraIinstRoot.sh 和 /ora/app/oracle/product/11.2.0/dbhome_1/root.sh 的提示框 , 可在命令行中 , 以 ROOT 用戶執(zhí)行這兩個文件 , 進入 End of installtion 窗口 , 安裝結(jié)束 .
[oracle@test database]$ ./runInstaller
正在啟動 Oracle Universal Installer...
檢查臨時空間: 必須大于 120 MB。 實際為
117329 MB 通過
檢查交換空間: 必須大于 150 MB。 實際為 1983 MB 通過
檢查監(jiān)視器: 監(jiān)視器配置至少必須顯示 256 種顏色
>>> 無法使用命令 /usr/bin/xdpyinfo 自動檢查顯示器顏色。請檢查是否設置了 DISPLAY 變量。 未通過 <<<<
未通過某些要求檢查。必須先滿足這些要求,
然后才能繼續(xù)安裝,那時將重新檢查這些要求。
是否繼續(xù)? (y/n) [n] y
原因:
當時是通過vnc登錄的root,然后通過root切換到oracle用戶的,注銷通過oracle登錄就可以!
三.連接測試
如果啟動有問題lsnrctl: error while loading shared libraries: /home/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied
執(zhí)行
semanage fcontext -a -t textrel_shlib_t
/ora/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1
restorecon -R -v
/ora/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1
啟動監(jiān)聽器: lsnrctl start
登陸: sqlplus "/as sysdba"
啟動數(shù)據(jù)庫: startup
關閉數(shù)據(jù)庫: shutdown
關閉監(jiān)聽器: lsnrctl stop
啟動 EM : emctl start dbconsole
關閉 EM : emctl stop dbconsole
啟動 iSQL*Plus : isqlplusctl start
關閉 iSQL*Plus : isqlplusctl stop
如果希望讓服務器自動啟動,那么需要修改 /etc/oratab 中:
orcl:/ora/app/oracle/product/11.2.0/dbhome_1:Y
四.添加系統(tǒng)服務
作為 root 用戶創(chuàng)建一個叫做 /etc/init.d/dbora 的文件,包括下面的內(nèi)容:
#!/bin/sh # description: Oracle auto start-stop script. # chkconfig: - 20 80 # # Set ORA_HOME to be equivalent to the $ORACLE_HOME # from which you wish to execute dbstart and dbshut; # # Set ORA_OWNER to the user id of the owner of the # Oracle database in ORA_HOME. ORA_HOME=/ora/app/oracle/product/11.2.0/dbhome_1 ORA_OWNER=oracle if [ ! -f $ORA_HOME/bin/dbstart ] then echo "Oracle startup: cannot start" exit fi case "$1" in 'start') # Start the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" su - $ORA_OWNER -c "emctl start dbconsole" ;; 'stop') # Stop the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" su - $ORA_OWNER -c "emctl stop dbconsole" ;; 'restart') $0 stop $0 start ;; esac |
修改權(quán)限為 750
chmod 750 /etc/init.d/dbora |
設置服務自動啟動
chkconfig --level 345 dbora on |
如果你遇上: cannot restore segment prot after reloc: Permission denied, 應該是 SELinux 的問題,可以考慮把它關閉。
四.添加自動備份服務
作為 root 用戶創(chuàng)建一個叫做 /orabak/backup.sh 的文件,包括下面的內(nèi)容:
#!/bin/bash source /home/oracle/.bash_profile # 初始化 Oracle 數(shù)據(jù)庫 rq=$(date +%Y%m%d) # 把當天日期賦予變量 rq rm /orabak/backup/full_$rq.dmp # 清空舊文件 exp system/springland file=/orabak/backup/full_$rq.dmp log=/orabak/backup/full_$rq.log full=y compress=y |
修改權(quán)限為 750
chmod 750 /orabak/backup.sh |
設置 Cron 計劃自動執(zhí)行
nano /orabak/backup.txt 30 23 * * * /orabak/backup.sh crontab –u root /orabak/backup.txt crontab –l /etc/init.d/crond restart |
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com