最近兩天晚上閑的一些時候,在開始在linux平台整一些東西,今天準備在下面安裝一下oracle資料庫,在網上也看到了很多高人的文章,參考了他們的方法,然後把自己的操作過程記錄下來,方便自己以後查閱同時也希望方便一下來我部落格查閱的人。
作業系統我用的是linux,至於系統的安裝過程我就不說了,linux的安裝過程開發包和開發工具是必選的,安裝oracle還需要老的軟體開發工具,因此這個也得選上。
一,系統內容的準備工作
首先在終端下執行
rpm -q gcc make binutils openmotif setarch compat-db compat-gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel看看你的軟體包是否安裝完整,有提示沒有安裝的話,把需要的給匯集安裝上,可能安裝完後還有提示如下,查閱 網上資料,據說是rpm包的bug,這個可以不用理會了。
package compat-gcc-c++ is not installed
package compat-libstdc++ is not installed
根據官方對oracle的需求如下:
所需最小 RAM 為 512MB,而所需最小交換空間為 1GB。對於 RAM 小於或等於 2GB 的系統,交換空間應為 RAM 數量的兩倍;對於 RAM 大於 2GB 的系統,交換空間應為 RAM 數量的一到兩倍。 我們可以通過下面的命令來查看當前系統的記憶體與虛擬記憶體:
# grep MemTotal /proc/meminfo
MemTotal: 2067248 kB
# grep SwapTotal /proc/meminfo
SwapTotal: 4096564 kB
Oracle 10g 軟體還需要 2.5GB 的可用磁碟空間,而資料庫則另需 1.2GB 的可用磁碟空間。/tmp 目錄至少需要 400MB 的可用空間。我們可以通過下面的命令,來查看磁碟空間:
#df -h
配置 Linux 核心參數
Linux 核心非常出色。與大多數其他 *NIX 系統不同,Linux 允許在系統啟動和運行時修改大多數核心參數。完成核心參數更改後不必重新啟動系統。Oracle 資料庫10g 需要以下所示的核心參數設定。其中給出的是最小值,因此如果您的系統使用的值較大,則不要更改它。
#vi /etc/sysctl.conf在尾端加入
kernel.sem = 250 32000 100 128# 訊號量
fs.file-max = 65536 #linux分配的最大檔案控制代碼數
net.ipv4.ip_local_port_range = 1024 65000 #連接埠號碼的範圍(預設是1024~4999
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
再運行/sbin/sysctl -p應用上面的配置.
建立oracle使用者帳戶
接下來,建立用於安裝和維護 Oracle 10g 軟體的 Linux 組和使用者帳戶。使用者帳戶將稱為 oracle,而組將稱為 oinstall 和 dba。以 root 使用者身份執行以下命令:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
建立oracle安裝目錄
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle
為 oracle 使用者佈建 Shell 限制
在/etc/security/limits.conf檔案中加入以下內容,以修改單個使用者允許使用的進程和檔案數量
#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
#vi /etc/selinux/config 確保以下內容
SELINUX=disabled
因為oracle 10g不支援centos,所以修改CentOS 5的版本
#vi /etc/redhat-release
redhat-4
修改 Oracle 使用者 .bash_profile
# su - oracle
$ vi ./.bash_profile
添加
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
二,開始安裝
登出然後以oracle使用者登入(如果你不重新登入而直接在終端中通過 “su – oracle” 切換到Oracle使用者安裝的話,可能會出現display設定錯誤的提示而無法安裝)
開啟一個終端,執行以下命令開始安裝
#unzip 10201_database_linux32.zip
#cd database
#./runInstaller
如果你的安裝過程中還出現錯誤的話,應該是還有一些包沒打上,這時你不必終止安裝過程,而是開啟另一個終端,以root使用者身份再去查檢安裝最前面 所說的那些包,如果這些包都裝好了,再回到oracle安裝程式,在出錯提示框點擊 “Retry” 即可繼續安裝,直到成功。
安裝完後orcl資料庫也已經啟動。你可以在其它機器上配置netmanager測試一下是否能串連,如果其它機器沒有裝oracle用戶端,也可以通過telnet命令測試一下1521連接埠是否可以串連
telnet 127.0.0.1:1521
如果進入黑屏,則基本上說明1521連接埠是通的,也就是說你的orale可以正常使用了。
如果不能串連,很可能是防火牆的問題。在伺服器菜單中開啟 “系統/管理/安全層級和防火牆”,然後添加1521連接埠。
重啟後就出現ORA-12514: TNS:listener does not currently know of service requested in connect descriptor:
vi /usr/local/oracle/product/10.2.0.1/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)
)
)
改為:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME= orcl)
(ORACLE_HOME = E:\oracle\product\10.1.0\Db_1)
(SID_NAME=orcl)
)
)
1)啟動指令碼(dbstart.sh) lsnrctl start sqlplus /nolog <<EOF connect / as sysdba startup; exit EOF $sh dbstart.sh 即可2)關閉指令碼(dbstop.sh) lsnrctl stop sqlplus /nolog <<EOF connect / as sysdba shutdown immediate; exit EOF $sh dbstop.sh 即可