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