前言
在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的限制。
我們的測試環境的檔案系統資料如下
檢查套件
你可以
[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環境下安裝
你應該執行以下指令
[code]
./runInstaller
[/code]
來進入Oracle 10g R2的安裝畫面
在這個畫面,你會注意到ORACLE_HOME會多一個".../oracle/...",請將這幾個字刪掉,讓他安裝到正確的ORACLE_HOME。
接下來你應該填入預設資料庫的密碼(兩次),然後下一步。
這一步可以設定附屬程式的路徑以及資料庫檔案群組,請照預設即可
在這一個畫面,他會自動開始檢查所有必要的系統環境。如果你發現有Error,就應該著手解決。如果只有Warning,可以跳過繼續。下方的詳細視窗可以觀看檢查的記錄。
一旦你解決了Error的問題,你便可以按下Retry重新檢查一次。
在這一步,你可以瀏覽安裝的套件,如果確定無誤便下一步。
你可以看見安裝程式不只單純地將檔案複製進去,也同時進行了client library, enterprise manager的Linking。
完成安裝後,你可以看見安裝程式自動進行預設資料庫的設定。
這個圖告訴你安裝程式已經完成,你可以透過上面的網址登入你的Enterprise Manager。
使用的帳號是system,密碼就是你在第一個畫面設定的密碼。
使用DBCA新增資料庫
在$ORACLE_HOME/bin下面執行dbca
本例子中會新增一個test資料庫
歡迎畫面
選擇建立資料庫
選擇一般用途。其他是要建立OLAP(資料倉儲)或是OLAP(線上分析)資料庫。
預設使用他的Web介面管理程式"Enterprise Manager",如果你不想用的話可以不要勾選。
請輸入你的管理員密碼,之後登入的時候請使用sys這個帳號登入。
通常是預設使用File System。有關RAC及ASM可以參考以下文章:
http://www.puschitz.com/InstallingOracle10gRAC.shtml
http://www.databasejournal.com/features/oracle/article.php/3606256
這裡可以讓你更改資料庫檔的位置,在此使用預設。
這裡設定萬一資料庫毀損的快速復原空間,在此使用預設。
如果勾選選項Sample Schema的話他會安裝一個範例資料庫,也可以在此選擇Custom Scripts匯入自己的Schema。
請照此選擇相容性的UTF-8字集。
在此可以檢視資料庫檔的存放位置,如果有誤可以上一步回去修改。
如果以必要建立資料庫範本供未來可能建立的資料庫使用,可以勾選Save as database template。或者可以儲存creation script在外來可以快速新增同樣的資料庫。接著下一步。
確定無誤便可以OK,也可以儲存HTML Log。
進度跑完後,你可以照此說明來連結你的Enterprise Manager。
使用DBCA刪除資料庫
如同新增一樣,只是選擇刪除
確定要刪除就點選OK。
等待進度跑完後便成功。
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來讓他預設啟動。
沒有留言 :
張貼留言