Installing Oracle 10g on RHEL AS 4 Step-by-Step
Installing Oracle 10g on Red Hat Enterprise Linux Advanced Server 4 (RHEL 4)
本文描述了在Red Hat Enterprise Linux Advanced Server 4 (RHEL 4)上安裝Oracle 10g(10.1.0.3.0) 必要的步驟和相關知識. 本文假定
你的Linux 操作系統已經安裝完畢(“開發”一項里面全選“開發工具”,“原有的軟件開發”),并且您應該具有一定的 Unix 操作系統背景知識.
配置RedHat AS 4
操作系統版本:Red Hat Enterprise Linux AS release 4 (Nahant)
Kernel 2.6.21-4.EL on an i686
按照常規來安裝操作系統,記得要安裝開發工具(gcc等必要工具).
必要的硬件信息檢查:
檢查內容 | 最小值 | 檢查命令參考 |
物理內存 | 512M | # grep MemTotal /proc/meminfo |
交換空間 | 1.0 GB或者2倍內存大小 | # grep SwapTotal /proc/meminfo |
/tmp 空間 | 400 MB | # df -k /tmp |
軟件所需空間 | 2.5 GB | # df -k (空間越大越好,如果是正式系統,應該進行詳盡的規劃) |
數據庫文件 | 1.2 GB | # df -k (空間越大越好,如果是正式系統,應該進行詳盡的規劃) |
檢查完如上各項之后, 應該修改核心參數.執行如下命令:
#vi /etc/sysctl.conf
#注釋:#表示使用root用戶操作,$表示使用oracle?用戶進行操作.提示符后面的藍色部分表示需要輸入的命令,以下同.
在該文件末尾加入如下內容:
#-----------Begin from here--------------------------------------
kernel.shmall = 2097152
#kernel.shmmax = 2147483648
kernel.shmmax = 4294967295#liuzy suggested(根據實際情況變化)
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
#--------------End here--------------------------------------------
編輯完之后,保存,執行 # /sbin/sysctl -p命令操作來使我們所做的變更生效.
注:上面kernel.shmmax/kernel.sem等是典型的核心參數配置.您可能需要根據您的實際環境進行適當的變動.
關于這些核心參數的說明在Oracle的Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems
中有很詳細的說明.( http://download-west.oracle.com/docs/html/A96167_01/toc.htm )
然后,應該檢查一下上面的操作是否正確:
# /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep ip_local_port_range
為Oracle用戶設定Shell的限制
一般來說,出于性能上的考慮,還需要需要進行如下的設定,以便改進Oracle用戶的有關 nofile(可打開的文件
描述符的最大數)和nproc(單個用戶可用的最大進程數量)
# vi /etc/security/limits.conf
# 添加如下的行
*?????????????? soft??? nproc?? 2047
*?????????????? hard??? nproc?? 16384
*?????????????? soft??? nofile? 1024
*?????????????? hard??? nofile? 65536
也有一說是:暫時按照上一種
oracle????????? soft??? nproc??? 2047
oracle???????? ?hard??? nproc??? 16384
oracle????????? soft??? nofile?? 1024
oracle????????? hard??? nofile?? 65536
?
添加如下的行到/etc/pam.d/login 文件:
??session??? required???? /lib/security/pam_limits.so
編輯 /etc/profile 文件,添加如下部分:
?
?
if [ $USER = "oracle" ]; then?
if [ $SHELL = "/bin/ksh" ]; then?
ulimit -p 16384?
ulimit -n 65536?
else?
ulimit -u 16384 -n 65536?
fi?
fi
?
之后,
#source /etc/profile
執行$ unlimit驗證一下.
檢查并安裝相關補丁
在這個版本的RHEL上安裝Oracle,必須要有幾個軟件包. 確認以下 rpm包都已經安裝:
make-3.79
binutils-2.11
openmotif-2.2.2-16
setarch-1.3-1
compat-db-4.0.14.5
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
# rpm -qa | grep compat
# 在我的機器上輸出如下:
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-glibc-7.x-2.2.4.32.5
compat-db-4.0.14-5
compat-gcc-7.3-2.96.122
# rpm -qa | grep openmotif
openmotif-devel-2.2.2-16
openmotif-2.2.2-16
# rpm -qa | grep setarch
setarch-1.3-1
上面顯示的內容是在筆者已經安裝了具體的RPM包之后的結果.一般情況下,你的系統上的輸出結果和這個不同.如果個
別包沒有安裝,把系統安裝光盤mount上,找到具體的軟件包(大多數在第三張光盤上),然后利用如下的命令來安裝相應
的包:
# rpm -ivh compat.....rpm
要額外注意的是,這些軟件包之間是有依賴性的,先后的順序要找好.否則會報告不能安裝的錯誤.
此外,最好驗證一下 gcc和glibc的版本(要求是gcc-3.2.3-2 或者更高)
#gcc -v
#rpm -q glibc
注:如果驗證不成功也沒有關系(只是警告),照樣可以繼續安裝
創建用戶和相關的組
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
#/usr/sbin/useradd -g oinstall -G dba oracle
如果只是測試目的的話,不創建oinstall組也沒什么. 不過還是規范一點比較好.如果oracle 用戶和dba組等已經存在,作
適當的調整即可.
#mkdir -p /opt/app/oracle/product/10.1.0/db_1
檢查并調整環境變量
登錄為oracle用戶
#passwd oracle
#111111
#111111
# su - oracle
$ cd
$ vi .bash_profile
#添加如下內容,你的具體值應該不會和這個完全相同.
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export ORACLE_SID=ORCL
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LC_CTYPE=en_US.UTF-8
然后執行
$ source .bash_profile
使環境變量生效. /opt/app/oracle 等目錄應該建立好并做合適的授權.
$exit
#chown? oracle.oinstall?? -R /opt/app/?? #讓oinstall 組的oracle用戶對/opt/app下面擁有權限
注:如有必要修改/etc/redhat-release內容為:Red Hat Enterprise Linux AS release 3 (Taroon)
?
開始安裝10g
使用winscp拷貝ship.db.lnx32.cpio.gz到相應的目錄下面比如:/
#gunzip ship.db.lnx32.cpio.gz
#cpio –idcmv < ship.db.lnx32.cpio
$ sh /Disk1/runInstaller
如果不能出現安裝畫面,查看本文后面的FAQ。
出現提示并按照提示執行后:
Creating the Oracle inventory pointer file (/etc/oraInst.loc)
Changing groupname of /opt/app/oracle/oraInventory to oinstall.
非常值得稱道的是,10g的安裝相比以前的多了一個 Checking operating system certification 的步驟。特別實用。
安裝文件會自動檢測所需的條件。如果有不符合的地方,安裝程序會報告給你.并會給出具體原因。大大減少了出錯的可能.
下面是檢查成功輸出的內容 :
Checking operating system certification
Expected result: One of redhat-2.1,redhat-3,UnitedLinux-1.0
Actual Result: redhat-3
Check complete. The overall result of this check is: Passed
=======================================================================
Checking kernel parameters
Checking for VERSION=2.4.9.25; found VERSION=2.4.21. Passed
Checking for shmall=2097152; found shmall=2097152. Passed
Checking for shmseg=10; found shmseg=4096. Passed
Checking for semmsl=250; found semmsl=250. Passed
Checking for semmni=128; found semmni=128. Passed
Checking for filemax=65536; found filemax=65536. Passed
Checking for shmmni=4096; found shmmni=4096. Passed
Checking for semmns=32000; found semmns=32000. Passed
Checking for semopm=100; found semopm=100.Passed
Checking for shmmin=1; found shmmin=1. Passed
Checking for shmmax=2147483648; found shmmax=2147483648. Passed
Check complete. The overall result of this check is: Passed
=======================================================================
Checking recommended operating system packages
Checking for make-3.79; found make-3.79.1-17. Passed
Checking for binutils-2.11.90.0.8-12; found binutils-2.14.90.0.4-26. Passed
Checking for gcc-2.96; found gcc-3.2.3-20. Passed
Checking for openmotif-2.1.30-11; found openmotif-2.2.2-16. Passed
Check complete. The overall result of this check is: Passed
=======================================================================
Checking recommended glibc version
Expected result: 2.2.4.31.7
Actual Result: 2.3.2.95.3
Check complete. The overall result of this check is: Passed
=======================================================================
Validating ORACLE_BASE location (if set)
Check complete. The overall result of this check is: Passed
=======================================================================
其他的步驟比較清晰,不再贅述.
最后系統會提示你運行root.sh文件.按照提示做即可.
?
FAQ (在Linux平臺安裝Oracle比較常見)
1. 不能啟動安裝界面.運行runInstaller提示信息類似如下:
xlib:connection to "localhost:0.0" refused by server
xlib:client is not authorized to connect to server
Exception in thread "main" java.lang.InternalError:can't connect to x11 window server using "localhost:0.0"
at .......
解決辦法: 設定你的DISPLAY環境參數.# export DISPLAY= your_IPaddress :0.0把your_IPaddress換成你的IP.或者
用root簡單的執行一下# xhost + (要注意這樣會有安全上的隱患)
2.安裝界面顯示很多"口口"樣子的亂碼
解決辦法:查看locale輸出
# locale
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.GB18030
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
執行#export LC_CTYPE=en_US.UTF-8然后重新調用安裝程序.
3. 用IE登錄Linux服務器上的em出現亂碼
在Linux(Unix) 環境下成功安裝了Oracle 10g,從windows下用IE瀏覽器登錄 10g 的em, 按鈕是"口口"這樣的方框.
解決辦法: 參考 http://www.dbanotes.net/Oracle/Oracle-10g-font.properties.htm或者是參考這個 http://www.linuxsir.org/bbs/showthread.php?s=&threadid=98591后者比較徹底,前者比較"Quick & Dirty ".
4.創建數據庫的時候出現ORA-03113的錯誤
解決辦法: 查看核心參數是否調整正確.參考http://www.dbanotes.net/Oracle/ORA-03113.htm
5. RedHat 9 / FC1等系統10g不支持如何安裝?
解決辦法:在10g不支持的Linux發行版上安裝10g的解決方法
1). 運行runInstaller -ignoreSysPrereqs,這樣會跳過檢查
2). 摘自http://www.puschitz.com/修改/etc/redhat-release文件:
#su - root
#cp /etc/redhat-release /etc/redhat-release.backup
#cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
安裝完畢,執行如下操作:
#su - root
#cp /etc/redhat-release.backup /etc/redhat-release
3). http://www.dbanotes.net/Oracle/10G-Beta-Install-Bug.htm
同樣的思路,我們可以修改Oracle 的install/oraparam.ini文件達到目的
6 如何關掉那些 ocssd.bin 進程?
解決辦法:編輯/etc/inittab文件(做好備份)
注釋掉這一行:
h1:3:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null
參考信息
Werner Puschitz 的 10g 安裝指南 http://www.puschitz.com/InstallingOracle10g.shtml
Werner Puschitz 的站點的文章很翔實,如果您遇到了本文沒有說清的問題,可以去看看那里.本文借鑒了該站點不少內容.
ITPUB論壇10g版塊Kamus等的大作http://www.itpub.net/forumdisplay.php?s=&forumid=70
關于核心參數等信息請查找 Googlehttp://www.google.com/
Oracle Database Quick Installation Guide 10 g Release 1 (10.1) for Linux x86
http://download-west.oracle.com/docs/html/B10813_01/toc.htm
Oracle Database Installation Guide 10 g Release 1 (10.1) for UNIX Systems
http://download-west.oracle.com/docs/html/B10811_02/toc.htm
DBAnotes.net 我的站點包括不少和Oracle有關的信息 http://www.dbanotes.net/
啟動
1.使用oracle賬戶登陸
2.lsnrctl start
3.sqlplus /nolog
4.conn / as sysdba
5.startup
排錯(肯定會碰到問題)
1.根據提示 cp? /opt/app/oracle/product/10.1.0/db_1/dbs/init.ora?
??????????????? /opt/app/oracle/product/10.1.0/db_1/dbs/initORCL.ora?
2.清除initORCL.ora里面所有的內容
3.把這句話寫入:SPFILE='/opt/app/oracle/product/10.1.0/db_1/dbs/spfileorcl.ora'
4.再次啟動,如果還是不成功,可能會是這種提示:
ORA-01990: error opening password file '/opt/app/oracle/product/10.1.0/db_1/dbs/orapw'
5.cp? /opt/app/oracle/product/10.1.0/db_1/dbs/orapworcl /opt/app/oracle/product/10.1.0/db_1/dbs/orapw
6.注意可能需要修改權限chown? oracle.oinstall? /opt/app/oracle/product/10.1.0/db_1/dbs/orapw
7.再次啟動,成功!
查看編碼:
SELECT * FROM NLS_DATABASE_PARAMETERS;
修改編碼為AL16UTF16
更改服務器端字符集
1.推薦方法
SQL>conn /as sysdba? ? 另:conn system/manager也可(先確保系統已采取OS認證方式,否則會連接不成功)
SQL>shutdown immediate? ?必須先關閉database,才能執行下面的啟動操作
SQL>conn /as sysdba? ?? ?? ?以超級權限連接(先確保系統已采取OS認證方式,否則會連接不成功)
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter database open;
SQL> alter database character set AL16UTF16;
SQL> alter database national character set utf16;
SQL> shutdown immediate;??更改完關閉數據庫
SQL> startup; 正常啟動使其生效
2.參考方法
update props$ set value$='ZHS16GBK' WHERE NAME='NLS_CHARACTERSET';
update props$ set value$='ZHS16GBK' WHERE NAME='NLS_NCHAR_CHARACTERSET';
commit;
?
?
更改客戶端字符集(linux)
export? NLS_LANG=.AL16UTF16
或export NLS_LANG=.ZHS16GBK
?
更改客戶端字符集為ZHS16GBK(windows下)
SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK(AMERICAN_AMERICA.AL16UTF16)
創建表空間
--drop user先刪掉用戶所有信息
drop user hbdx CASCADE;
drop tablespace hbdx_data including contents and datafiles;
drop tablespace php_data including contents and datafiles;
commit;
1.創建表空間hbdx_data時將數據文件設置為自動增長方式
create tablespace hbdx_data? datafile '/opt/app/oracle/oradata/orcl/hbdx_data.dbf' size 100M? autoextend on? next 100M? maxsize UNLIMITED? extent management local;
(next參數指定每次自動增長的大小,maxsize為數據文件的最大大小)
2.創建表空間php_data時將數據文件設置為自動增長方式
create tablespace php_data? datafile '/opt/app/oracle/oradata/orcl/php_data.dbf' size 100M? autoextend on? next 100M? maxsize UNLIMITED? extent management local;
?
創建用戶
?
-- Create the user
create user hbdx? identified by hbdx? default tablespace hbdx_data? temporary tablespace temp? profile DEFAULT? ACCOUNT UNLOCK;
-- Grant/Revoke role privileges
grant connect to hbdx with admin option;
grant dba to hbdx with admin option;
grant resource to hbdx with admin option;
-- Grant/Revoke system privileges
grant unlimited tablespace to hbdx with admin option;
commit;
?
數據導入
imp hbdx/xxxx@orcl或 imp hbdx/xxx
?
1.Enter insert buffer size (minimum is 8192) 30720> 65536
?
Export file created by EXPORT:V10.02.01 via conventional path
import done in US7ASCII character set and ZHS16GBK NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export client uses ZHS16GBK character set (possible charset conversion)
export server uses AL16UTF16 NCHAR character set (possible ncharset conversion)
List contents of import file only (yes/no): no >
?
1.Export file created by EXPORT:V08.01.06 via conventional path
import done in US7ASCII character set and ZHS16GBK NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export client uses ZHS16CGB231280 character set (possible charset conversion)
export server uses ZHS16CGB231280 NCHAR character set (possible ncharset conversion)
?
如果出現這兩種情況,需要運行 export NLS_LANG=.ZHS16GBK