oracle817在solairs8下的安裝
2024-08-29 13:30:23
供稿:網友
一、安裝前的準備
1、由root執行的任務(用root用戶登錄)
1.1 設置系統變量
1) 用文本編輯器打開"/etc/system" 文件
# vi /etc/system
2)在 "/etc/system" 文件結尾插入如下幾行
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=512
set shmsys:shminfo_shmseg=128
set semsys:seminfo_semmap=64
set semsys:seminfo_semmni=4096
set semsys:seminfo_semmns=4096
set semsys:seminfo_semmsl=4096
set semsys:seminfo_semmnu=4096
set semsys:seminfo_semume=64
set semsys:seminfo_semopm=100
注:
shmmax maximum size of a shared memory segment
(共享內存段的最大字節數)
shmmin minimum size of shared memory segment
(共享內存段的最小尺寸)
shmmni maximum number of shared memory identifiers in the system
(系統中共享內存標識符的最大數目)
shmseg maximum number of shared memory segments a user process can attach
(每個用戶進程可分配的最大共享內存段數目)
semmni maximum number of semaphore identifiers in the system
(系統中信號燈標識符的最大數目)
semmsl maximum number of semaphores in a set
(每個(信號燈)集合中的信號燈的最大數目)
semmns maximum number of semaphores in the system
(系統中信號燈的最大數目)
semopm maximum number of operations per semop call
(每個semop調用的信號燈的最大數目)
semvmx semaphore maximum value
(信號燈最大值)
注意!
上面提到的 semmsl 和 semmns 的值僅適用于最初的安裝,安裝完成后應根據應用的實際情況進行調整,其中
★ semmsl 的值可以通過以下方式計算得到:
所有oracle實例的"init[sid].ora"文件中最大的processes值 + 10
★ semmns 的值可以通過以下方式計算得到:
系統中各個oracle實例的"init[sid].ora"文件中processes值的總和(不包括最大的那個processes值)+ 最大的那個processes值 * 2 + 10 * oracle實例的個數。
注:[sid]即為具體的數據庫實例名
例如,一個有三個 oracle實例的系統,在各自的"initsid.ora"文件中的processes參數設置為下列值:
oracle_sid=a, processes=100
oracle_sid=b, processes=100
oracle_sid=c, processes=200
則 semmsl 值的計算方法如下:
semmsl = [(c=200) + 10] = 210
則 semmns 值的計算方法如下:
semmns = [(a=100) + (b=100)] + [(c=200) * 2] + [(# of instances=3) * 10] = 630
對于操作系統,設置的參數值過高會導致機器不能啟動,對參數的限制,請參閱sun sparc solaris系統管理文檔。
3) 重啟系統,以使新的內核參數生效
# sync;sync;reboot
4) 系統重啟后,可以通過sysdef命令檢查 "maximum shared memory" 和 "minimum shared memory" 的數值(在列表底部的"shared memory area" 部分)
# sysdef
1.2 建立組、用戶及相關目錄
1) 創建 "dba" 和 "oinstall" 組,添加用戶名為 "oracle" 的用戶,并為其設置密碼
# groupadd dba
# groupadd oinstall (可選)
# useradd -g dba -g oinstall -d /export/home/oracle -m -s /bin/sh oracle
# passwd oracle
以上操作也可通過admintool管理工具來實現
# admintool
2) 創建相關目錄
# mkdir -p /u01/oracle/product/8.1.7
# chown -r oracle:dba /u01/oracle
# chmod -r 775 /u01/oracle
# mkdir /var/opt/oracle
# chown -r oracle:dba /var/opt/oracle
2、由 "oracle user" 執行的任務
1) 退出root登錄,用之前創建的oracle用戶登錄
2) 修改oracle用戶的 ".profile" 配置文件
默認識沒有.profile這個文件的,但可通過oracle用戶下的local.profile這個模板文件來生成.profile這個文件
# mv local.profile .profile
#vi .profile
添加如下內容
display=192.168.0.28:0.0
oracle_base=/u01/oracle
oracle_home=/u01/oracle/product/8.1.7
oracle_sid=oracle8
ora_nls33=$oracle_home/ocommon/nls/admin/data
classpath=$oracle_home/jre/lib:$oracle_home/jlib:$oracle_home/product/jlib:$oracle_home/network/jlib:$oracle_home/rdbms/jlib
ld_library_path=$oracle_home/lib:/lib:/usr/lib
nls_lang=american_america.zhs16gbk
path=/usr/bin:/usr/ucb:/etc:/usr/local/bin:/usr/ccs/bin:/usr/openwin/bin
path=$oracle_home/bin:$path
export path
export display oracle_home oracle_base oracle_sid ora_nls33 ld_library_path nls_lang classpath
3) oracle用戶重新登錄,以使之前修改的 ".profile" 文件配置生效
4) 通過env命令檢查剛才的配置是否生效
$ env
5) 進入oracle安裝文件所在目錄并開始進行安裝
(假設oracle817安裝文件存在于"/export/home/oracle/ora817/disk1")
$ cd /export/home/oracle/ora817/disk1
$ ./runinstaller
注:1、下載的oracle cpio文件的解開方法為:cpio -idcmv < <filename.cpio> 。
2、安裝過程中,當提示要運行 root.sh ($oracle_home/root.sh)腳本時,要手工打開一個新的console(控制臺)以root用戶身份執行。
3、如安裝完成后初始化數據庫過程中遇到 ora-03114: not connected to oracle 錯誤,則應適當加大 semmsl, semmns 等參數的數值。
6) 安裝完后的簡單測試
默認已經是oracle用戶登錄,執行 lsnrctl start 啟動oracle listener
$ lsnrctl start
當監聽啟動成功后,將會看到如下類似信息:
lsnrctl for intel svr4 unix: version 8.1.7.0.0 - production on 23-jun-2002 04:02:46
(c) copyright 1998 oracle corporation. all rights reserved.
starting /u01/oracle/product/8.1.7/bin/tnslsnr: please wait...
tnslsnr for intel svr4 unix: version 8.1.7.0.0 - production
system parameter file is /u01/oracle/product/8.1.7/network/admin/listener.ora
log messages written to /u01/oracle/product/8.1.7/network/log/listener.log
listening on: (description=(address=(protocol=ipc)(key=extproc)))
listening on:
(description=(address=(protocol=tcp)(host=gokmen.selcuk.edu.tr)(port=1521)))
listening on:
(description=(address=(protocol=tcp)(host=gokmen.selcuk.edu.tr)(port=2481))
(protocol_stack=(presentation=giop)
(session=raw)))
connecting to (description=(address=(protocol=ipc)(key=extproc)))
status of the listener
------------------------
alias listener
version tnslsnr for intel svr4 unix: version 8.1.7.0.0 - production
start date 23-jun-2002 04:02:47
uptime 0 days 0 hr. 0 min. 0 sec
trace level off
security off
snmp off
listener parameter file /u01/oracle/product/8.1.7/network/admin/listener.ora
listener log file /u01/oracle/product/8.1.7/network/log/listener.log
services summary...
plsextproc has 1 service handler(s)
orcl has 1 service handler(s)
the command completed successfully
如果看到的是如下類似信息,說明監聽已經啟動:
lsnrctl for intel svr4 unix: version 8.1.7.0.0 - production on 24-jun-2002 05:02:46
(c) copyright 1998 oracle corporation. all rights reserved.
tns-01106: listener using listener name listener has already been started
7)編寫數據庫啟動腳本
由于它自帶的啟動腳本有問題,所以這里我干脆自己寫了一個簡單的腳本
啟動和關閉腳本
1)、啟動腳本(dbstart)
#! /bin/bash
su - oracle<eof
. /home/oracle/.bash_profile
lsnrctl start
svrmgrl<eoe
connect internal
startup
exit
eoe
exit
eof
2)、關閉腳本(dbstop)
#! /bin/bash
su - oracle<eof
. /home/oracle/.bash_profile
lsnrctl stop
svrmgrl<eoe
connect internal
shutdown immediate
exit
eoe
exit
eof
然后賦可執行權限并拷貝到/etc/init.d下
chmod +x dbstart
chmod +x dbstop
在做連接
ln –s /etc/init.d/dbstart /etc/rc2.d/s99dbstart
ln –s /etc/init.d/dbstop /etc/rc0.d/k10dbstop
到此oracle就可以在solaris下正常運行了