【最新】在Centos8上安裝Oracle 19c過程

目錄

1.配置centos8的yum源

2.下載安裝包 LINUX.X64_193000_db_home.zip

3.安裝前準備工作

3.1創建組和用戶

3.2修改用戶密碼

3.3關閉防火牆、selinux

3.4創建工作的目錄,並賦予相應的權限

3.5配置Oracle的環境變量

3.6修改內核參數

3.7下面開始安裝oracle依賴包

4.解壓下載的安裝包

5.安裝Oracle 19c

6.切換到安裝目錄,執行安裝

7.圖形界面安裝

8.繼續安裝

9.提示安裝成功


 

        最近一個自有項目同時用到oracle和mysql(後續會去IOE),搭建演示環境操作系統選擇了當下較新版本的OS和DB。下面爲大家描述在Centos8上安裝Oracle 19c具體過程以及遇到的問題。

 

1.配置centos8的yum源

[root@oracledb home]# cat /etc/redhat-release  //查看當前源
[root@oracledb home]# cd /etc/yum.repos.d //查看配置文件
[root@oracledb home]# CentOS-Base.repo //這是系統自帶的yum源
[root@oracledb home]# mkdir bak
[root@oracledb home]# mv *.repo bak/
[root@oracledb home]# wget http://mirrors.aliyun.com/repo/Centos-8.repo //下載匹配的源配置文件
[root@oracledb home]# yum clean all
[root@oracledb home]# yum makecache //生成緩存

2.下載安裝包 LINUX.X64_193000_db_home.zip

下載地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 

3.安裝前準備工作

3.1創建組和用戶

[root@oracledb home]# /usr/sbin/groupadd -g 54321 oinstall
[root@oracledb home]# /usr/sbin/groupadd -g 54322 dba
[root@oracledb home]# /usr/sbin/groupadd -g 54323 oper
[root@oracledb home]# /usr/sbin/useradd -u 54321 -g oinstall -G dba,oper oracle

3.2修改用戶密碼

[root@oracledb home]# passwd oracle

3.3關閉防火牆、selinux

//關閉防火牆
[root@oracledb home]# /bin/systemctl stop firewalld.service
[root@oracledb home]# /bin/systemctl disable firewalld.service

//關閉:將SELINUX設置爲disabled
[root@oracledb home]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

3.4創建工作的目錄,並賦予相應的權限

[root@oracledb home]# mkdir -p /u01/app/oracle/product/19.2.0/db_1
[root@oracledb home]# chown -R oracle:oinstall /u01/
[root@oracledb home]# chmod -R 775 /u01/

3.5配置Oracle的環境變量

[root@oracledb home]# su oracle
[oracle@oracledb home]$ vim .bash_profile
[oracle@oracledb home]$ cd ~
[oracle@oracledb ~]$ vim .bash_profile 

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
ORACLE_SID=sanshi;export ORACLE_SID
ORACLE_UNQNAME=sanshi;export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.2.0/db_1; export ORACLE_HOME
NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022

3.6修改內核參數

[oracle@oracledb ~]$ exit  //切換到root用戶
exit
[root@oracledb home]# vim /etc/sysctl.conf

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
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
net.ipv4.ip_local_port_range = 9000 65500   

[root@oracledb home]# sysctl --system //使參數生效                                

3.7下面開始安裝oracle依賴包

yum install bc gcc gcc-c++ binutils compat-libcap1 compat-libstdc++ dtrace-modules dtrace-modules-headers dtrace-modules-provider-headers dtrace-utils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libdtrace-ctf-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb make smartmontools sysstat

安裝過程提示如下包在yum源上不存在:

[root@oracledb home]# yum install bc gcc gcc-c++ binutils compat-libcap1 compat-libstdc++ dtrace-modules dtrace-modules-headers dtrace-modules-provider-headers dtrace-utils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libdtrace-ctf-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb make smartmontools sysstat
上次元數據過期檢查:0:00:07 前,執行於 2020年06月09日 星期二 17時10分12秒。
軟件包 bc-1.07.1-5.el8.x86_64 已安裝。
軟件包 gcc-8.3.1-4.5.el8.x86_64 已安裝。
軟件包 binutils-2.30-58.el8_1.2.x86_64 已安裝。
軟件包 compat-libcap1-1.10-7.el7.x86_64 已安裝。
未找到匹配的參數: compat-libstdc++
未找到匹配的參數: dtrace-modules
未找到匹配的參數: dtrace-modules-headers
未找到匹配的參數: dtrace-modules-provider-headers
未找到匹配的參數: dtrace-utils
軟件包 elfutils-libelf-0.176-5.el8.x86_64 已安裝。
軟件包 glibc-2.28-72.el8_1.1.x86_64 已安裝。
軟件包 glibc-devel-2.28-72.el8_1.1.x86_64 已安裝。
軟件包 libaio-0.3.112-1.el8.x86_64 已安裝。
未找到匹配的參數: libdtrace-ctf-devel
軟件包 libX11-1.6.7-1.el8.x86_64 已安裝。
軟件包 libXau-1.0.8-13.el8.x86_64 已安裝。
軟件包 libXi-1.7.9-7.el8.x86_64 已安裝。
軟件包 libXtst-1.2.3-7.el8.x86_64 已安裝。
軟件包 libXrender-0.9.10-7.el8.x86_64 已安裝。
軟件包 libgcc-8.3.1-4.5.el8.x86_64 已安裝。
軟件包 libstdc++-8.3.1-4.5.el8.x86_64 已安裝。
軟件包 libxcb-1.13-5.el8.x86_64 已安裝。
軟件包 smartmontools-1:6.6-3.el8.x86_64 已安裝。
錯誤:沒有任何匹配: compat-libstdc++ dtrace-modules dtrace-modules-headers dtrace-modules-provider-headers dtrace-utils libdtrace-ctf-devel
[root@oracledb home]# 

【問題1】

compat-libcap1
compat-libstdc++
dtrace-modules
dtrace-modules-headers
dtrace-modules-provider-headers
dtrace-utils
libdtrace-ctf-devel

這7個包在yum上未找到

此問題且先擱置不管,繼續下一步。。 。。。。

4.解壓下載的安裝包

進入到Oracle用戶下解壓 步驟2中下載的安裝包 LINUX.X64_193000_db_home.zip

[root@oracledb home]# cd /home/milk/software
[root@oracledb software]# su oracle
[oracle@oracledb software]$ unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.2.0/db_1/

5.安裝Oracle 19c

[oracle@oracledb db_1]$ ./runInstaller 
ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable.
/u01/app/oracle/product/19.2.0/db_1/perl/bin/perl: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
[oracle@oracledb db_1]$ 
[oracle@oracledb db_1]$ 
[oracle@oracledb db_1]$ 
[oracle@oracledb db_1]$ 
[oracle@oracledb db_1]$ 
[oracle@oracledb db_1]$ xdpyinfo
No protocol specified
xdpyinfo:  unable to open display ":10.0".

【遠程連接-問題2】

安裝時提示“ERROR: Unable to verify the graphical display setup.”

【解決辦法】

切換root賬號,執行命令xhost +,如下:

[oracle@oracledb db_1]$ su root
密碼:
[root@oracledb db_1]# xhost +
access control disabled, clients can connect from any host
[root@oracledb db_1]# su oracle
[oracle@oracledb db_1]$ 
[oracle@oracledb db_1]$ 
[oracle@oracledb db_1]$ 
[oracle@oracledb db_1]$ xdpyinfo
name of display:    :10.0
version number:    11.0
vendor string:    The X.Org Foundation
vendor release number:    12003000
X.Org version: 1.20.3
maximum request size:  16777212 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    6
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
... ...

【本地連接-問題2】

ctrl + alt + F1 回到centos8系統登錄頁,使用root用戶登錄

執行命令xhost +

[root@oracledb ~]# xhost + 

然後切換到oracle用戶即可:

[root@oracledb ~]# su oracle

【問題3】安裝時提示“error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory”

查看libnsl.so.1依賴的so文件:

[oracle@oracledb db_1]$ ldd /u01/app/oracle/product/19.2.0/db_1/perl/bin/perl
	linux-vdso.so.1 (0x00007ffcb3980000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcf66b2b000)
	libnsl.so.1 => not found
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fcf66927000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fcf665a5000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fcf6637c000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00007fcf66178000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fcf65db5000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fcf65b9d000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fcf66d4b000)

發現:libnsl.so.1 => not found

[解決辦法]

[oracle@oracledb db_1]$ su
密碼:
[root@oracledb db_1]# 
[root@oracledb db_1]# 
[root@oracledb db_1]# dnf install libnsl

6.切換到安裝目錄,執行安裝

[oracle@oracledb root]$ cd /u01/app/oracle/product/19.2.0/db_1/
[oracle@oracledb db_1]$  LANG=en_US ./runInstaller

【問題4】

[解決辦法]

執行./runInstaller前,先執行(因OS版本不兼容導致):

[oracle@oracledb db_1]$ export CV_ASSUME_DISTID=RHEL7.6

7.圖形界面安裝

【問題5】交換空間不足

【解決】:

1)使用dd命令創建一個swap分區

[root@oracledb ~]# dd if=/dev/zero of=/home/swap bs=1024 count=16400000

2)格式化剛纔創建的分區

[root@oracledb ~]# mkswap /home/swap

3)再使用swapon命令把這個文件分區變成swap分區

[root@oracledb ~]# swapon /home/swap

4)free -m 查看已經擴容的了swap分區

[root@oracledb ~]# free -m

 5)爲了能夠讓swap自動掛載,需要修改etc/fstab文件,用vi /etc/fstab

[root@oracledb ~]# vi /etc/fstab

在文件末尾加上 /home/swap swap swap default 0 0

 6)執行下面一段命令  #echo   "swapon  /home/swap" >> /etc/inittab ,爲防止重啓系統失效[root@oracledb ~]#

[root@oracledb ~]# echo   "swapon  /home/swap" >> /etc/inittab

7)然後在看 vi 看下 /etc/inittab,最後一行是swapon  /home/swap即可

8.繼續安裝

【問題6】其實這個不算問題,就是用root用戶執行兩個腳本

【解決辦法】按提示執行兩個腳本即可

9.提示安裝成功

end.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章