ubuntu中安裝oracle 11g

chanjarster發表於2016-08-05

準備工作基本和Ubuntu X86_64安裝oracle 11gR2 XE相同。

首先,將系統更新到最新

sudo apt-get update
sudo apt-get dist-upgrade

安裝依賴包

sudo apt-get install alien binutils build-essential cpp-4.4 debhelper g++-4.4 gawk gcc-4.4 gcc-4.4-base gettext html2text ia32-libs intltool-debian ksh lesstif2 lib32bz2-dev lib32z1-dev libaio-dev libaio1 libbeecrypt7 libc6 libc6-dev libc6-dev-i386 libdb4.8 libelf-dev libelf1 libltdl-dev libltdl7 libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 libqt4-core libqt4-gui libsqlite3-0 libstdc++5 libstdc++6 libstdc++6-4.4-dev lsb lsb-core lsb-cxx lsb-desktop lsb-graphics lsb-qt4 make odbcinst pax po-debconf rpm rpm-common sysstat unixodbc unixodbc-dev unzip

建立使用者

sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
  • 給oracle使用者設定登入密碼

passwd oracle

核心引數

執行:

sudo nano /etc/sysctl.d/60-oracle.conf

把以下內容粘帖進去:

# Oracle 11g XE kernel parameters  
fs.file-max=6815744  
net.ipv4.ip_local_port_range=9000 65000  
kernel.sem=250 32000 100 128
kernel.shmmax=4163487744
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr=1048576

核心引數的配置和這篇文章是一樣的:CentOS 6.4 x86_64安裝oracle 11gR2

載入核心引數:

sudo service procps start

執行以下語句看看核心引數是否修改成功

sudo sysctl -q fs.file-max

如果返回結果是fs.file-max = 6815744就說明修改成功了。

swap空間保證2g

新增對oracle使用者的核心限制

在 /etc/security/limits.conf 檔案中增加以下資料

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    stack   10240

oracle使用者認證引數

檢視/etc/pam.d/login,增加以下行(有了就不用增加了)

session required pam_limits.so

同樣檢查/etc/pam.d/su,沒有以下行就自己加上

session required pam_limits.so

新建安裝目錄

mkdir -p /u01/app/
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/

登入oracle使用者,修改 /home/oracle/.bashrc 檔案新增

export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

欺騙oracle的安裝程式

sudo mkdir /usr/lib64
sudo ln -s /etc /etc/rc.d
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/
sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/bin/rpm /bin/rpm
sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/

echo `Red Hat Linux release 5` > /etc/redhat-release

執行安裝程式

cd /XXX/XXX/XXX
./runInstaller

Troubleshooting

錯誤1

在執行`連結二進位制檔案`時如果遇到錯誤請在不關閉安裝程式的情況下開啟一個新終端,輸入以下命令

sed -i `s/^(s*$(MK_EMAGENT_NMECTL))s*$/1 -lnnz11/g` $ORACLE_HOME/sysman/lib/ins_emagent.mk
sed -i `s/^($LD $LD_RUNTIME) ($LD_OPT)/1 -Wl,--no-as-needed 2/g` $ORACLE_HOME/bin/genorasdksh
sed -i `s/^(s*)($(OCRLIBS_DEFAULT))/1 -Wl,--no-as-needed 2/g` $ORACLE_HOME/srvm/lib/ins_srvm.mk
sed -i `s/^(TNSLSNR_LINKLINE.*$(TNSLSNR_OFILES)) ($(LINKTTLIBS))/1 -Wl,--no-as-needed 2/g` $ORACLE_HOME/network/lib/env_network.mk
sed -i `s/^(ORACLE_LINKLINE.*$(ORACLE_LINKER)) ($(PL_FLAGS))/1 -Wl,--no-as-needed 2/g` $ORACLE_HOME/rdbms/lib/env_rdbms.mk

然後再選擇retry一般就可以過去了。

錯誤2

報錯 : /lib64/libstdc++.so.5: undefined reference to memcpy@GLIBC_2.14

這是因為ubuntu 13.04帶的libstdc++5.0 和oracle所要不相容所致

從這裡 ftp://rpmfind.net/linux/Mandriva/official/2010.0/x86_64/media/contrib/release/libstdc++5-3.3.6-4mdv2009.0.x86_64.rpm 下載,
直接安壓縮包開啟提取,並提取到/usr/lib/x86_64-linux-gnu,然後重試就可以了

參考資料

相關文章