如何在redhat 9,redhat ELAS 3/2.1,redat FC1 上安裝oracle 10g


本文將指導大家安裝以下內容:
- Oracle 10g (10.1.0) on Red Hat Enterprise Linux Advanced Server 3 (RHELAS3)
- Oracle 10g (10.1.0) on Red Hat Enterprise Linux Advanced Server 2.1 (RHELAS2.1)
- Oracle 10g (10.1.0) on Red Hat 9 (RH9)
- Oracle 10g (10.1.0) on Red Hat Fedora Core 1 (FC1)

從OTN上下載Oracle10g for Linux 版
http://otn.oracle.com/software/products/database/oracle10g/index.html

下載的文件ship.db.cpio.gz作如下處理:

如果你是在windows os下載的文件,可以通過linux的samba功能直接拷貝ship.db.cpio.gz至你的linux目錄下.

做一下CRC (cyclic redundancy check)檢查:

$cksum ship.db.cpio.gz

將ship.db.cpio.gz放在/tmp下,解壓ship.db.cpio.gz

$gunzip ship.db.cpio.gz

得到Disk1這樣的目錄,這就是oracle10g For Linux的安裝文件

===========

再做以下檢查:

$grep MemTotal /proc/meminfo

檢查swap空間的大小,

$grep SwapTotal /proc/meminfo

請確保你的swap大小為內存的2倍左右,這樣對於oracle的安裝和使用有好處,否則在建立資料庫時會出問題,我的內存為1.5g , 我的swap設為2.9G

如果你安裝linux時預先沒有設定swap至足夠大請照如下設定執行

$su - root

#dd if=/dev/zero of=tmpswap bs=1k count=900000

#chmod 600 tmpswap

#mkswap tmpswap

#swapon tmpswap

=======

安裝Oracle Universal Installer 需要在/tmp下至少400 MB 的自由空間.
檢查/tmp:

$df /tmp

如果你在/tmp下沒有足夠空間, 你可以在另一個分區中臨時的建立一個tmp目錄請看如下做法:

$su - root

#mkdir /

  1<anotherfilesystem>/tmp   
  2  
  3#chown root.root /<anotherfilesystem>/tmp   
  4  
  5#chmod 1777 /<anotherfilesystem>/tmp   
  6  
  7#export TEMP=/<anotherfilesystem> # 被oracle使用   
  8  
  9#export TMPDIR=/<anotherfilesystem> # 用於linux應用程序   
 10  
 11當你安裝完Oracle10g, 關閉Oracle並移除臨時性的tmp目錄,如下作法:   
 12  
 13$su - root   
 14  
 15#rmdir /<anotherfilesystem>/tmp   
 16  
 17#unset TEMP   
 18  
 19#unset TMPDIR   
 20  
 21=====   
 22檢查linux上的安裝包(RPMS),主要檢查與compat-gcc, compat-libstdc++等等兼容性,因為在X-WINDOWS下安裝ORACLE10g需要用到窗口api函數接口.   
 23  
 24檢查linux核心RPMS   
 25  
 26$uname –a   
 27  
 28結果應該是2.4.9以上的版本才行.   
 29  
 30檢查glibc RPMs   
 31  
 32對於RedHat ELAS 2.1需要如下變更   
 33  
 34$su – root   
 35  
 36#rpm -Uvh glibc-2.2.4-32.11.i686.rpm glibc-common-2.2.4-32.11.i386.rpm   
 37  
 38  
 39  
 40檢查gcc, make, and binutils RPMs   
 41  
 42#rpm -q gcc make binutils   
 43  
 44查出以下RPMs是否被安裝:   
 45\- 對於RHELAS3 和RHELAS2.1: make-3.79 或以上版本   
 46\- 對於RHELAS3 and RHELAS2.1: binutils-2.11.90.0.8-12 或以上版本   
 47\- 對於RHELAS3: gcc-3.2.3-2或以上版本   
 48\- 對於RHELAS2.1: gcc-2.96-108.1或以上版本   
 49  
 50  
 51  
 52RHELAS3 系統中, make和binutils RPMs 已經被安裝.然而, 還有以下一些RPMs 需要安裝,你能在RHELAS3安裝碟中的第3個找到這些RPMs,當然也可以下載新版的來裝.   
 53  
 54$su - root   
 55  
 56#rpm -Uvh gcc-3.2.3-20.i386.rpm \   
 57  
 58glibc-devel-2.3.2-95.3.i386.rpm \   
 59  
 60glibc-headers-2.3.2-95.3.i386.rpm \   
 61  
 62glibc-kernheaders-2.4-8.34.i386.rpm   
 63  
 64RHELAS2.1系統中, 在"RedHat 2.1 Advanced Server"安裝中,如果你沒有选擇"Software Development" ,將不會安裝binutils 和gcc的RPMs,為了滿足oracle安裝對於x-windows的需要相依性,需要執行以下指令   
 65  
 66$su - root   
 67  
 68#rpm -ivh gcc-2.96-108.1.i386.rpm \   
 69  
 70binutils-2.11.90.0.8-12.i386.rpm \   
 71  
 72cpp-2.96-108.1.i386.rpm \   
 73  
 74glibc-devel-2.2.4-32.11.i386.rpm \   
 75  
 76kernel-headers-2.4.9-e.3.i386.rpm   
 77  
 78  
 79  
 80RH9系統中, make RPM 已經被安裝. 還有以下包需要再裝,請注意oracle不支持在RH9上安裝,你應該努力去找到一些合適的RPM , 以下需安裝的包請先在你的RH9的CD中找找,如沒有可以在google.com中搜索到.   
 81  
 82$su - root   
 83  
 84#rpm -Uvh gcc-3.2.2-5.i386.rpm \   
 85  
 86glibc-devel-2.3.2-5.i386.rpm \   
 87  
 88cpp-3.2.2-5.i386.rpm \   
 89  
 90glibc-kernheaders-2.4-8.10.i386.rpm \   
 91  
 92binutils-2.13.90.0.18-9.i386.rpm   
 93  
 94  
 95  
 96  
 97  
 98FC1系統中, make RPM 已經被安裝. 還有以下包需要再裝. 注意FC1的情況與RH9類似都不被ORACLE支持, 你應該努力去找到一些合適的RPM , 以下需安裝的包請先在你的RH9的CD中找找,如沒有可以在google.com中搜索到.   
 99  
100$su - root   
101  
102#rpm -Uvh gcc-3.3.2-1.i386.rpm \   
103  
104glibc-devel-2.3.2-101.i386.rpm \   
105  
106cpp-3.3.2-1.i386.rpm \   
107  
108glibc-headers-2.3.2-101.i386.rpm \   
109  
110glibc-kernheaders-2.4-8.36.i386.rpm \   
111  
112binutils-2.14.90.0.6-3.i386.rpm   
113  
114  
115  
116檢查openmotif RPM   
117  
118$rpm -q openmotif (開放軟體基金會的圖形介面,相關於linux下的Directx)   
119  
120(以下各個文件請在RH的安裝CD中找,或去google.com搜索,我試過基本都能找到)   
121  
122  
123  
124RHELAS3, 如果沒有安裝openmotif ,請執行   
125  
126$su - root   
127  
128#rpm -ivh openmotif-2.2.2-16.i386.rpm (或更新版本)   
129  
130RHELAS2.1, 如果沒有安裝openmotif ,請執行   
131  
132$su - root   
133  
134#rpm -ivh openmotif-2.1.30-11.i386.rpm   
135  
136  
137  
138RH9, 請執行   
139  
140$su - root   
141  
142#rpm -Uvh openmotif-2.2.2-14.i386.rpm   
143  
144  
145  
146FC1, 請執行   
147  
148$su - root   
149  
150#rpm -Uvh openmotif-2.2.2-16.1.i386.rpm   
151  
152  
153  
154檢查setarch RPM   
155  
156RHELAS3, 執行以下指令,查核是否為setarch-1.3-1 RPM 或更新版本:   
157  
158#rpm -q setarch   
159  
160setarch是RHEL3的一個新功能. 用於模拟一个3GB 的虚拟地址空间,以允许如此的应用程式能够正常运作,假如沒有安裝請執行:   
161  
162$su - root   
163  
164#rpm -Uvh setarch-1.3-1.i386.rpm   
165  
166  
167  
168RHELAS2.1 和RH9, 不需要setarch RPM.   
169  
170對於FC1, 雖然用不到它,也請執行:   
171  
172$su - root   
173  
174#rpm -Uvh setarch-1.0-1.i386.rpm   
175  
176  
177檢查redhat-release RPM   
178  
179查出redhat-release RPM 是否被安裝:   
180  
181$rpm -q redhat-release   
182  
183這個RPM對於RHEL系列的LINUX很重要,因為它將用於ORACLE的安裝認證. 沒有這個包, Oracle10g 將會認定該OS不被支持.   
184\- 對RHELAS3, 請執行(在RHELAS3 disk 1中可找到此RPM):   
185  
186$su - root   
187  
188#rpm -ivh redhat-release-3AS-1.i386.rpm   
189  
190\- 對 RHELAS2.1, 請執行(在RHELAS3 disk 1中可找到此RPM):   
191  
192$su - root   
193  
194#rpm -ivh redhat-release-as-2.1AS-4.noarch.rpm   
195  
196  
197但是對於RH9 和FC1 ,你只要編輯一下/etc/redhat-release 這個文件就行了,   
198  
199$su - root   
200  
201#cp /etc/redhat-release /etc/redhat-release.backup   
202  
203#cat &gt; /etc/redhat-release &lt;&lt; EOF   
204  
205#Red Hat Enterprise Linux AS release 3 (Taroon)   
206  
207#EOF   
208  
209記得安裝完Oracle10g要還原該文件內容:   
210  
211$su - root   
212  
213#cp /etc/redhat-release.backup /etc/redhat-release   
214  
215好了,做完以上的準備工作,我們該開始令人激動的Oracel10g安裝! 安裝前我們還需設定一下與Oracle相關的內核參數   
216  
217先看看所有內核參數:   
218  
219$su - root   
220  
221#sysctl -a   
222  
223安裝執行指令在/tmp/Disk1下,我們不建議直接執行   
224runInstaller -ignoreSysPrereqs   
225  
226  
227對於Oracle10g, 需要設定為以下參數值,可以設定更大一點的值:   
228  
229查核結果可執行右邊括號中內容   
230  
231shmmax = 2147483648 (cat /proc/sys/kernel/shmmax)   
232  
233这意味着系统的共享内存达到4G,这是不合适的。一般,SHMMAX的设置可略大于本机内存配置。   
234事实上,缺省安装的RedHat 6.0核心运行Oracle 8.0.5是没有问题的,一般情况下可不对这些参数作出调整。   
235如确需调整,在完成修改后,要按文档要求重生成核心,并用lilo命令指定用新的核心进行引导。   
236  
237shmmni = 4096 (cat /proc/sys/kernel/shmmni)   
238  
239shmall = 2097152 (cat /proc/sys/kernel/shmall)   
240  
241shmmin = 1 (ipcs -lm |grep "min seg size")   
242  
243shmseg = 10 (被硬編碼在kernel中,缺省值更高)   
244  
245semmsl = 250 (cat /proc/sys/kernel/sem | awk '{print $1}')   
246  
247semmns = 32000 (cat /proc/sys/kernel/sem | awk '{print $2}')   
248  
249semopm = 100 (cat /proc/sys/kernel/sem | awk '{print $3}')   
250  
251semmni = 128 (cat /proc/sys/kernel/sem | awk '{print $4}')   
252  
253file-max = 65536 (cat /proc/sys/fs/file-max)   
254  
255ip_local_port_range = 1024 65000   
256  
257(cat /proc/sys/net/ipv4/ip_local_port_range)   
258  
259  
260  
261NOTE: Do not change the value of any kernel parameter on a system where it is already higher than listed as minimum requirement.   
262  
263On RHELAS3, RHELAS2.1, RH9, and on FC1 I had to increase the kernel parameters shmmax, semopm, and filemax to meet the minimum requirement.   
264  
265Oracle also recommends to set the local port range ip_local_port_range for outgoing messages to "1024 65000" which is needed for high-usage systems. This kernel parameter defines the local port range for TCP and UDP traffic to choose from.   
266  
267I added the following lines to the /etc/sysctl.conf file which is used during the boot process:   
268  
269kernel.shmmax=2147483648   
270  
271kernel.sem=250 32000 100 128   
272  
273fs.file-max=65536   
274  
275net.ipv4.ip_local_port_range=1024 65000   
276  
277Adding these lines to the /etc/sysctl.conf file will cause the system to change these kernel parameters after each boot using the /etc/rc.d/rc.sysinit script which is invoked by /etc/inittab. But in order that these new added lines or settings in /etc/sysctl.conf become effective immediately, execute the following command:   
278  
279su - root   
280  
281sysctl -p   
282  
283  
284For more information on shmmax, shmmni, shmmin, shmseg, and shmall, see Setting Shared Memory.   
285For more information on semmsl, semmni, semmns, and semopm, see Setting Semaphores.   
286For more information on filemax, see Setting File Handles.   
287  
288\-------------------   
289  
290&lt;在/oracle/10.1.0/bin/dbshut 加入&gt;   
291  
292  
293  
294##自動關閉Listner   
295  
296if [ -f $ORACLE_HOME/bin/lsnrctl ] ; then   
297  
298$ORACLE_HOME/bin/lsnrctl stop   
299  
300fi   
301  
302##自動關閉Oracle Apache Jserv   
303  
304if [ -f $ORACLE_HOME/Apache/Apache/bin/httpdsctl ] ; then   
305  
306$ORACLE_HOME/Apache/Apache/bin/httpdsctl stop   
307  
308fi   
309  
310  
311  
31236.完成後請測試   
313  
314$/oracle/10.1.0/bin/dbstart   
315  
316$/oracle/10.1.0/bin/dbshut   
317  
31837.開機自動啟動 Oracle   
319  
320請將oracle10g這個script cp至/etc/rc.d/init.d   
321  
322$cp oracle10g /etc/rc.d/init.d   
323  
324再加入開機服務程序中   
325  
326#chkconfig --add oracle10g   
327  
328#linuxconf   
329  
330用linuxconf即可控制啟動的層次.   
331  
332************   
333  
334***oracle10g 執行檔   
335  
336#!/bin/sh   
337  
338#   
339  
340# chkconfig: 345 51 49   
341  
342# description: starts the oracle dabase de   
343  
344#   
345  
346echo "Oracle 10g auto start/stop"   
347  
348  
349  
350ORA_OWNER=oracle   
351  
352ORA_HOME=/oracle/10.1.0/db   
353  
354  
355  
356case "$1" in   
357  
358'start')   
359  
360  
361  
362echo -n "Starting Oracle10g: "   
363  
364su - $ORA_OWNER -c $ORA_HOME/bin/dbstart   
365  
366touch /var/lock/subsys/oracle10g   
367  
368echo   
369  
370;;   
371  
372  
373  
374'stop')   
375  
376echo -n "Shutting Oracle10g: "   
377  
378su - $ORA_OWNER -c $ORA_HOME/bin/dbshut   
379  
380rm -f /var/lock/subsys/oracle10g   
381  
382echo   
383  
384;;   
385  
386  
387  
388  
389  
390'restart')   
391  
392  
393  
394echo -n "Restarting Oracle10g: "   
395  
396$0 stop   
397  
398$0 start   
399  
400echo   
401  
402;;   
403  
404  
405  
406*)   
407  
408echo "Usage: oracle10g {start | stop | restart }"   
409  
410exit 1   
411  
412  
413  
414esac   
415  
416exit 0   
417*********************oracle10g************</anotherfilesystem></anotherfilesystem></anotherfilesystem></anotherfilesystem></anotherfilesystem></anotherfilesystem>
Published At
Categories with 数据库类
Tagged with
comments powered by Disqus