一、下载Oracle VM VirtualBox,完成软件安装
到Oracle官网下载所需平台的最新版VirtualBox软件:https://www.oracle.com/cn/virtualization/technologies/vm/downloads/virtualbox-downloads.html
完成VirtualBox的安装后,强烈建议利用软件的【帮助】--【关于VirtualBox】来进行软件升级到真正的最新版。
关于虚拟机软件,一定要相信一个真理,最新版的一定比老版本的更容易配置和使用。
新建的虚拟机:
系统--内存大小,最好配置3G及以上,因为要安装Oracle19c,所以低于3G真的不好用。
显示--建议启用3D加速
存储--控制器:IDE--直接把rhel-8.1-x86_64-dvd.iso进行分配
网络--网卡1--连接方式--桥接网卡--启用网络连接
共享文件夹--设置一个路径用于自动挂载到虚拟机的某个目录。这个功能需要等到虚拟机系统完成安装,并且虚拟机设备安装增强功能之后,才能被正常使用。
二、下载RHEL8.1,在虚拟机中完成操作系统安装
我是从这位博主的文章中找到的可用下载源,感恩博主的分享:https://blog.csdn.net/qq_43570369/article/details/89944964
此处,用ISO引导,安装RHEL8.1的过程就不过多赘述了,如果需要的话,可以到网上baidu一下,很多资料可供参考。
完成操作系统安装后,确保能够利用root登录系统后,给虚拟机创建一个快照,给自己后面的操作上个保险。
root用户重新登录操作系统,打开网络--设置静态IP:
设置终端显示为1024*768:安装Oracle19c的时候,图形界面化操作,需要能够看到install按钮的边缘,才可以顺利点击。
配置sub-scription-manager为0:通过修改vi /etc/yum/pluginconf.d/subscription-manager.conf 中的参数为0去disable订阅提醒。(这里注意:千万不要卸载订阅模块儿,否则后续yum就该不能继续使用了,后面我们还需要搭建自己的本地yum源呢。)
配置chronyd服务,矫正操作系统时间:
yum -y install chrony
vi /etc/chrony.conf
添加阿里云的ntp1服务器作为同步源,将自带的rhel源删掉
#pool 2.rhel.pool.ntp.org iburst
pool ntp1.aliyun.com iburst
完成时间同步配置
systemctl restart chronyd
systemctl enable chronyd
将操作系统时间写入硬件时间
hwclock --systohc
利用date和timedatectl status来校验一下
利用rhel-8.1-x86_64-dvd.iso搭建本地yum源,配置自动挂载
vi /etc/fstab
/dev/sr0 /media/cdrom iso9660 defaults 0 0
安装VBox增强功能,便于操作
设备--分配光驱--选择VBoxGuestAdditions.iso,看看截图中鼠标旁边的提示,这个ISO就在提示的目录中,用这个ISO才能为这个虚拟机设备安装增强功能。
在虚拟机操作系统中,在ISO所处目录,执行./VBoxLinuxAdditions.run
在虚拟机设备安装增强功能过程中,如果有报错,就根据报错中的提示,把需要的包利用yum -y install完成安装,而后再安装增强功能。但这需要切换ISO,也需要重新umount和mount具体的/dev/sr0设备到你选择的目录。umount和mount这部分的细节确认,需要你亲自体会。
完成了安装增强功能,鼠标也可以顺畅的穿梭在虚拟机和本地主机之间,甚至剪贴板也可以双向共享,共享文件夹也可以根据你的配置起到向虚拟机传递文件的作用,非常方便,世界都被打开了。
安装最新的Java
到Oracle官网下载所需平台最新版的java安装包:https://www.oracle.com/cn/java/technologies/javase-downloads.html
利用which和ls -l 来逐步查看java的安装目录
将最新版的java安装包解压缩到指定目录
tar -xvf 压缩文件 -C /指定目录
查看所用shell的种类,在家目录相应的shell文件中,配置JAVA_HOME等变量:
echo $SHELL
vi ~/.bash_profile
export JAVA_HOME=/usr/lib/jvm/jdk-15.0.1
export PATH=$PATH:$JAVA_HOME/bin
保存后,source ~/.bash_profile 生效。
完成以上配置后,重启一下系统,root正常登陆后,给虚拟机做个快照,给自己做个保险。
三、下载Oracle19c,在虚拟机RHEL8.1中完成软件安装
在Oracle官网,下载所需平台的Oracle数据库软件:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
参照官网Oracle19c的安装手册:https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/index.html 逐一进行安装前的配置。
Database Installation Guide for Linux:
Server Hardware Checklist for Oracle Database Installation:
建议给虚拟机最少配置3G内存,这样Oracle19c才能基本满足最低1G的RAM分配使用。
在执行安装Oracle19c之前,确保显示被设置成至少1024*768,这样才能确保看到安装界面的install按钮的边缘,以便点击。
Operating System Checklist for Oracle Database Installation on Linux:
yum -y install openssh
rhel8.1符合Red Hat Enterprise Linux 8: 4.18.0-80.el8.x86_64 or later的操作系统需求
Server Configuration Checklist for Oracle Database Installation:
Swap space allocation relative to RAM (Oracle Database):
Between 1 GB and 2 GB: 1.5 times the size of the RAM
Between 2 GB and 16 GB: Equal to the size of the RAM
More than 16 GB: 16 GB
Note:If you enable HugePages for your Linux servers, then you should deduct the memory allocated to HugePages from the available RAM before calculating swap space.
后续在配置过程中,hugepages会被关闭
根据文档中的提示,由于我的虚拟机内存设置3G,那么swap space也需要是3G。
为此,我需要调整虚拟机操作系统的swap 大小。
free -m
根据查看到的现有swap大小,我需要增加1G的swap空间:
dd if=/dev/zero of=/var/rhel-swap-2 bs=1024 count=1024000
mkswap /var/rhel-swap-2
根据提示chmod 600 /var/rhel-swap-2
swapon /var/rhel-swap-2
vi /etc/fstab
/var/rhel-swap-2 swap swap defaults 0 0
修改其间,用空格与文件内已有的记录条目对齐即可。
完成配置后,建议重启一下系统,如果可以利用root登录成功,再给虚拟机设备做个快照,给自己上个保险。
如果不能正常登陆,说明写配置文件时有写错的情况,需要重启系统进入命令行模式或者拯救模式,利用root用户逐步找到问题,解决问题,而后尝试重启,直到root用户可以正常登陆为止。
实在解决不了问题,就只能利用虚拟机之前做的快照恢复到最近一次系统正常时的配置进而启动了。
命令行模式的进入方法如下截图:
在第一条光标处,根据提示,按e。而后进入条目进行修改,在quiet的后面,写3,根据提示Ctrl +x,即可进入命令行模式启动
拯救模式的进入方法如下:
设备--分配光驱--选择rhel-8.1-x86_64-dvd.iso
控制--重启--根据提示按F12,选择CD-ROM--Troubleshooting--Rescue a Red Hat Enterprise Linux system--1--chroot /mnt/sysimage
退出时则用exit即可重启系统。
Oracle User Environment Configuration Checklist for Oracle Database Installation:
create the Oracle Inventory group:
groupadd oinstall
groupadd dba
groupadd backupdba
groupadd kmdba
Creating Operating System Oracle Installation User Accounts:
useradd -g oinstall -G dba,backupdba,kmdba oracle
Procedure for Configuring Oracle Software Owner Environments:
su - oracle
echo $SHELL
vi .bash_profile
如下:
export JAVA_HOME=/usr/lib/jvm/jdk-15.0.1
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_BASE=/u01/oradata
export LANG=en_US.UTF-8 #确保安装过程不出现乱码显示
export PATH=$PATH:$JAVA_HOME/bin:$ORACLE_HOME/bin
umask 022
保存,source生效
利用root用户创建所需目录,并更改权限
[root@localhost /]# mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
[root@localhost /]# mkdir /u01/oradata
[root@localhost /]# chown oracle:oinstall /u01/app/oracle/product/19.0.0/dbhome_1
[root@localhost /]# chown oracle:oinstall /u01/oradata/
[root@localhost /]# chown -R oracle:oinstall /u01
[root@localhost /]# chmod -R 775 /u01
解压缩Oracle19c安装软件包到指定的目录
[root@localhost share]# unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1/
Checking and Configuring Server Hardware for Oracle Database:
有两种方案可以让oracle用户可以运行图形界面化的安装:
1、password oracle,给oracle用户添加一个密码,通过oracle用户直接登录虚拟机操作系统,而后在terminal中直接运行xhost + 即可顺利调用图形界面化功能
你可以在terminal中用gedit试一下,如果成功看到图形界面化打开,那便是xhost + 成功了。
建议使用oracle用户直接登录操作系统的方式进行Oracle数据库软件安装。
2、在root登录状态下,打开terminal终端,执行xhost + ,而后su oracle,再执行xhost + ,这样oracle可以调用图形界面化功能,同时也会出现一些权限的报错。千万看清楚这里是su oracle哦,没有 - 减号。
Setting Remote Display and X11 Forwarding Configuration:
[root@localhost ~]# xhost +
access control disabled, clients can connect from any host
[root@localhost ~]# su oracle
[oracle@localhost root]$ xhost +
access control disabled, clients can connect from any host
注意这里我们特意用的su oracle,是为了躲避su - 这个功能。
如果真的不得不选择从root到oracle的方式进行安装Oracle19c软件,在oracle完成安装之后,再次使用oracle用户时,就需要su - oracle了,因为这样才能使用.bash_profile配置文件中的$ORACLE_HOME等参数,因为:
su oracle 用的是~/.bashrc配置文件;
su - oracle 用的是~/.bash_profile配置文件。
Operating System Requirements for x86-64 Linux Platforms:
Supported Red Hat Enterprise Linux 8 Distributions for x86-64:
Packages for Red Hat Enterprise Linux 8:
Install the latest released versions of the following packages:
yum -y install bc
yum -y install binutils
yum -y install elfutils-libelf
yum -y install elfutils-libelf-devel
yum -y install fontconfig-devel
yum -y install glibc
yum -y install glibc-devel
yum -y install ksh
yum -y install libaio
yum -y install libaio-devel
yum -y install libXrender
yum -y install libX11
yum -y install libXau
yum -y install libXi
yum -y install libXtst
yum -y install libgcc
yum -y install libnsl
yum -y install librdmacm
yum -y install libstdc++
yum -y install libstdc++-devel
yum -y install libxcb
yum -y install libibverbs
yum -y install make
yum -y install smartmontools
yum -y install sysstat
Installing Operating System Packages:
On Oracle Linux or Red Hat Enterprise Linux, to install the latestbcpackage usingYUM, run the following command:
yum -y install bc
Additional Drivers and Software Packages for Linux:
Installation Requirements for ODBC and LDAP:
Installing ODBC Drivers for Linux x86-64:
yum -y install unixODBC
Installation Requirements for Programming Environments for Linux:
Installation Requirements for Programming Environments for Linux x86-64:
yum -y install gcc 成功安装
yum -y install gcc-c++ 成功安装
Confirming Host Name Resolution:
利用vi /etc/hosts配置主机名
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.150 localhost localhost.localdomain
Disabling Transparent HugePages:
To check if Transparent HugePages is enabled, run one of the following commands as the root user:
cat /sys/kernel/mm/transparent_hugepage/enabled
vi /etc/default/grub
GRUB_CMDLINE_LINUX中增加transparent_hugepage=never
运行grub2-mkconfig -o /boot/grub2/grub.cfg
Configuring File System Storage for Oracle Database:
Checking TCP Network Protocol Buffer for Direct NFS Client:
sysctl -a |grep -e net.ipv4.tcp_[rw]mem
As root, use a text editor to open /etc/sysctl.conf, and add or change the following:
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
Apply your changes by running the following command:
sysctl -p
Restart the network:我是重启的系统,而后正常登录系统后,给虚拟机做了一个快照。
禁用 SELinux:
临时禁用:
setenforce 0
永久禁用(需要重启):
编辑 /etc/selinux/config 文件,设置
SELINUX=disabled
禁用 Firewall:
关闭防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
重启操作系统,如果能够正常登陆的话,给虚拟机做一个快照。
不管是图形界面化还是静默安装,执行前设置 CV_ASSUME_DISTID,之后再运行软件的安装脚本。不设置的话会报错,已亲测。
[oracle@henry dbhome_1]$ export CV_ASSUME_DISTID=RHEL7.6
再次建议利用oracle用户直接登录操作系统。
在terminal中执行xhost +
而后cd /u01/app/oracle/product/19.0.0/dbhome_1
./runInstaller 执行安装Oracle19c
具体一步一步的配置和点击在这里就不过多赘述了,可以baidu一下,网上很多资料可供参考。
软件安装的最后也许会报错,那么根据报错提示去日志里看一下到底报错内容是什么。会发现提示Oracle软件安装完成。
报错编码需要利用Database Error Messages来查看数据库报错的具体内容:https://docs.oracle.com/en/database/oracle/oracle-database/19/errmg/
四、利用dbca建库
依然是oracle用户直接登录操作系统,在terminal中执行xhost +
在terminal中执行dbca 创建数据库
根据提示,完成建库。
sqlplus /nolog
conn sys/sys as sysdba
select status from v$instance;
startup
确保数据库处于open状态。
五、配置监听及服务,有两种方法
1、依然是oracle用户直接登录操作系统,在terminal中执行xhost +
在terminal中执行netmgr 创建监听
[oracle@localhost ~]$ lsnrctl start
启动监听
lsnrctl status 查看监听状态
利用netmgr创建服务,同时可以利用system用户进行测试
2、在$ORACLE_HOME/network/admin目录下,配置监听和服务
[oracle@localhost ~]$ cd $ORACLE_HOME/network/admin
[oracle@localhost admin]$ ls
listener.ora samples shrept.lst sqlnet.ora tnsnames.ora
[oracle@localhost admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /u01/oradata
[oracle@localhost admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
lsnrctl start 启动监听
lsnrctl status 查看监听状态
测试tnsnames.ora配置的服务名是否能够正常使用:
[oracle@localhost admin]$ sqlplus sys/sys@orcl as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 21 17:17:19 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
六、解决oracle用户命令行中退格键(backspace)乱码问题
1、要使用退格键(backspace)时,同时按住ctrl键;
2、配置环境变量;
bash下:把 stty erase ^? 添加到.bash_profile中
csh下:把 stty erase ^H 添加到.cshrc中
source相应的配置文件用于生效。
七、解决sqlplus中方向键乱码问题
在网上下载所需的软件包:rlwrap-0.37.tar.gz
由于rlwrap在安装过程中,需要readline和libtermcap-devel的支持,所以根据报错提示,也需要下载安装readline和libtermcap-devel等软件包,我这里是自己通过安装光盘在本机搭建了一个yum源,方便了readline和libtermcap-devel等软件包的安装。
[root@localhost rlwrap-0.37]# yum -y install libtermcap-devel*
上次元数据过期检查:0:09:03 前,执行于 2021年11月10日 星期三 21时52分34秒。
依赖关系解决。
==========================================================================
软件包 架构 版本 仓库 大小
==========================================================================
安装:
ncurses-devel x86_64 6.1-7.20180224.el8 rhel8.1 528 k
安装依赖关系:
ncurses-c++-libs x86_64 6.1-7.20180224.el8 rhel8.1 58 k
事务概要
==========================================================================
安装 2 软件包
总计:586 k
安装大小:989 k
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : ncurses-c++-libs-6.1-7.20180224.el8.x86_64 1/2
安装 : ncurses-devel-6.1-7.20180224.el8.x86_64 2/2
运行脚本: ncurses-devel-6.1-7.20180224.el8.x86_64 2/2
验证 : ncurses-c++-libs-6.1-7.20180224.el8.x86_64 1/2
验证 : ncurses-devel-6.1-7.20180224.el8.x86_64 2/2
Installed products updated.
已安装:
ncurses-devel-6.1-7.20180224.el8.x86_64
ncurses-c++-libs-6.1-7.20180224.el8.x86_64
完毕!
[root@localhost rlwrap-0.37]# yum -y install readline*
上次元数据过期检查:0:11:05 前,执行于 2021年11月10日 星期三 21时52分34秒。
软件包 readline-7.0-10.el8.x86_64 已安装。
依赖关系解决。
==========================================================================
软件包 架构 版本 仓库 大小
==========================================================================
安装:
readline-devel x86_64 7.0-10.el8 rhel8.1 204 k
事务概要
==========================================================================
安装 1 软件包
总计:204 k
安装大小:516 k
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : readline-devel-7.0-10.el8.x86_64 1/1
运行脚本: readline-devel-7.0-10.el8.x86_64 1/1
验证 : readline-devel-7.0-10.el8.x86_64 1/1
Installed products updated.
已安装:
readline-devel-7.0-10.el8.x86_64
完毕!
也可以利用如下方法安装readline:
[root@localhost oracle]# yum search readline
===========================================================
Name Exactly Matched: readline
===========================================================
readline.x86_64 : A library for editing typed command lines
readline.i686 : A library for editing typed command lines
readline.i686 : A library for editing typed command lines
readline.x86_64 : A library for editing typed command lines
==========================================================
Name & Summary Matched: readline
==========================================================
readline-devel.i686 : Files needed to develop programs which use the readline library
readline-devel.x86_64 : Files needed to develop programs which use the readline library
readline-devel.i686 : Files needed to develop programs which use the readline library
readline-devel.x86_64 : Files needed to develop programs which use the readline library
[root@localhost oracle]#
[root@localhost ~]# yum -y install readline.x86_64 readline.i686 readline-devel.i686 readline-devel.x86_64
readline等包完成安装后,安装rlwrap:
[root@localhost ~]# tar zxvf rlwrap-0.37.tar.gz
[root@localhost ~]# cd rlwrap-0.37/
root@localhost rlwrap-0.37]# ./configure
根据提示,继续执行:make && make install
验证rlwrap安装是否成功:
[root@localhost rlwrap-0.37]# which rlwrap
/usr/local/bin/rlwrap
修改oracle用户初始化参数文件
[oracle@localhost ~]$ vi .bash_profile
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
使参数生效:
source .bash_profile