新到的云主機環境,系統是CentOS 7 x86_64,需要安裝上安裝Oracle11.2g。摸索很長時間,終于折騰搞定了。
下載 Oracle
- 下載地址:Oracle 11.2.0.2 (因為不是已付費用戶,只能下載 11.2.0.2,不能下載最新的11.2.0.4。囧)
下載下來之后是有兩個壓縮包:
- linux.x64_11gR2_database_1of2.zip
- linux.x64_11gR2_database_2of2.zip
- 解壓
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
配置
增加oracle用戶和相關用戶組
-
切換到root用戶
su - root
-
增加用戶組
--required groups
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 503 oper -
增加用戶
/usr/sbin/useradd -u 502 -g oinstall -G dba,oper oracle
-
設置oracle用戶的密碼
passwd oracle
然后輸入想要設置的密碼。
系統配置
-
修改
/etc/sysctl.conf
vim /etc/sysctl.conf
增加以下內容:
kernel.shmmni = 4096 kernel.shmmax = 4398046511104 kernel.shmall = 1073741824 kernel.sem = 250 32000 100 128 fs.aio-max-nr = 1048576 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586
使修改生效:
/sbin/sysctl -p
-
修改
/etc/security/limits.conf
vim /etc/security/limits.conf
增加以下內容
oracle soft nproc 131072 oracle hard nproc 131072 oracle soft nofile 131072 oracle hard nofile 131072 oracle soft core unlimited oracle hard core unlimited oracle soft memlock 50000000 oracle hard memlock 50000000
-
確保
/etc/hosts
中含有服務器機器名稱,像這樣(如果已經含有了,就略過此步):<IP-address> <fully-qualified-machine-name> <machine-name>
比如服務器名稱是centos7-001,曾可以配置成這樣:
127.0.0.1 centos7-001 localhost localhost.localdomain
然后ping一下試試:
ping -c 1 centos7-001
正確的結果:
--- centos7 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms
-
修改
/etc/profile
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
-
修改oracle用戶環境變量
切換到 oracle 用戶
su - oracle
修改
.bash_profile
,添加以下內容:# Oracle Settings export TMP=/tmp umask 022 export ORACLE_BASE=/data2/oracle/app # 安裝路徑根據實際情況修改 export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 # 安裝路徑根據實際情況修改 export ORACLE_HOME PATH=$PATH:$ORACLE_HOME/bin export PATH
使之生效:
source .bash_profile
-
創建安裝路徑并授權給oracle用戶
su - root mkdir -p /data2/oracle/app chown oracle:oinstall /data2/oracle/app chmod 775 /data2/oracle/app mkdir -p /data2/oracle/app/oracle chown oracle:oinstall /data2/oracle/app/oracle chmod 775 /data2/oracle/app/oracle mkdir -p /data2/oracle/app/oracle/product/11.2.0/db_1 chown oracle:oinstall -R /data2/oracle/app/oracle
安裝依賴
> yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp
安裝圖形界面
-
CentOS 7 安裝
GNOME
圖形界面yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
-
安裝Gnome GUI使用時報錯:
Transaction check error: file /usr/lib/systemd/system/blk-availability.service from install of device-mapper-7:1.02.107-5.el7.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64 file /usr/sbin/blkdeactivate from install of device-mapper-7:1.02.107-5.el7.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64 file /usr/share/man/man8/blkdeactivate.8.gz from install of device-mapper-7:1.02.107-5.el7.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64 Error Summary -------------
解決辦法,先升級lvm2:
yum -y install lvm2
安裝Oracle
-
因為使用的是遠程主機,所以要遠程Linux圖形桌面,我這里使用的是VNC
在遠程主機上安裝vnc:
yum -y install vnc-server
設置密碼:
vncpasswd
啟動vncserver:
vncserver
設置DISPLAY:
export DISPLAY=:1
設置圖形桌面訪問權限
xhost +
vncserver默認端口是5900 + 序號,第一個即
5901
。在本地的windows環境下安裝并運行vnc客戶端,下載地址: https://www.realvnc.com/download/vnc/
-
使用vnc連接到遠程主機,在桌面上右鍵打開命令行,進入到oracle所在路徑,然后:
cd database
export DISPLAY=:1
./runInstaller然后就可以啟動oracle圖形界面安裝向導了。
遇到的問題
-
安裝Gnome GUI使用時報錯:
Transaction check error: file /usr/lib/systemd/system/blk-availability.service from install of device-mapper-7:1.02.107-5.el7.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64 file /usr/sbin/blkdeactivate from install of device-mapper-7:1.02.107-5.el7.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64 file /usr/share/man/man8/blkdeactivate.8.gz from install of device-mapper-7:1.02.107-5.el7.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64 Error Summary -------------
解決辦法,先升級lvm2:
yum -y install lvm2
-
安裝oracle時報錯memcpy@GLIBC_2.14未找到:
INFO: /lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14' collect2: error: ld returned 1 exit status INFO: make: *** [ctxhx] Error 1 INFO: End output from spawned process.
解決辦法,先查看 /usr/lib64/libc.a是否存在:
ls /usr/lib64 | grep libc.a
如果查找不到先安裝:glibc-static,如果有則略過此步
yum -y install glibc-static
修改oracle安裝目錄下 $ORACLE_HOME/ctx/lib/ins_ctx.mk
將ctxhx: $(CTXHXOBJ) $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改為:
ctxhx: $(CTXHXOBJ) -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
然后點擊retry通過
-
安裝oracle時報錯Error in invoking target 'agent nmhs':
Error in invoking target 'agent nmhs' of makefile '/data2/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'
解決辦法:修改
$ORACLE_HOME/sysman/lib/ins_emagent.mk
將$(MK_EMAGENT_NMECTL)
修改為
$(MK_EMAGENT_NMECTL) -lnnz11
然后點擊retry通過
至此,就可以使用sqldevelper等客戶端連接oracle了