日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Debian Squeeze AMD64安装Oracle 10g x86_64 10.2.0....

發布時間:2023/12/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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....的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。