Debian Squeeze AMD64安装Oracle 10g x86_64 10.2.0....
2019獨角獸企業重金招聘Python工程師標準>>>
服務器操作系統為Debian Squeeze AMD64,沒有安裝X,通過ssh遠程訪問。客戶端為debian testing,安裝有gnome桌面環境。
先安裝10.2.0.1,然后安裝升級包10.2.0.4,比安裝10g r2客戶端多了一些操作,具體安裝過程如下:
一、安裝10.2.0.1
1、下載oracle 10g r2
下載回來的文件為10201_database_linux_x86_64.cpio.gz
$gunzip 10201_database_linux_x86_64.cpio.gz
$cpio -idmv < 10201_database_linux_x86_64.cpio
解壓縮后所有的安裝文件位于database目錄下。
2、檢查硬件是否達到要求
物理RAM必須大于512M,現在的機器內存都沒問題。超過8GB RAM時,swap應該在物理RAM的0.75倍以上。Enterprise Edition安裝類型大約使用2G硬盤空間。
通過以下命令檢查,如果不滿足需要做相應的調整
$grep MemTotal /proc/meminfo //檢查物理內存大小
$grep SwapTotal /proc/meminfo //檢查swap大小
$df -h //檢查可用硬件空間大小
3、安裝需要的軟件包,創建需要的符號鏈接
安裝依賴包
$sudo apt-get install build-essential ia32-libs ia32-libs-dev libc6 libc6-i386 libc6-dev libc6-dev-i386 rpm libstdc++5
如果不安裝ia32-libs,安裝時會提示
/…/client/runInstaller: 63: /…/client/install/.oui: not found
創建符號鏈接
#ln -sf /usr/bin/awk /bin/awk
#ln -sf /usr/bin/rpm /bin/rpm
#ln -sf /usr/bin/basename /bin/basename
4、創建oracle需要的組和用戶
oracle安裝使用的組
#groupadd oinstall
系統管理使用的組
#groupadd dba
創建用戶oracle
#useradd -g oinstall -G dba oracle
為用戶oracle設置密碼
#passwd oracle
創建nobody用戶和nobody組
#groupadd nobody
debian默認已經創建了nobody用戶,其屬于nogroup組,但$ORACLE_HOME/root.sh為$ORACLE_HOME/bin/extjob設置的組為nobody,所以這里也要創建nobody組,否則root.sh會抱怨
/bin/chgrp: invalid group: `nobody’
5、配置內核參數和oracle用戶資源限制值
內核參數
oracle 10g要求的內核參數值如下
semmsl 250
semmns 32000
semopm 100
semmni 128
shmall 2097152
shmmax 物理內存的一半,以字節為單位
shmmni 4096
file-max 65536
ip_local_port_range 最小:1024 最大:65000
rmem_default 262144
rmem_max 262144
wmem_default 262144
wmem_max 262144
如果系統默認的內核參數值高于oracle 10g需要的值,則保持默認參數不變,否則用oracle 10g要求的值來修改內核參數。修改參數時在/etc/sysctl.d目錄下新建oracle.conf,將新的參數值寫入此文件
kernel.sem = 250 32000 100 128
kernel.shmmax = 8589934592
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
kernel.sem參數值按semmsl semmns semopm semmni這個順序指定,中間以空格隔開
為oracle用戶所在組賦予分配大內存頁的權限
#id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
#echo “1002″ >/proc/sys/vm/hugetlb_shm_group
這樣oracle才有權限分配大內存頁,否則建庫時會有錯誤提示:
ORA-27125:unable to create shared memory segment
不過這樣設置重啟后參數就丟失了,可以在/etc/sysctl.conf或/etc/sysctl.d/oracle.conf文件里面添加該參數
vm.hugetlb_shm_group=1002
之后運行命令
#sysctl -p
或
#sysctl -p /etc/sysctl.d/oracle.conf
可使該參數在內核內存中立即生效
如果oracle出現以下錯誤提示
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
則需要適當增加內核參數shmall的值
shmall是按頁計數的所有共享內存的數量,可以設置shmall為SGA總量除以頁面大小來解決這個錯誤
獲取頁面大小
$getconf PAGE_SIZE
4096
也就是說頁面大小為4K,如果SGA總數為16G,則shmall的值為16*1024*1024/4=4194304
oracle用戶資源限制值
在/etc/security/limits.d目錄下新建文件oracle.conf,文件名隨意,但擴展名一定要是conf,輸入一下內容
#?
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
在/etc/profile.d目錄下新建文件oracle.sh,文件名隨意,但擴展名一定要是sh,輸入以下內容
#for oracle 10g r2
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
6、創建oracle基準目錄
oracle安裝目錄的設置最好遵循oracle?OFA(Optimal Flexible Architecture)規范的建議。
用以下命令來設置ORACLE BASE目錄/var/oracle
#mkdir -p /var/oracle
#chown -R oracle:oinstall /var/oracle
#chmod -R 775 /var/oracle
7、設置oracle用戶的環境
設置oracle的用戶的主目錄home為/var/oracle
#usermod -d /var/oracle oracle
修改oracle用戶的shell為/bin/bash
#usermod -s /bin/bash oracle
從其他用戶主目錄下拷貝.profile,.bashrc,.bash_logout文件到oracle用戶的主目錄,在.bashrc文件增加下面的行
umask 022
然后
$source .bashrc
最后設置oracle用戶遠程ssh登錄時啟用X11 Forward
也可以不使用X遠程靜默安裝oracle
8、安裝oracle 10g x86_64數據庫
登錄到遠程系統
$ssh -XY oracle@remotehost
執行oracle安裝程序
$/path/to/client/runInstaller -ignoreSysPrereqs
因為oracle 10g認證的linux系統只有redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 和 asianux-2這幾個,所以在其他linux發行版上安裝時需要指定命令行參數-ignoreSysPrereqs,否則會提示:
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<
然后退出安裝
之后在本地機器可以看到OUI(Oracle Universal Installer)界面,后面的安裝根據提示來就可以了。安裝目錄修改為/var/oracle/product/10.2.0/db_1
安裝進度大約到65%時會有錯誤提示:
Error in invoking target 'collector' of makefile '/var/oracle/product/10.2.0/db_1/sysman/lib/ins_emdb.mk'.
這是oracle安裝程序的一個bug,可以忽略此錯誤繼續安裝,對系統沒什么影響。同時oraInventory/logs/目錄下的安裝日志文件里面會有如下類似錯誤提示:
INFO: /usr/bin/ld: i386 architecture of input file `/var/oracle/product/10.2.0/db_1/sysman/lib/snmccolm.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/var/oracle/product/10.2.0/db_1/sysman/lib/libnmccol.a(nmccole.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/var/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(nmcbuft.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/ap
INFO: p/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(nmcbufw.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/var/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(nmcbufu.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/var/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(snmcbufm.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/var/oracle/product/10.2.0/db_1/sysman/lib/
INFO: libnmcbuf.a(nmcbuff.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/var/oracle/product/10.2.0/db_1/sysman/lib//libnmadbg.a(nmadbg.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/var/oracle/product/10.2.0/db_1/sysman/lib//libnmadbg.a(snmadbg.o)' is incompatible with i386:x86-64 output
collect2: ld returned 1 exit status
INFO: make[1]: Leaving directory `/var/oracle/product/10.2.0/db_1/sysman/lib'
INFO: make[1]: *** [/var/oracle/product/10.2.0/db_1/sysman/lib/nmccollector] Error 1
make: *** [nmccollector] Error 2
這是因為oracle 10.2.0.1安裝包為這幾個i386目標文件提供了錯誤版本的x86_64鏈接庫,之后安裝patchser 10.2.0.4時relink nmccollector會成功。
關于此錯誤更詳細的信息請參考Metalink NOTE 957982.1和Bug 8993720。
9、安裝后配置
安裝完成后,在oracle用戶的.bashrc文件中添加以下ORACLE環境變量
export ORACLE_BASE=/var/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/client_1
export PATH=$ORACLE_HOME/bin:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
#export SQLPATH=$ORACLE_HOME/scripts
二、升級到patchset 10.2.0.4
1、升級軟件
首先停止所有oracle服務,實際上如果安裝完成10.2.0.1后立即進行升級的話,oracle的所有服務并沒有運行,也就不必去停止它們
#/etc/init.d/oracle stop
oracle數據庫的啟動和關閉控制見Debian配置Oracle 10g自啟動
然后運行升級包升級軟件
$/path/to/patchset_directory/Disk1/runInstaller -ignoreSysPrereqs
按提示升級即可
2、升級數據庫
如果此前并沒有創建數據庫,那么升級到10.2.0.4到此就結束了,然后可以去創建新的數據庫。
如果此前已經創建了數據庫,那么按以下步驟升級數據庫到10.2.0.4版本
啟動監聽器
$lsnrctl start
以sysdba身份登陸數據庫并運行升級腳本
$sqlplus / as sysdba;
SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
關閉并重啟數據庫
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
編譯無效PL/SQL包
SQL> @?/rdbms/admin/utlrp.sql
檢查升級是否成功
SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
如果所有組件的status都是valid表示升級成功
檢查是否有升級錯誤
SQL>select * from utl_recomp_errors;
如果使用Oracle Recovery Manager catalog, 需要對catalog進行升級,如下:
$rman catalog username/password@alias
RMAN> UPGRADE CATALOG;
修改系統兼容性參數
SQL> alter system set compatible='10.2.0.4.0' scope=spfile;
SQL> SHUTDOWN
SQL> STARTUP
安裝完成
UPDATE:
在Debian 當前的tesing分支Wheezy上安裝oracle 10g時,需要增加以下兩個符號鏈接:
#ln -sf /usr/lib/x86_64-linux-gnu/ /usr/lib64
#ln -sf /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/libgcc_s.so.1
這是因為Wheezy開始支持multiarch,庫路徑做了比較大的調整。
轉載于:https://my.oschina.net/shootercn/blog/57797
總結
以上是生活随笔為你收集整理的Debian Squeeze AMD64安装Oracle 10g x86_64 10.2.0....的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ifox文件怎么打开
- 下一篇: 2012.5.20