概述
本文记录在Vmware虚拟机安装配置Oracle 19c的过程
主要包含以下三部分内容:
- CentOS环境设置
- 安装19c
- 友好配置
环境介绍
- 系统版本:CentOS7 1810
- 内核: 3.10.0-957.el7.x86_64
- 数据库版本:19c
1. CentOS环境配置
安装桌面套件
[root@db ~]# yum groupinstall -y "GNOME DESKTOP"
在线安装操作系统依赖包
[root@db ~]# curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
[root@db ~]# yum localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
[root@db ~]# yum install -y gcc-c++
配置系统内核&limits参数
[root@db ~]# vi /etc/sysctl.conf
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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 = 1048576
[root@db ~]# sysctl -p
[root@db ~]# vi /etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
关闭系统透明大页
[root@db ~]# cat /sys/kernel/mm/transparent_hugepage/enabled # CentOS可以通过这个命令来检测是否开启了.
# 修改grub GRUB_CMDLINE_LINUX增加 transparent_hugepage=never
[root@db ~]# vi /etc/default/grub
......
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off transparent_hugepage=never"
......
# 重新生成grub.cfg文件
[root@db ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
创建目录并授权
[root@db ~]# mkdir -p /u01/app
[root@db ~]# chown -R oracle:oinstall /u01/app
[root@db ~]# chmod -R 775 /u01/app
[root@db ~]# mkdir -p /u01/app/oraInventory
[root@db ~]# chown -R oracle:oinstall /u01/app/oraInventory
[root@db ~]# chmod -R 775 /u01/app/oraInventory
[root@db ~]# mkdir -p /u01/app/oracle/cfgtoollogs
[root@db ~]# mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
[root@db ~]# chown -R oracle:oinstall /u01/app/oracle
[root@db ~]# chmod -R 775 /u01/app/oracle
关闭SELinux
[root@db ~]# sed -i s'/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
关闭防火墙
[root@db ~]# systemctl stop firewalld.service
[root@db ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2022-11-25 05:08:09 CST; 9ms ago
Docs: man:firewalld(1)
Process: 8712 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 8712 (code=exited, status=0/SUCCESS)
Nov 25 04:25:44 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Nov 25 04:25:44 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Nov 25 05:08:08 db systemd[1]: Stopping firewalld - dynamic firewall daemon...
Nov 25 05:08:09 db systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@db ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
2. 安装19c
切换到oracle用户,设置环境变量
[oracle@db ~]$ vi .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=prod
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
[oracle@db ~]$ source .bash_profile
[oracle@db ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/19.3.0/dbhome_1
创建软件包目录授予oracle用户权限,上传19c安装包并通过oracle用户解压.
[root@db ~]# mkdir /soft
[root@db ~]# chown -R oracle:oinstall /soft
[root@db ~]# chmod -R 755 /soft
[root@db ~]# su - oracle
[oracle@db soft]$ unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
设置虚拟机图形界面启动
[root@db ~]# systemctl set-default graphical.target
重启虚拟机, 图形界面打开终端切换到oracle用户
[root@db ~]# cp /root/.Xauthority /home/oracle/
[root@db ~]# chown oracle:oinstall /home/oracle/.Xauthority
[root@db ~]# echo $DISPLAY
:0
[root@db ~]# su - oracle
[oracle@db ]$ export DISPLAY=:0
[oracle@db ]$ cd $ORACLE_HOME
[oracle@db dbhome_1 ]$ ./runInstaller
输入root用户密码, 自动运行配置脚本
等待安装完成
安装完成!
root用户运行脚本
[root@db ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@db ~]# /u01/app/oracle/product/19.3.0/dbhome_1/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/19.3.0/dbhome_1
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
建库: oracle 图形界面终端输入命令 dbca
登录数据库
[root@db ~]# su - oracle
[oracle@db ~]$ export ORACLE_SID=prod
[oracle@db ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Nov 25 06:07:20 2022
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
SQL>
3. 友好配置
下载rlwrap包 rlwarp下载链接
[root@db soft]# yum install -y python3 perl-Data-Dumper
[root@db soft]# rpm -ivh rlwrap-0.43-2.el7.x86_64.rpm
warning: rlwrap-0.43-2.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:rlwrap-0.43-2.el7 ################################# [100%]
配置Oracle环境变量
[oracle@db ~]$ vi .bash_profile
[oracle@db ~]$ cat .bash_profile
......
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
[oracle@db ~]$ source .bash_profile
配置glogin.sql设置sqlplus提示符
[oracle@db ~]$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql
[oracle@db ~]$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql
set linesize 120
set pagesize 999
define _editor=vi
set sqlprompt "_user'@'_connect_identifier> "
登录数据库验证友好配置 …