我對linux是絕對的菜鳥,但今天有份工作是給一台裝在linux上的oracle伺服器設定自動資料備份。這很可能是只做一次的工作,只做一次的東西,時間久了肯定會忘掉,所以把整個安裝和配置過程記錄下來,供下次需要時翻看。
Linux我是裝在vmware上的,大概一個月前裝的,當時沒記下了,現在也忘記是怎麼裝的了。
Oracle可以從它的官網上下載,我下載的是oracle 11g(11.2.0.1.0)for linux x86版,地址是http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linuxsoft-085393.html。有兩個檔案,分別是linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip。
下載下來之後要把檔案傳到linux上,我用ssh的secure file transfer來傳。
1.安裝oracle之前,需要先裝一些必備。我參考的是http://www.liusuping.com/ubuntu-linux/redhat-linux-oracle-11g-r2.html
有些必備可能之前就已經裝上了,所以在安裝前,先用rpm –qa|grep xxx來看一下有沒有安裝。例如要裝這個elfutils-libelf-devel,則先運行一下:
- [root@localhost Server]# rpm -qa|grep elfutils-libelf-devel
如果已經安裝了,會有下面的提示:
- [root@localhost Server]# rpm -qa|grep elfutils-libelf-devel
- elfutils-libelf-devel-static-0.125-3.el5
- elfutils-libelf-devel-0.125-3.el5
可以發現,我們grep後面不需要把這個Package的全名寫完。
如果沒裝,則什麼提示也沒有。此時需要運行下面的命令來安裝它。
- [root@localhost Server]# rpm -ivh elfutils-libelf-devel*
- warning: elfutils-libelf-devel-0.125-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
- Preparing... ########################################### [100%]
- 1:elfutils-libelf-devel-s########################################### [ 50%]
- 2:elfutils-libelf-devel ########################################### [100%]
- [root@localhost Server]# rpm -qa|grep elfutils-libelf-devel
- elfutils-libelf-devel-static-0.125-3.el5
- elfutils-libelf-devel-0.125-3.el5
這個*是萬用字元,即我們不需要寫全,它會自己找。不過要注意的是,需要把linux的安裝光碟片放進wmware裡,然後cd到media/光碟片名/Server目錄下才能找到這個包。
需要裝的包如下:
- binutils-2.17.50.0.6
- compat-libstdc++-33-3.2.3
- elfutils-libelf-0.125
- elfutils-libelf-devel-0.125
- elfutils-libelf-devel-static-0.125
- gcc-4.1.2
- gcc-c++-4.1.2
- glibc-2.5-24
- glibc-common-2.5
- glibc-devel-2.5
- glibc-headers-2.5
- kernel-headers-2.6.18
- ksh-20060214
- libaio-0.3.106
- libaio-devel-0.3.106?
- libgcc-4.1.2
- libgomp-4.1.2
- libstdc++-4.1.2?
- libstdc++-devel-4.1.2
- make-3.81
- sysstat-7.0.2
- unixODBC-2.2.11
- unixODBC-devel-2.2.11
我在別的文章裡看到的這些包有點不同,有些文章會多出幾個,有些會少一些。暫時不糾結到底需要哪些了。
由於我要裝的是oracle 11g,是支援RHEL5的,所以不用像有些文章裡裝10時去改系統的版本。
2.建立使用者
- # /usr/sbin/groupadd oinstall
- # /usr/sbin/groupadd dba
- # /usr/sbin/useradd -g oinstall -G dba oracle
- # passwd oracle
最後一條命令運行時,會出現提示,讓我們輸入oracle使用者的密碼。
3.修改系統參數
用vi命令修改/etc/sysctl.conf,加上下面的參數:
- fs.aio-max-nr = 1048576
- fs.file-max = 6815744
- kernel.shmall = 2097152
- kernel.shmmax = 536870912
- kernel.shmmni = 4096
- kernel.sem = 250 32000 100 128
- 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 = 1048586
用vi命令修改/etc/security/limits.confi,加入下面的參數:
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofile 65536
修改/etc/pam.d/login,加入:
- session required pam_limits.so
修改/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
安裝目錄配置:
- # mkdir -p /u01/
- # chown -R oracle:oinstall /u01/
- # chmod -R 775 /u01/
然後用su oracle命令切換到oracle使用者,然後修改使用者變數.bash_profile檔案:
- [oracle@localhost ~]$ vi .bash_profile
增加下面的內容:
- export ORACLE_BASE=/u01/app
- export ORACLE_HOME=$ORACLE_BASE/oracle
- export ORACLE_SID=liusuping
- export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
登出root,用oracle登入,並啟動圖形介面。
進入下載的oracle那兩個zip包所在的檔案夾, 我的目錄是/usr/tools/oracle,分別解壓這兩個zip包,如:
兩個包都要解壓,解到同一個目錄下,然後運行下面./runInstaller,稍等一會,就彈出了oracle的安裝嚮導,如:
但這個嚮導的顯示好像有些問題,一閃一閃的,下面的"下一步"按鈕根本點不了。應該是解析度的問題,裝個vmware tool就好了。
Vmware tool裝的也不容易,這裡就不寫出來了。
裝完wmware tool之後重啟linux後,就可以調解析度了,調完之後,oracle的安裝介面也就不閃了。但安裝程式檢查系統時,又報了記憶體不足和交換空間不足的錯誤。記憶體不足很好解決,加點記憶體就行了,但把交換空間調大則需要linux命令來做了。
參考http://lanlfeng.blog.51cto.com/337014/123130,依次執行下面的命令:
- dd if=/dev/zero of=/opt/image/swap bs=1024 count=2048000
- mkswap /opt/image/swap
- swapon /opt/image/swap
然後用free –m命令來查看現有的交換區是不是變大了。
- [root@localhost ~]# free -m
- total used free shared buffers cached
- Mem: 1434 1140 293 0 43 848
- -/+ buffers/cache: 247 1186
- Swap: 3983 0 3983
然後重新運行oracle的安裝程式,可以順利通過檢測了: