一、安裝LINUX
我安裝的是ORACLE公司編譯的LINUX 4.4 (5也出來了,但對中文支援不好,亂碼)
另外:oracle 10g支援的liunx版本有redhat-2.1, redhat-3, SuSE-9, SuSE-8 or UnitedLinux-1.0
所以可以運行: ./runInstaller -ignoreSysPrereqs 來逃避ORACLE對作業系統的檢查
1、如果這台伺服器最重要的作用是安裝ORACLE,則直接給ORACLE分配檔案系統。如:
/boot 100M,/ 15G,/swap 2G,/opt 20G(將來ORACLE的程式將放在此目錄下,/opt相當於WINDOWS的 C:/Program File 檔案夾),/OracleData 20G (用來放ORACLE的物理資料庫檔案),當然如果您的空間夠大,多給/ 一些應該也沒錯。
2、在選擇安裝軟體時:
(1)需要安裝“開發”下的所有“開發”及“遺留開發”。如果這些檔案不安裝,您就需要在作業系統裝完後再安裝:gcc-3.2.3-2 等等一些程式,驗證您是否安裝軟體的方法是(以剛才那個軟體為例):rpm -q gcc
(2)系統 下的“管理工具”和“系統工具”。EL版本和ELsmp的區別是: SMP 是指一台伺服器中存在多個CPU,包括現在的多核。如果您的空間夠大,就把這2個全部裝完,但不要重複安裝 ocfs-2-2.6.9-42.0.0.0.1EL, ocfs-2-2.6.9-42.0.0.0.1ELsmp。因為 通過命令查作業系統的核心版本時:uname -r,會發現,可能因為安裝的是企業版,所以,出現的是:2.6.42-4.0.1.ELsmp,所以,類似的3個ocfs,只需安裝最後的一個ELsmp。(當然,在LINUX 5中,我卻發現沒有了ELsmp了,估計應該選擇ELxen了,看作業系統版本吧,要不就都安裝,然後再把沒用的刪除)。另外,只所以讓全部安裝,是因為,安裝完後,您會發現,這時安裝的管理工具和系統工具,都是安好後“應用程式”下的“系統工具”裡的東西,反正不會引起衝突。如果您不想全安裝,那麼至少應該安裝:系統工具下所有開頭帶:ORACLE和ocfs的檔案。還有:sysstat 。如果您還想進行遠端控制,如WINDOWS下使用Xmanager,則最好安裝“系統工具”下的一個以大寫 X 開頭的程式,以後您會在“應用程式”》》“系統設定”》》“登入螢幕”下配置,選擇XDMCP,啟用它。
(3)“伺服器”下,可以只選“FTP”和“遺留伺服器”中的 telnet 和 rsh-server ,後者可能會在RAC中用到。
(4)如果您想要FTP工具,還可在“互連網”中選擇gFTP。
(5)安裝資料庫前,一定要安裝下面第一個包(第二個包在RAC時會用到)。
libaio-0.3.105-2.i386.rpm 這個包在32位情況下是此,如果64位,則帶*64符號。否則可能會出現:ORA-12547:TNS:lost contact 錯誤
openmotif21-2.1.30-11.RHEL4.6.i386.rpm (這個可能RAC需要)
二、ORACLE 安裝
下面把必要條件寫為紅色,把重要條件寫為藍色. 把代碼寫為綠色.
1、只建立一個使用者及組,如: oracle dba。當然,最簡單的方法是,用系統內建工具進行分配。
附:常用命令(一下只是例子,實際中,我是用圖形介面把OracleData用root分給了oracle使用者,並在/opt下建立了一個檔案夾oracle,也分給了oracle使用者及其組):
mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01/app/oracle /u02/oradata
chmod -R 775 /u01/app/oracle /u02/oradata
2、配置:shellmax shellall 等參數(但按照ORACLE官方教材的說法,這一步也可以省略。實踐證明,省略這一步,如果僅僅是安裝資料庫程式,是可以的,但如果您要建立資料庫執行個體,則會提示要配置這些參數)以下代碼直接複製粘貼.
cat >> /etc/sysctl.conf <<EOF
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
EOF
對以上參數的說明:記憶體大過2g的,就按shmmax(表示最大共用記憶體)=shmall*1*1024 (shmall=實際記憶體*1024)。對於32bit的linux來說,不管實際的記憶體有多大,shmmax的最大值不應該超過 4294967295。
3、配置: .bash_profile中的參數 。這一步雖然不是安裝必須的。但如果不配,特別是PATH等,那麼以後你要執行命令,如:sqlplus,就要先進到資料庫的安裝目錄,然後在bin下執行./sqlplus,麻煩。
export ORACLE_BASE=/OracleDataexport ORACLE_HOME=/opt/oracle #一般人都會在這行寫:=$ORACLE_BASE/ora10g 等等,但實際為了提升效率,您大可不必#export ORACLE_SID=DEMO #執行個體名,只所以不配,是因為如果你有多個資料庫,你根本就沒辦法配export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/libexport NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK " #一開始我沒有配置此參數,探索管理的EM頁面竟然是英文。然後就到處google這個參數到底該怎麼配,後來才發現,這個參數完全可以不配,其實你dbca的時候會發現,有一頁配置時預設字元集竟然是CHS16GBK。一開始出現英文的原因是這個LINUX內建的瀏覽器是英文的,如果你在你的遠程IE中開啟,就會是中文了,哈)
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #最後,在PATH後添加上: :$ORACLE_HOME/bin,當然,這個參數一定要在$ORACLE_HOME定義後哦
如果點擊安裝後,無法出現X頁面,估計還需要設定:
export DISPLAY=你的IP:0.0
xhost + (就是讓任何機器可以訪問原生圖形介面) 4、在安裝時,需要確定 ./runInstaller 對ORACLE使用者有執行權。
如果您把oracle複製到了本地,那就需要:
chown -R oracle /opt/oracle/Soft(裝ORACLE來源程式的檔案夾)
chmod -R 777 /opt/oracle/Soft
進入Soft, chmod 777 runInstaller然後就可以執行:./runInstaller 了
三、部分概念及實現多個資料庫的自動啟動
1、全域資料庫名稱概念。該名稱應包括 ORACLE_SID和伺服器網域名稱。如:demo1.ora.com,其中,demo1是ORACLE_SID,ora.com是網域名稱。
2、如果您的機器在安裝是有域,則需要:
cat sqlnet.ora
然後屏蔽掉:
#NAMES.DEFAULT_DOMAIN = localdomain
否則,會出現錯誤:
ORA-12154: TNS:could not resolve service name
參見:http://blog.chinaunix.net/u/15472/showart_286991.html
3、ORACLE資料庫的手動啟動及多個資料庫手動全啟動方法
一般是執行:(在oracle使用者下)
$ lsnrctl start
$ dbstart
$ emctl start dbconsole
$ isqlplusctl start
如果你有多個資料庫,當執行完以上後,還需要設定ORACLE_SID參數,以啟動另外一個資料庫:
$exopt ORACLE_SID=ORA2
$ lsnrctl start
$ dbstart
$ emctl start dbconsole
$ isqlplusctl start
如果想執行一個命令,就啟動多個資料庫,同時您的資料庫是10g,那麼您很幸運,您可以只需在oracle庫所有者使用者下執行一個命令:dbstart。其原理步驟為:
(1)在 $ORACLE_HOME/bin 下有一個shell指令碼dbstart 。實際上它是調用了當時您在建資料庫時,最後你用root指令碼執行並產生的一個指令碼:etc/oratab。這個oratab裡面放了您所有的資料庫,其形式為多行的:執行個體名:HOME地址:Y。預設最後一個是N。在dbstart指令碼中,會迴圈尋找oratab中的多個行,當遇到Y時,就啟動這個庫,如果是N,則不啟動。
(2)同時幸運的是,在10g中,這個指令碼還內建了監聽的自啟動,所以您只要執行了這個指令碼,就不用在執行監聽的啟動了。但您需要修改這個dbstart指令碼的第78行,系統預設把監聽的位置指向了:
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle #我也不知ORACLE為何執行此無用目錄!?你需要改為一下:
ORACLE_HOME_LISTNER=$ORACLE_HOME #如果您前面沒有配$ORACLE_HOME,還可以接指向您的資料庫程式存放地址。
(3)我想,既然這個dbstart中可以存放除啟動以外的程式,如監聽,那也應該可以存放其他程式,如企業管理器。一開始,我把EM的命令放在了監聽命令上面,如果是您配置了SID,那麼是可以啟動成功的;但後來,我經過了幾乎一天的測試,才發現這是個愚蠢的做法。應該把命令寫進啟動資料庫的旁邊,而不是監聽旁邊,因為監聽是不分那個資料庫的,只要執行一次。於是,我把命令放在了第135行,就是代碼:echo "$0:Starting up database /"$ORACLE_SID/""的上上行。我添加了:
ORACLE_HOME/bin/emctl start dbconsole #啟動企業管理器,加了此行後,在啟動時,您會發現啟動非常慢!就是因為EM啟動慢的原因。當然,您還可以在此行後添加 iSQL的啟動:
isqlplusctl start
(4)當然,還建議您把相同位置的相反代碼(stop)放進:dbshut 指令碼中!
4、LINUX下多個資料庫的自啟動方法
在您掌握了上面的手動啟動方法後,實現LINUX的自啟動,實際就是掌握如何想WINDOWS的註冊表那樣,在RUN下添加一些路徑、命令而已。
在LINUX下,啟動的最後步驟是啟動:/etc/rc.d/rc.local 中的命令。您只需要在最後一行添加下面代碼即可:
su - oracle -c "dbstart"
LINUX的服務啟動實際是在:/etc/rc.d/init.d 目錄下,您甚至可以編一個指令碼放到此目錄下,就可以啟動時執行了!
四、資料的匯入與匯出
在10g的EM下,要用一般使用者進行資料的匯入與匯出,要先進入sys使用者,然後給這個一般使用者指派“管理員”許可權,然後才能匯入、匯出。
五、其他
如果您正想建立一個 Tomcat 的WEB SERVER,那麼您就不用很費勁的下載龐大的JDK了,因為ORACLE 10g在安裝時,已經同時安裝了JDK(應該是1.4版),位置在$ORACLE_HOME下的JDK檔案夾中。您在配置tomcat時,只需要把 JAVA_HOME變數指向這個目錄就行了。
好了,以上是我折騰了好些日子才總結出的經驗,如果還有其他心得,我會陸續補充上的;如有不妥的地方,大家再切磋吧。
六、RAC
前段時間安裝了多次RAC,經驗如下:
1、在RAC安裝協助文檔中,有的會建立多個使用者組,如oinstall,dba,實際只需要建立一個dba;還把oracle使用者的目錄建在了多個目錄 中,其實也不需要,我是建立在了 /u01 中了,然後修改了其下的.bash_profile檔案。如果要建立 export ORACLE_BASE,最好建在/u01/app/ 下,即不要建在/01的根目錄下,免得和其他使用者檔案衝突。
2、接上,要同時建立一個用於方OCR和表決磁碟的OCFS2格式分區。即: /ocfs 。以後在ASM時,不要對這個分區掛載,因為它要建立OCFS2分區。後來,在任何一個作業系統給這個分區添加檔案後,在另外的作業系統中都可以看到。
2、 把ORACLE參數放在使用者目錄下的 .bash_profile或 .profile都行,好像 .profile會開機執行一樣,區別:
和你使用的shell有關係
.profile 是Bourne Shell (sh)的設定檔.
.bash_profile是bash特有的, 由於bash被設計成相容sh, ksh, 並有csh的特徵, 所以會在使用者主目錄依次尋找.bash_profile, .bash_login, .profile並用找到的第一個作為自己的設定檔.
在Linux下sh是bash的一個連結, 如果bash使用sh命令啟動的, 就會以sh相容方式運行使用.profile
3、參數:NLS_LANG和LANG最好直接設為:="SIMPLIFIED CHINESE_CHINA.ZHS16GBK "
4、配置時間同步。否則後來在安裝OCR時會出現錯誤:in the future。把 clock等內容放在 /boot/一行的後面,不能換行。
5、安裝ORACLE軟體時,要先 建立使用者等價關係。即執行:exec /usr/bin/ssh-agent $SHELL
/usr/bin/ssh-add
否則,安裝資料庫時,因為要同時在RAC1和RAC2上都安裝,所以會出現 OUI-35000錯誤。
參考文檔:
http://www.oracle.com/technology/global/cn/pub/articles/chan-ubl-vmware.html