2007年6月12日 星期二

Oralce 安裝指南 (RedHat Enterprise 4 )


前言


在2005年的時候,因為SRB的關係我開始使用Oracle 10g,他強大的效能真是令人震攝。
SRB使用Oracle的效能差異,也附上了簡短的註記,可以參考:
http://kiwi.csie.chu.edu.tw/blog/srb/srb-with-oracle-memo/

有關快速的安裝,可以參考
http://kiwi.csie.chu.edu.tw/blog/srb/srb-with-oracle-install/

有關完整的安裝請參考
http://www.puschitz.com/InstallingOracle10g.shtm

下載


http://www.oracle.com/technology/software/products/database/oracle10g/index.html

請先註冊OTN的帳號

本文章將介紹Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86

系統需求


Red Hat Enterprise Linux Advanced Server 4 Update 2(RHEL AS 4 U2)
Red Hat Enterprise Linux Advanced Server 3 Update 5(RHEL AS 3 U5)
Red Hat Fedora Core 4(FC 4)

建議請熟悉Unix系統管理兩年以上的管理員來安裝Oracle

本次安裝環境

HP Proliant DL-380 G4, Dual Xeon 3.4G, 4G RAM
Red Hat Enterprise Linux Advanced Server 4 Update 2(RHEL AS 4 U2)

本文章只介紹RHEL AS 4 U2的相關設定

OS環境


OS安裝階段


檔案系統
在作業系統安裝的階段,注意一定要設定swap,通常都是記憶體大小的兩倍
Oracle安裝需要在/tmp佔用約400MB,所以如果你有將/tmp切割為獨立的partition,請注意大小
有關檔案系統,一般我們都會使用Ext3
我通常會將Oracle使用的目錄分開切割,例如/oracle。而Oracle完整安裝約需要2G的空間,如果要加上資料庫的空間,請在這個時候就將大小規劃好。

請注意在一般的情況下,你的檔案系統大小上限會是4TB,也就是說你的資料庫有4TB的限制。

我們的測試環境的檔案系統資料如下
oracle_7.PNG

檢查套件


你可以

[code]
rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs \
libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio
[/code]

來檢查你的套件版本是否正確

binutils-2.15.92.0.2-10.EL4
compat-db-4.1.25-9
control-center-2.8.0-12
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
glibc-2.3.4-2
glibc-common-2.3.4-2
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-9.EL4
libstdc++-devel-3.4.3-9.EL4
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2

這些是在RHEL4U2上必要的套件版本

其餘設定


Oracle的執行必需要額外的記憶體,號誌(semaphores)和檔案數量配置
新增這幾行至/etc/sysctl.conf

kernel.core_uses_pid = 1
kernel.shmmax = 2147483648
kernel.shmall = 2097152
kernel.sem=250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000

[code]
sysctl -p
[/code]

新增oracle帳號
這些帳號是用來安裝及執行oracle
帳號新增好後,你可以接著使用這帳號進入xwindow,比較方便後續的設定
[code]
groupadd oinstall
groupadd dba
useradd -g dba oracle
[/code]

建立oracle安裝目錄
oracle推薦使用這樣子的目錄結構
/<mount point>/app/<oracle user>/product/<version>/db_<number>

舉個例子,本次測試的資料都會被安裝在(ORACLE_HOME)
/u01/app/oracle/product/10.2.0/db_1
而你的基底目錄(ORACLE_BASE)將會是
/u01/app/oracle
這個在你執行視窗安裝介面的時候需要輸入

你的資料庫檔案會被建議放在$ORACLE_BASE/oradata
/u01/app/oacle/oradata

接著將這些目錄的owner全換成oracle
[code]
chown -R oracle.oinstall /u01
[/code]

設定環境變數
你可以將環境變數設定在oracle帳號的.bashrc裡
[code]
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
[/code]
請注意ORACLE_HOME和ORACLE_BASE這兩個變數作用不一樣。HOME是指在後面會看見完整的安裝路徑(/u01/app/oracle/product/10.2.0/db_1),而BASE指的就是oracle的虛擬家目錄(/u01/app/oracle)。

安裝


oracle的安裝需要你在任何xwindow裡啟動視窗
如果你無法在本機安裝,也可以使用遠端安裝
經過測試oracle可以在vnc環境下安裝

oracle_1.png

你應該執行以下指令

[code]
./runInstaller
[/code]

來進入Oracle 10g R2的安裝畫面

oracle_16.png

在這個畫面,你會注意到ORACLE_HOME會多一個".../oracle/...",請將這幾個字刪掉,讓他安裝到正確的ORACLE_HOME。
接下來你應該填入預設資料庫的密碼(兩次),然後下一步。

oracle_2.png

這一步可以設定附屬程式的路徑以及資料庫檔案群組,請照預設即可

oracle_3.png

在這一個畫面,他會自動開始檢查所有必要的系統環境。如果你發現有Error,就應該著手解決。如果只有Warning,可以跳過繼續。下方的詳細視窗可以觀看檢查的記錄。

一旦你解決了Error的問題,你便可以按下Retry重新檢查一次。

oracle_4.png

在這一步,你可以瀏覽安裝的套件,如果確定無誤便下一步。

oracle_5.png

你可以看見安裝程式不只單純地將檔案複製進去,也同時進行了client library, enterprise manager的Linking。

oracle_6.png

完成安裝後,你可以看見安裝程式自動進行預設資料庫的設定。

oracle_8.png
這個圖告訴你安裝程式已經完成,你可以透過上面的網址登入你的Enterprise Manager。
使用的帳號是system,密碼就是你在第一個畫面設定的密碼。

使用DBCA新增資料庫


在$ORACLE_HOME/bin下面執行dbca
本例子中會新增一個test資料庫

歡迎畫面

oracle_12.png

選擇建立資料庫

oracle_13.png

選擇一般用途。其他是要建立OLAP(資料倉儲)或是OLAP(線上分析)資料庫。

oracle_14.png

預設使用他的Web介面管理程式"Enterprise Manager",如果你不想用的話可以不要勾選。

oracle_15.png

請輸入你的管理員密碼,之後登入的時候請使用sys這個帳號登入。

oracle_17.png

通常是預設使用File System。有關RAC及ASM可以參考以下文章:
http://www.puschitz.com/InstallingOracle10gRAC.shtml
http://www.databasejournal.com/features/oracle/article.php/3606256

oracle_18.png
這裡可以讓你更改資料庫檔的位置,在此使用預設。

oracle_19.png

這裡設定萬一資料庫毀損的快速復原空間,在此使用預設。

oracle_20.png

如果勾選選項Sample Schema的話他會安裝一個範例資料庫,也可以在此選擇Custom Scripts匯入自己的Schema。
oracle_21.png

請照此選擇相容性的UTF-8字集。

oracle_22.png

在此可以檢視資料庫檔的存放位置,如果有誤可以上一步回去修改。

oracle_23.png

如果以必要建立資料庫範本供未來可能建立的資料庫使用,可以勾選Save as database template。或者可以儲存creation script在外來可以快速新增同樣的資料庫。接著下一步。

oracle_24.png

確定無誤便可以OK,也可以儲存HTML Log。

oracle_25.png

進度跑完後,你可以照此說明來連結你的Enterprise Manager。

oracle_26.png

使用DBCA刪除資料庫


如同新增一樣,只是選擇刪除

oracle_28.png

確定要刪除就點選OK。

oracle_29.png

等待進度跑完後便成功。

oracle_30.png

Oracle的啟動與停止


啟動script依照預設放在/etc/init.d/oracle,但是可能有些小錯誤必須去修改。
請編輯他,並且找到
ORA_HOME=...
如果值有誤,請改成正確的。

在su - $ORA_OWNR -c $ORA_HOME/bin/dbstart下面加入
su - $ORA_OWNR -c $ORA_HOME/bin/emctl start dbconsole

同樣地也在下面的
su - $ORA_OWNR -c $ORA_HOME/bin/dbshut下面加入
su - $ORA_OWNR -c $ORA_HOME/bin/emctl stop dbconsole

全部的程式碼是這樣

[code]
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle listener and instance

ORA_HOME=/oradb/app/oracle/product/10.2.0/db_1/
ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
su - $ORA_OWNR -c $ORA_HOME/bin/emctl start dbconsole
touch /var/lock/subsys/oracle
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
su - $ORA_OWNR -c $ORA_HOME/bin/emctl stop dbconsole
rm -f /var/lock/subsys/oracle
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0
[/code]

接著你應該檢查~oracle/.bash_profile來看看有沒有加入ORACLE_HOME變數,沒有的話也要加入。注意只有ORACLE_BASE變數是不行的。

接著你便可以使用service來控制這個服務,或是chkconfig來讓他預設啟動。

沒有留言 :

張貼留言