目录
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具体过程以及遇到的问题。
[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 //生成缓存
下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
[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
[root@oracledb home]# passwd oracle
//关闭防火墙
[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
[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/
[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
[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 //使参数生效
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上未找到
此问题且先搁置不管,继续下一步。。 。。。。
进入到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/
[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
[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
【问题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即可
【问题6】其实这个不算问题,就是用root用户执行两个脚本
【解决办法】按提示执行两个脚本即可
end.