Linux下oracle 11g的安裝(PS: 討厭的PS,由於從word文檔中copy過來的,很多都看不到了,將文檔地址分享給大家:http://download.csdn.net/detail/lzc3144/4265451)系統要求
伺服器配置要求
至少1024MB記憶體空間,oracle軟體需要4.0GB以上磁碟空間(oracle 11g要求的磁碟空間為3.95GB),要求linux OS Kernel Version 2.6.9
查看系統配置的相關命令:
cat /etc/issue
uname –r
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
grep "model name" /proc/cpuinfo
free
df -k /tmp
df –k
本次安裝環境(由於在虛擬機器上面安裝,配置很有限):
作業系統:Cent OS 6.2-i386
記憶體:2GB
磁碟空間:40GB
安裝前的配置
1) 建立使用者和組(user/group);
# groupadd dba
# groupadd oinstall
# useradd oracle -g oinstall -G dba
# passwd oracle
如果nobody使用者不存在(# id nobody命令查看),則建立:
# useradd nobody
2) 建立oracle安裝資料夾(sample);
# mkdir -p /opt/oracle/product/10g
# mkdir /opt/oracle/ oradata
# mkdir /opt/oraInventory
# chown -R oracle.oinstall /opt/oracle
# chown oracle.oinstall /opt/oraInventory/
# chmod 755 -R /opt/oracle
# chmod 755 /opt/oraInventory/
3) 配置環境變數
要使用 Oracle 產品,應該或必須設定幾個環境變數。如果您在同一伺服器上安裝了多個 Oracle 產品或資料庫,則 ORACLE_HOME、ORACLE_SID 和 PATH 變數可能會更改。ORACLE_BASE 變數不應更改,並可以在需要時在您的登入設定檔中設定它。Oracle 提供了一個稱作 oraenv 的公用程式來設定其他變數。
對於資料庫伺服器,建議設定以下環境變數:
使用第一步建立的使用者名稱Oracle登陸:
su oracle
vi ~/.bash_profile
修改以下是設定檔的內容
export ORACLE_BASE=/opt/oracle/
export ORACLE_HOME=/opt/oracle/product/11g
export ORACLE_SID=localorcl(可隨意定義)
export PATH=$ORACLE_HOME/bin:$PATH
ESC(退出vi的編輯環境)
:wq(退出vi應用程式並儲存修改)
安裝好後再取消屏蔽這些環境變數設定
#export TNS_ADMIN=$ORACLE_HOME/network/admin
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#export LANG=AMERICAN_AMERICA.ZHS16GBK
配置好後用 source .bash_profile 命令使配置生效
4) 設定系統核心參數
Oracle 資料庫 10g 需要以下所示的核心參數設定。
其中給出的是最小值,因此如果您的系統使用的值較大,則不要更改它。
切換到root使用者:
su root
a) 修改/etc/sysctl.conf(vi /etc/sysctl.conf), 添加:
[root@localhost install_file]# vi/etc/sysctl.conf
# oracel intall add parameters
#kernel.shmmax = 2147483648
kernel.shmmni=4096
#kernel.shmall = 2097152
kernel.sem=250 32000 100 128
fs.file-max=6815744
fs.aio-max-nr=1048576
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
修改後運行"/sbin/sysctl -p"命令使得核心改變立即生效;
b) 設定oracle對檔案的要求:
編輯檔案: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 加入以下語句(可能應該加在最後一條規則之前):
session required /lib/security/pam_limits.so
開始安裝
Oracle的安裝建議在物理機器上安裝,如果只能使用SSH遠程安裝的話,可以使用支援圖形顯示的SSH軟體進行安裝
解壓縮oracle 11g 的安裝檔案
# unzip linux_11gR2_database_1of2.zip
# unzip linux_11gR2_database_2of2.zip
# cd database
# ./runInstaller
如果出現提示 Check if the DISPLAY variable is set. 錯誤提示資訊,則使用root使用者執行:
# xhost +
# export DISPLAY=:1.0
# su – oracle 切換回oracle使用者再次執行# ./runInstaller
如果還出現錯誤的話,則重啟系統,直接使用oracle使用者登入系統
開始安裝之後出現如下介面
選擇oracle伺服器的類型,簡單安裝的話選擇‘案頭類型’就可以了,對於正式應用的話需要選擇‘伺服器類型’安裝
第一項:單個oracle伺服器安裝,第二項:oracle叢集安裝
選擇語言,預設選擇english
設定oracle使用的記憶體大小,按預設設定就好了
這裡需要設定字元集,設定字元集為utf-8
設定oracle資料庫檔案存放路徑
設定oracle的自動備份功能,按需求設定
設定sys,system等使用者的密碼,可以設定成同一個也可以分別設定,按需配置 (這裡如果設定的密碼過於簡單,oracle會給出錯誤提示,可以直接跳過)
這是配置啥,我真心的不知道,預設設定就好了
Oracle檢查安裝前置條件,這裡列出了所有檢查失敗的前置條件,我們首先要解決這些錯誤前置條件才能繼續安裝
我們逐個來查看具體的錯誤提示資訊
所有的錯誤資訊分兩大類,上面的為系統核心的配置錯誤(基本是由於一些參數配置過小而不符合oracle的建議參數);下面的為oracle服務的依賴包沒有安裝
STEP 1:
安裝缺少的依賴包,(需要用root使用者),這些缺少的依賴包可以在系統的安裝iso中找到:
[root@localhost ~]# cd /media/CentOS_6.2_Final/Packages
[root@localhost Packages]# rpm -ivhcompat-libstdc++-33-3.2.3-69.el6.i686.rpm
warning:compat-libstdc++-33-3.2.3-69.el6.i686.rpm: Header V3 RSA/SHA256 Signature, keyID c105b9de: NOKEY
Preparing... ###########################################[100%]
1:compat-libstdc++-33 ########################################### [100%]
註:在提示缺少的依賴包中 pdksh-5.2.14 這個包在CentOS 6 安裝iso中無法找到,這個依賴包可以從網上下載,下載之後上傳到linux伺服器的某個目錄後運行
[root@localhost install_file]#rpm -ivh pdksh-5.2.14-36.el5.i386.rpm
STEP 2:
修改核心配置參數,以支援oracle的建議參數,在/etc/sysctl.conf配置中加入以下配置(如果在“安裝前的配置”步驟中已經配置了則這裡無需再配置)
[root@localhost install_file]# vi/etc/sysctl.conf
# oracel intall add parameters
kernel.shmmni=4096
kernel.sem=250 32000 100 128
fs.file-max=6815744
fs.aio-max-nr=1048576
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
修改之後運行,是核心配置立即生效
[root@localhost install_file]#/sbin/sysctl -p
解決完錯誤之後,點擊 Check Again按鈕,重新檢查之後,可以看到所有問題已經解決,點擊Finish 按鈕完成安裝
配置oracle服務隨系統啟動
step 1:
修改/etc/oratab檔案,需要將localorc:/opt/oracle/product/11g:N最後的N改成Y
(如果/etc/oratab檔案不存在,則需要使用root使用者執行$ORACLE_HOME/root.sh檔案
# sh /opt/oracle/product/11g/root.sh)
[root@lzc-centos6 ~]# cat /etc/oratab
localorc:/opt/oracle/product/11g:N
[root@lzc-centos6 ~]# vi /etc/oratab
localorc:/opt/oracle/product/11g:Y
setp 2:
使用oracle的安裝使用者(oracle)修改$ORACLE_HOME/bin/dbstart檔案,修改之前最好先備份一下,使用如下命令
[oracle@lzc-centos6 bin]$ cp /opt/oracle/product/11g/bin/dbstart/opt/oracle/product/11g/bin/dbstart.bak
找到ORACLE_HOME_LISTNER=…這行,修改成
ORACLE_HOME_LISTNER=/opt/oracle/product/11g
或者直接修改成:
ORACLE_HOME_LISTNER=$ORACLE_HOME
Step 3:
測試回合dbshut,dbstart
(1)修改dbstart和dbshut的記錄檔的許可權(如果這兩個檔案不存在,先手工touch):
root使用者先建立這兩個檔案
# cd $ORACLE_HOEM/bin
[root@lzc-centos6 11g]# touch startup.log
[root@lzc-centos6 11g]# chownoracle.oinstall startup.log
[root@lzc-centos6 11g]# chmod 755startup.log
[root@lzc-centos6 11g]# touch shutdown.log
[root@lzc-centos6 11g]# chownoracle.oinstall shutdown.log
[root@lzc-centos6 11g]# chmod 755shutdown.log
[root@lzc-centos6 11g]# ls -l startup.logshutdown.log
-rwxr-xr-x. 1 oracle oinstall 0 Jan 8 13:50 shutdown.log
-rwxr-xr-x. 1 oracle oinstall 0 Jan 8 13:49 startup.log
(2)執行相應的指令碼進行測試
[root@lzc-centos6 11g]# su - oracle
[oracle@lzc-centos6~]$ cd $ORACLE_HOME
[oracle@lzc-centos6bin]$ dbshut #(or dbstart)
(3)建立oracle服務啟動指令碼:oradbstart(使用root使用者)
[root@lzc-centos611g]# touch /home/oracle/oradbstart
# chownoracle.oinstall /home/oracle/oradbstart
# chmod 775oracle.oinstall /home/oracle/oradbstart
拷貝內容之後,需要將該檔案copy到/etc/rc.d/init.d/目錄下
# cp/home/oracle/oradbstart /etc/rc.d/init.d/oradbstart
將oradbstart加入到系統啟動列表中
[root@lzc-centos6init.d]# chkconfig --add /home/oracle/oradbstart
[root@lzc-centos6init.d]# chkconfig --list oradbstart
oradbstart 0:off 1:off 2:off 3:on 4:on 5:on 6:off
註:在使用chkconfig –add命令時候如果出現以下錯誤
[root@lzc-centos6 init.d]# chkconfig --add/home/oracle/oradbstart
error reading information on serviceoradbstart: No such file or directory
需要檢查/home/oracle/oradbstart檔案是否正確,如果copy文字的話可能出現丟失頭上的一兩行的情況,檢查改檔案的頭部是否如下:(如果不是需改之後重新copy到/etc/rc.id/init.d/目錄下)
#!/bin/bash
# chkconfig: 345 99 10
# description: Startup Script for oracleDatabases
指令碼內容如下(親,記得根據自己的資料庫配置做相應的修改喲):
[root@lzc-centos611g]# cat /home/oracle/oradbstart
#!/bin/bash
# chkconfig:345 99 10
# description:Startup Script for oracle Databases
#/etc/rc.d/init.d/dbstart
exportORACLE_BASE=/opt/oracle/
exportORACLE_HOME=/opt/oracle/product/11g/
exportORACLE_SID=localorc
exportPATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if theexecutables do not exist -- display error
if [ ! -f$ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannotstart"
exit 1
fi
# depending onparameter -- startup, shutdown, restart
# of theinstance and listener or usage display
case"$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORA_OWNR -c"$ORACLE_HOME/bin/lsnrctl start "
su $ORA_OWNR -c"$ORACLE_HOME/bin/dbstart"
touch /var/lock/oracle
su $ORA_OWNR -c"$ORACLE_HOME/bin/emctl start dbconsole"
su $ORA_OWNR -c"$ORACLE_HOME/bin/isqlplusctl start"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORA_OWNR -c"$ORACLE_HOME/bin/emctl stop dbconsole"
su $ORA_OWNR -c"$ORACLE_HOME/bin/isqlplusctl stop"
su $ORA_OWNR -c"$ORACLE_HOME/bin/dbshut"
su $ORA_OWNR -c"$ORACLE_HOME/bin/lsnrctl stop"
rm -f /var/lock/oracle
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0`start|stop|restart|reload"
exit 1
esac
exit 0
測試快速啟動命令:
[root@lzc-centos6init.d]# /etc/rc.d/init.d/oradbstart stop
[root@lzc-centos6init.d]# /etc/rc.d/init.d/oradbstart start
重啟linux
# reboot –n
在linux啟動的時候,你就可以看到一個啟動項oracle,出現[OK]的時候,就表示你的資料庫隨系統啟動了。
# su – oracle
# pe –ef|grepora
安裝過程中的錯誤解決辦法資料庫執行個體安裝失敗
安裝過程中碰到在‘Oracle Net Configuration Assistant’這步的時候失敗,導致oracle執行個體沒法繼續安裝
解決辦法:
通過查看安裝日誌發現出現改錯誤的異常是因為連接埠被佔用,但通過netstat命令來查看1521連接埠並沒有其他程式在使用,於是google,baidu折騰一把大致說法是因為/etc/hosts裡面的主機名稱和IP的映射配置有問題(因為系統在安裝的過程中我手動設定了,而且系統安裝的時候並沒設定靜態IP,而是用DHCP擷取地址,並且還同時開啟了IPv4和IPv6的地址),這樣可能導致oracle網路設定的時候解析本機主機名稱的時候出錯,具體修改辦法:
Step 1:# vi /etc/hosts,加上本機ip和本機主機名稱的映射,去掉IPV6的配置
[root@lzc-centos6 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.102 lzc-centos6
Step 2:# vi /etc/host.conf,加上 orderhosts, bind;表示先通過/etc/hosts檔案尋找再通過網域名稱伺服器尋找(網域名稱服務 (DNS)地址設定檔/etc/resolv.conf)
[root@lzc-centos6 ~]# cat /etc/host.conf
order hosts, bind
multi on
Step 3:重啟監聽成功
# lsnrctl start 啟動監聽
EM 頁面出現亂碼
訪問https://192.168.1.102:1158/em頁面發現亂碼出現
註:如果oracle管理台已經啟動,而無法訪問該頁面的話,需要檢查你linux伺服器的防火牆的配置,是否允許其他機器訪問1158連接埠,具體linux防火牆的配置百度之
oracle 11g使用的是jdk1.5,jdk1.5以後有了一個簡便方法來解決這個問題,只需在$JAVA_HOME/jre/lib/fonts/下建一個fallback目錄,把你想在java中使用的字型複製到這個目錄中即可,在oracle使用者下:
$ mkdir $ORACLE_HOME/jdk/jre/lib/fonts/fallback
把windows下的字型檔simsun.ttc複製到$ORACLE_HOME/jdk/jre/lib/fonts/fallback目錄下並改名simsun.ttf(注意ms的simsun字型是有著作權的,所以商用換其他字型),相應的許可權改為oracle使用者可用.
之後需要清理一下Cache,重啟EM即可:
命令如下:
[root@lzc-centos6 ~]# chown oracle.oinstall/opt/oracle/product/11g/jdk/jre/lib/fonts/fallback/simsunb.ttf
[root@lzc-centos6 ~]# chmod 755/opt/oracle/product/11g/jdk/jre/lib/fonts/fallback/simsunb.ttf
[oracle@lzc-centos6 ~]$ rm/opt/oracle/product/11g/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
[oracle@lzc-centos6 ~]$ emctl startdbconsole
親,這樣搞不行啊,還是亂碼!(留待後續解決。。。)