Oracle 11gR2 Install On Ubuntu 16.04

為了要測試一些功能,加上手邊沒有足夠的 centos、redhat 主機,

只好拿出測試 greenplum 的 ubuntu 主機來用用,

安裝過程實在是有夠 OOXX 的麻煩,

以下就記錄記錄安裝過程,希望別再有第二次…

以下過程使用 root 執行

1. 新增修改 apt-get 來源

vim /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse

deb http://extras.ubuntu.com/ubuntu trusty main
deb-src http://extras.ubuntu.com/ubuntu trusty main
deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverse

#163源:
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
#阿里源:

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty-backports main restricted universe multiverse

2. 更新 library

apt-get update
apt-get upgrade

3. 安裝 Oracle 所需 library (一定要每個都裝到)

apt-get install -y bzip2 elfutils automake autotools-dev binutils expat gawk gcc gcc-multilib g++-multilib  ksh less lesstif2 lesstif2-dev lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 libc6-i386 libelf-dev libltdl-dev libmotif4 libodbcinstq4-1 libpth-dev libpthread-stubs0 libpthread-stubs0-dev libstdc++5 lsb-cxx make openssh-server pdksh rlwrap rpm sysstat unixodbc unixodbc-dev unzip x11-utils zlibc

4. 找出系統參數設定值

/sbin/sysctl -a | grep sem 
/sbin/sysctl -a | grep shm 
/sbin/sysctl -a | grep file-max 
/sbin/sysctl -a | grep aio-max 
/sbin/sysctl -a | grep ip_local_port_range 
/sbin/sysctl -a | grep rmem_ 
/sbin/sysctl -a | grep wmem_ 

將找出來的參數值,寫入到 sysctl.conf 中

vim /etc/sysctl.conf
fs.aio-max-nr = ? 
fs.file-max = ? 
kernel.shmall = ? 
kernel.shmmax = ? 
kernel.shmmni = ? 
kernel.sem = ? 
net.ipv4.ip_local_port_range = ? 
net.core.rmem_default = ? 
net.core.rmem_max = ? 
net.core.wmem_default = ? 
net.core.wmem_max = ?

修改完後,讓系統參數生效

sysctl -p

5. 加入使用者內核限制

vim /etc/security/limits.conf
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768

6. 加入環境library路徑

因為 Oracle 原生不支援 Ubuntu,所以修改環境路徑,讓它能吃到 lib

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

7. 安裝遠端桌面軟體

Oracle 軟體安裝有提供介面安裝,Ubuntu需要安裝桌面套件,才可以遠端安裝,因此從網路上搜尋了一下,最快速的就是使用 xrdp、vnc、xubuntu-desktop 套件

apt-get install xrdp vnc4server tightvncserver xubuntu-desktop 

重啟服務

service xrdp restart

8. 建立 Oracle 服務帳號與群組,並修改 Oracle 密碼

mkdir -p /home/oracle
groupadd -g 10000 oinstall
groupadd -g 10001 dba
groupadd -g 10002 oper
useradd -g oinstall -G dba,oper oracle
passwd oracle
cp ~/.profile /home/oracle
cp ~/.bashrc /home/oracle
chown -R oracle.oinstall /home/oracle

9. 建立 Oracle 資料庫安裝目錄

mkdir -p /oracle/product/11.2.0/db_1
chown -R oracle.oinstall /oracle

 

以下換成 oracle 帳號來執行

10. 把 xfce4-session 值寫入到 Linux 帳號 home 底下

echo "xfce4-session" > ~/.xsession

11. 解壓縮下載出來的安裝資料庫檔案

unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip

12. 修改 Oracle 帳號環境變數

vim ~/.profile
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl

export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PAT

13. 用 Windows 的遠端連線軟體,連到 Ubuntu 上

14. 進入桌面後,不會自動讀 .profile 檔,開啟 terminal 手動讀環境變數後,執行 Oracle 安裝檔 ./runInstaller 

source ~/.profile
cd database
./runInstaller

15. 在確認環境 package 時,會出現很多沒裝的 lib,這裡選擇全部略過

16. 安裝過程中的錯誤與修正的地方

vim $ORACLE_HOME/sysman/lib/ins_emagent.mk

#===========================
# emdctl
#===========================

$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11
vim $ORACLE_HOME/rdbms/lib/env_rdbms.mk

KFOD_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFODED) $(SKFODPT) $(KFODOBJ) \
KFNDG_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFNDGED) $(SKFNDGPT) $(KFNDGOBJ) \
AMDU_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFMUED) $(SKFMUPT) \
ORACLE_LINKLINE=$(ORACLE_LINKER) $(PL_FLAGS) -Wl,--no-as-needed  $(ORAMAI) $(SSORED) $(TTCSOI) \
vim $ORACLE_HOME/srvm/lib/env_srvm.mk

GETCRSHOME_LINKLINE=$(LINK) -Wl,--no-as-needed $(LDPATHFLAG)$(RDBMSLIB) $(CDEBUG) $(OPT) \
vim $ORACLE_HOME/network/lib/env_network.mk

TNSLSNR_LINKLINE=$(LINK) -Wl,--no-as-needed $(TNSLSNR_OFILES) $(LINKTTLIBS) $(LLIBONS) \
vim $ORACLE_HOME/bin/genorasdksh

$LD $LD_RUNTIME $LD_OPT -Wl,--no-as-needed $LD_OUT $LD_SELF_CONTAINED $BASE_LIB \

17. 安裝完畢後,會需要用 root 帳號執行 orainstRoot.sh & root.sh,執行完後就結束囉~

sh $ORACLE_BASE/oraInventory/orainstRoot.sh
sh $ORACLE_HOME/root.sh

 

參考資料:

xrdp完美实现Windows远程访问Ubuntu 16.04

oracle:ubuntu 下安装 oracle 11的详细过程

Ubuntu 16.04.2 LTS安装Oracle11G R2

已轉向 blogger 記錄

https://slowlife-notes.blogspot.com