Oracle 19c配置手册

snow chuai汇总、整理、撰写---2020/12/16


1. 安装Oracle 19c前提需求
1) 确认节点具备GUI环境
2) 安装必要的一些工具 [root@srv1 ~]# yum install binutils compat-libcap1 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++l7.i686 libstdc++-devel libstdc++-devel.i686 compat-libstdc++-33 compat-libstdc++-33.i686 libXi libXi.i686 libXtst libXtst.i686 make sysstat -y
3) 设定kernel参数 [root@srv1 ~]# MEMTOTAL=$(free -b | sed -n '2p' | awk '{print $2}') [root@srv1 ~]# SHMMAX=$(expr $MEMTOTAL / 2) [root@srv1 ~]# SHMMNI=4096 [root@srv1 ~]# PAGESIZE=$(getconf PAGE_SIZE) [root@srv1 ~]# cat > /etc/sysctl.d/50-oracle.conf << EOF fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmmax = $SHMMAX kernel.shmall = $(expr \( $SHMMAX / $PAGESIZE \) \* \( $SHMMNI / 16 \)) kernel.shmmni = $SHMMNI kernel.sem = 250 32000 100 128 kernel.panic_on_oops = 1 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 EOF
[root@srv1 ~]# sysctl --system ...... ...... * Applying /etc/sysctl.d/50-oracle.conf ... fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmmax = 16778133504 kernel.shmall = 1048633344 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 kernel.panic_on_oops = 1 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 * Applying /usr/lib/sysctl.d/50-pid-max.conf ... kernel.pid_max = 4194304 * Applying /usr/lib/sysctl.d/60-libvirtd.conf ... fs.aio-max-nr = 1048576 * Applying /etc/sysctl.d/99-sysctl.conf ... * Applying /etc/sysctl.conf ...
4) 为Oracle数据库创建账户及组并设定环境 [root@srv1 ~]# i=54321; for group in oinstall dba oper backupdba dgdba kmdba asmdba asmoper asmadmin r acdba; do groupadd -g $i $group; i=$(expr $i + 1) done
[root@srv1 ~]# useradd -u 54321 -g oinstall \ -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba \ -d /usr/oracle oracle
[root@srv1 ~]# passwd oracle Changing password for user oracle. New password: Retype new password: passwd: all authentication tokens updated successfully.
[root@srv1 ~]# mkdir -p /u01/app/oracle [root@srv1 ~]# chown -R oracle:oinstall /u01/app [root@srv1 ~]# chmod -R 755 /u01
[root@srv1 ~]# vim /etc/pam.d/login # 于15行添加如下内容 session required pam_selinux.so open session required pam_namespace.so session required pam_limits.so session optional pam_keyinit.so force revoke session include system-auth -session optional pam_ck_connector.so
[root@srv1 ~]# vim /etc/security/limits.d/50-oracle.conf # 于新文件中添加如下内容 oracle soft nofile 1024 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768
5) 使用oracle账户登录并设定环境 srv1 login: oracle Password: [oracle@srv1 ~]$ vim ~/.bash_profile # 于文件底部添加如下内容 umask 022 export ORACLE_BASE=/u01/app/oracle
# 为安装oracle数据库创建工作目录 [oracle@srv1 ~]$ mkdir database
2. 安装Oracle 19c
1) 登录CentOS


2) 下载Oracle 19c到oracle账户主目录下的database目录 下载地址: https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
3) 解压并执行安装Oracle 19c的命令 [oracle@srv1 ~]$ cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core)
[oracle@srv1 ~]$ cd database [oracle@srv1 database]$ unzip LINUX.X64_193000_db_home.zip [oracle@srv1 database]$ ./runInstaller
4) 安装Oracle 19c























5) 为oracle账户设置环境 [oracle@srv1 ~]$ vim ~/.bash_profile # 于文件最后添加如下内容 export ORACLE_HOME=/usr/oracle/database export PATH=$PATH:$ORACLE_HOME/bin
[oracle@srv1 ~]$ source ~/.bash_profile
3. 添加Oracle Net Listener[网络监听]
1) 在GUI模式中打开终端并输入netca命令
[oracle@srv1 ~]$ netca
2) 添加Net Listener















3) 验证Net Listener [oracle@srv1 ~]$ ss -alntp | grep 1521 LISTEN 0 128 *:1521 *:* users:(("tnslsnr",pid=11720,fd=8))
[oracle@srv1 ~]$ tnsping localhost TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 16-DEC-2020 20:33:58
Copyright (c) 1997, 2019, Oracle. All rights reserved.
Used parameter files:
Used HOSTNAME adapter to resolve the alias Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) OK (0 msec)
4) 设定防火墙规则 [root@srv1 ~]# firewall-cmd --add-port=1521/tcp --permanent success [root@srv1 ~]# firewall-cmd --reload success
4. 创建Oracle 数据库
1) 在GUI模式中打开终端并输入netca命令
[oracle@srv1 ~]$ dbca
2) 创建数据库





































3) 添加数据库的SID及环境变量设定 [oracle@srv1 ~]$ vim /etc/oratab # 文件最后行修改为绿色部分 orcl:/usr/oracle/database:Y
[oracle@srv1 ~]$ vim ~/.bash_profile # 文件最后追加如下内容 export ORACLE_SID=orcl
[oracle@srv1 ~]$ source ~/.bash_profile
4) 连接测试 [oracle@srv1 ~]$ sqlplus /nolog
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 16 21:51:50 2020 Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
SQL> connect / as sysdba Connected. SQL> select instance_name, host_name, version, startup_time from v$instance;
INSTANCE_NAME ---------------- HOST_NAME ---------------------------------------------------------------- VERSION STARTUP_T ----------------- --------- orcl srv1.1000y.cloud 19.0.0.0.0 16-DEC-20
SQL> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 [oracle@srv1 ~]$
5) 防火墙设定 [root@srv1 ~]# firewall-cmd --add-port=5500/tcp --permanent success [root@srv1 ~]# firewall-cmd --reload success
6) 访问Enterprise Manager [浏览器]===>https://($FQDN or IP address):5500/em

5. 编写systemd的oracle服务启动文件
1) 创建systemd的配置文件
[root@srv1 ~]# vim /etc/sysconfig/orcl.oracledb
# 于新文件中指定Oracle环境变量
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/usr/oracle/database
ORACLE_SID=orcl
2) 创建listener service的配置文件 # 根据自己的信息进行修改 [root@srv1 ~]# vim /usr/lib/systemd/system/orcl@lsnrctl.service [Unit] Description=Oracle Net Listener After=network.target
[Service] Type=forking EnvironmentFile=/etc/sysconfig/orcl.oracledb ExecStart=/usr/oracle/database/bin/lsnrctl start ExecStop=/usr/oracle/database/bin/lsnrctl stop User=oracle
[Install] WantedBy=multi-user.target

3) 创建database service的配置文件 # 根据自己的信息进行修改 [root@srv1 ~]# vim /usr/lib/systemd/system/orcl@oracledb.service [Unit] Description=Oracle Database service After=network.target lsnrctl.service
[Service] Type=forking EnvironmentFile=/etc/sysconfig/orcl.oracledb ExecStart=/usr/oracle/database/bin/dbstart $ORACLE_HOME ExecStop=/usr/oracle/database/bin/dbshut $ORACLE_HOME User=oracle
[Install] WantedBy=multi-user.target
[root@srv1 ~]# systemctl daemon-reload [root@srv1 ~]# systemctl enable orcl@lsnrctl orcl@oracledb
6. 安装RPM格式的Oracle 19c
1) 下载RPM格式的Oracle 19c
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
2) 构建预安装环境 [root@srv1 ~]# curl http://public-yum.oracle.com/public-yum-ol7.repo -o /etc/yum.repos.d/public-yum-ol7.repo [root@srv1 ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/public-yum-ol7.repo [root@srv1 ~]# rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 [root@srv1 ~]# yum --enablerepo=ol7_latest -y install oracle-database-preinstall-19c
3) 安装Oracle 19c [root@srv1 ~]# rpm -Uvh oracle-database-ee-19c-1.0-1.x86_64.rpm
4) 配置Oracle 19c [root@srv1 ~]# vim /etc/sysconfig/oracledb_ORCLCDB-19c.conf # 设定默认监听端口 LISTENER_PORT=1521
# 设定Oracle所在位置 ORACLE_DATA_LOCATION=/opt/oracle/oradata
# 设定Enterprise Manager的监听端口 EM_EXPRESS_PORT=5500
5) 创建一个sample数据库----ORCLCDB [root@srv1 ~]# /etc/init.d/oracledb_ORCLCDB-19c configure Configuring Oracle Database ORCLCDB. Prepare for db operation 8% complete Copying database files 31% complete Creating and starting Oracle instance 32% complete 36% complete 40% complete 43% complete 46% complete Completing Database Creation 51% complete 54% complete Creating Pluggable Databases 58% complete 77% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /opt/oracle/cfgtoollogs/dbca/ORCLCDB. Database Information: Global Database Name:ORCLCDB System Identifier(SID):ORCLCDB Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.
Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.
6) 设定环境变量 [oracle@srv1 ~]$ vim ~/.bash_profile # 于文档最后添加如下内容 umask 022 export ORACLE_SID=ORCLCDB export ORACLE_BASE=/opt/oracle/oradata export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin
[oracle@srv1 ~]$ source ~/.bash_profile
7) 测试 [oracle@srv1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 16 21:40:23 2020 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> select instance_name, host_name, version, startup_time from v$instance;
INSTANCE_NAME ---------------- HOST_NAME ---------------------------------------------------------------- VERSION STARTUP_T ----------------- --------- ORCLCDB dlp.srv.world 19.0.0.0.0 16-DEC-20
SQL> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0
8) 创建systemd相关文件 [root@srv1 ~]# vim /etc/oratab # 与最后一行,修改为如下内容 ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
[root@srv1 ~]# vim /etc/sysconfig/ORCLCDB.oracledb # 设定相关的环境变量 ORACLE_BASE=/opt/oracle/oradata ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 ORACLE_SID=ORCLCDB
[root@srv1 ~]# vim /usr/lib/systemd/system/ORCLCDB@lsnrctl.service # 对新文件添加如下内容 [Unit] Description=Oracle Net Listener After=network.target
[Service] Type=forking EnvironmentFile=/etc/sysconfig/ORCLCDB.oracledb ExecStart=/opt/oracle/product/19c/dbhome_1/bin/lsnrctl start ExecStop=/opt/oracle/product/19c/dbhome_1/bin/lsnrctl stop User=oracle
[Install] WantedBy=multi-user.target

[root@srv1 ~]# vim /usr/lib/systemd/system/ORCLCDB@oracledb.service # 对新文件添加如下内容 [Unit] Description=Oracle Database service After=network.target lsnrctl.service
[Service] Type=forking EnvironmentFile=/etc/sysconfig/ORCLCDB.oracledb ExecStart=/opt/oracle/product/19c/dbhome_1/bin/dbstart $ORACLE_HOME ExecStop=/opt/oracle/product/19c/dbhome_1/bin/dbshut $ORACLE_HOME User=oracle
[Install] WantedBy=multi-user.target

[root@srv1 ~]# systemctl daemon-reload [root@srv1 ~]# systemctl enable ORCLCDB@lsnrctl ORCLCDB@oracledb

 

如对您有帮助,请随缘打个赏。^-^

gold