软件包下载
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
RU补丁下载
MOS文档号2118136.2->选择 Oracle Database Updates (Versions 12.2 & higher) 19.0.0.0
OPatch 工具包下载
https://updates.oracle.com/download/6880880.html
选择对应的数据库版本以及操作系统平台,点击download
PS:此次环境部署 安装包和补丁包均放在/home/soft目录下
**Oracle 19c 单实例 19.3.0静默安装
安装依赖包
\[root@server ras\]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
\[root@server ras\]#yum install -y compat-libcap1 compat-libstdc++-33 gcc-c++ ksh libaio-devel libstdc++-devel elfutils-libelf-devel fontconfig-devel libXrender-devel
创建用户
\[root@server ras\]# groupadd oinstall
\[root@server ras\]# groupadd dba
\[root@server ras\]# groupadd asmdba
\[root@server ras\]# groupadd backupdba
\[root@server ras\]# groupadd dgdba
\[root@server ras\]# groupadd kmdba
\[root@server ras\]# groupadd racdba
\[root@server ras\]# groupadd oper
\[root@server ras\]# useradd -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper -m oracle
创建所需目录及修改所属用户和组
\[root@server ~\]# mkdir -p /home/app/oracle/product/19.3.0/dbhome\_1
\[root@server ~\]# chown oracle:oinstall /home/app -R
\[root@server ~\]# mkdir -p /home/soft
\[root@server home\]# chown oracle:oinstall /home/soft
\[root@server home\]# chown oracle:oinstall /home/soft/LINUX.X64\_193000\_db\_home.zip
\[root@server home\]# chown oracle:oinstall /home/soft/p6880880\_190000\_LINUX.zip
\[root@server home\]# chown oracle:oinstall /home/soft/p32545013\_190000\_Linux-x86-64.zip
配置HOSTS解析
\[root@server ras\]# ifconfig | grep 10
inet 10.2.3.4 netmask 255.255.255.0 broadcast 10.2.3.255
\[root@server ras\]# echo "10.2.3.4 server" >> /etc/hosts
\[root@server ras\]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.2.3.4 server
修改内核文件
\[root@server ~\]# cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 3038592
kernel.shmmax = 12446072832
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
EOF
PS:shmmax的值,oracle官方建议至少是物理内存的1/2;shmall=shmmax/page_size
使配置生效
\[root@server ~\]# sysctl -p
关闭selinux和firewalld
vi /etc/selinux/config
SELINUX=disabled
\[root@server ~\]# systemctl stop firewalld
\[root@server ~\]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
设置环境变量(oracle用户下)
\[oracle@server ~\]$ cat >> .bash\_profile << EOF
export ORACLE\_BASE=/home/app/oracle
export ORACLE\_HOME=/home/app/oracle/product/19.3.0/dbhome\_1
export ORACLE\_BIN=/home/app/oracle/product/19.3.0/dbhome\_1/bin
export PATH=/bin:/usr/bin:$PATH
export PATH=$ORACLE\_HOME/bin:$PATH
export ORACLE\_SID=testcdb
export NLS\_LANG="AMERICAN\_CHINA.ZHS16GBK"
export LD\_LIBRARY\_PATH=$ORACLE\_HOME/lib:$ORACLE\_HOME/rdbms/lib:$ORACLE\_HOME/network/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE\_HOME/jlib:$ORACLE\_HOME/rdbms/jlib:$ORACLE\_HOME/network/jlib
EOF
使配置文件生效
\[oracle@server bin\]$ source ~/.bash\_profile
修改shell限制
\[root@server app\]# cat >> /etc/security/limits.conf << EOF
@oinstall soft nofile 2048
@oinstall hard nofile 65536
@oinstall soft nproc 16384
@oinstall soft stack 10240
EOF
安装Oracle软件
解压缩到$ORACLE_HOME
\[oracle@server ~\]$ cd /home/app/oracle/product/19.3.0/dbhome\_1
\[oracle@server dbhome\_1\]$ unzip -q /home/soft/LINUX.X64\_193000\_db\_home.zip -d $ORACLE\_HOME
安装Oracle软件(静默安装)
[oracle@server dbhome_1]$ cd ORACLE\_HOME/install/response
\[oracle@server response\] ls -lrt
total 20
-rw-r–r--. 1 oracle oinstall 19932 Feb 6 2019 db_install.rsp
[oracle@server response]$ cp db_install.rsp db_install.rsp.bak
编辑db_install.rsp
\[oracle@zbglxtdb response\]$ vi db\_install.rsp
主要是修改以下参数
oracle.install.option=INSTALL\_DB\_SWONLY
UNIX\_GROUP\_NAME=oinstall
INVENTORY\_LOCATION=/home/app/oraInventory
ORACLE\_BASE=/home/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA\_GROUP=dba
oracle.install.db.OSOPER\_GROUP=oper
oracle.install.db.OSBACKUPDBA\_GROUP=backupdba
oracle.install.db.OSDGDBA\_GROUP=dgdba
oracle.install.db.OSKMDBA\_GROUP=kmdba
oracle.install.db.OSRACDBA\_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=false
开始安装软件
**\[oracle@server dbhome\_1\]$ ./runInstaller -silent -responseFile /home/app/oracle/product/19.3.0/dbhome\_1/install/response/db\_install.rsp**
Launching Oracle Database Setup Wizard...
You can find the log of this install session at:
/tmp/InstallActions2022-02-23\_11-16-08AM/installActions2022-02-23\_11-16-08AM.log
As a root user, execute the following script(s):
1\. /home/app/oraInventory/orainstRoot.sh
2\. /home/app/oracle/product/19.3.0/dbhome\_1/root.sh
Execute /home/app/oraInventory/orainstRoot.sh on the following nodes:
\[server\]
Execute /home/app/oracle/product/19.3.0/dbhome\_1/root.sh on the following nodes:
\[server\]
Successfully Setup Software with warning(s).
Moved the install session logs to:
/home/app/oraInventory/logs/InstallActions2022-02-23\_11-16-08AM
创建数据库(命令行静默创建)
相应模板存放位置
软件/home/app/oracle/product/19.3.0/install/response/db\_install.rsp
监听/home/app/oracle/product/19.3.0/dbhome\_1/assistants/netca/netca.rsp
建库/home/app/oracle/product/19.3.0/dbhome\_1/assistants/dbca/dbca.rsp
配置监听
执行以下命令通过netca.rsp文件创建监听
\[oracle@server dbhome\_1\]$ netca /silent /responseFile /home/app/oracle/product/19.3.0/dbhome\_1/assistants/netca/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /home/app/oracle/product/19.3.0/dbhome\_1/assistants/netca/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/home/app/oracle/product/19.3.0/dbhome\_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
查看监听状态
\[oracle@server bin\]$ lsnrctl status
创建数据库
编辑响应文件
[oracle@server dbca]$ cd /home/app/oracle/product/19.3.0/dbhome_1/assistants/dbca
[oracle@server dbca]$ cp dbca.rsp dbca.rsp.bak
[oracle@server dbca]$ vi dbca.rsp
#主要修改以下参数(Oracle 建议, 输入的口令长度不应少于 8 个字符, 至少包含 1 个大写字符, 1 个小写字符和 1 个数字 [0-9])
gdbName=testcdb
sid=testcdb
databaseConfigType=SI
templateName=General_Purpose.dbc
sysPassword=Password_123
systemPassword=Password_123
emConfiguration=DBEXPRESS
dbsnmpPassword=Password_123
datafileDestination=/home/app/oracle/oradata
characterSet=ZHS16GBK
totalMemory=8192
如果要创建容器数据库,则还需要配置以下参数,如果是多个pdb则以pdbname为前缀
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=yhggi
pdbAdminPassword=password
执行安装
\[oracle@server dbca\]$ dbca -silent -createDatabase -responseFile /home/app/oracle/product/19.3.0/dbhome\_1/assistants/dbca/dbca.rsp
准备执行数据库操作
已完成 10%
复制数据库文件
已完成 40%
正在创建并启动 Oracle 实例
已完成 42%
已完成 46%
已完成 50%
已完成 54%
已完成 60%
正在进行数据库创建
已完成 66%
已完成 70%
执行配置后操作
已完成 100%
数据库创建完成。有关详细信息, 请查看以下位置的日志文件:
/home/app/oracle/cfgtoollogs/dbca/testcdb。
数据库信息:
全局数据库名:testcdb
系统标识符 (SID):testcdb
有关详细信息, 请参阅日志文件
"/home/app/oracle/cfgtoollogs/dbca/testcdb/testcdb.log"。
\[oracle@server dbca\]$ ps -ef|grep pmon
oracle 525 1 0 20:42 ? 00:00:00 ora\_pmon\_testcdb
oracle 5955 19793 0 20:43 pts/1 00:00:00 grep --color=auto pmon
\[oracle@server dbca\]$ sqlplus / as sysdba
SQL\*Plus: Release 19.0.0.0.0 - Production on Wed Feb 23 20:52:31 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>
Oracle 19c 单实例 19.3.0 升级到19.11.0
检查OPatch工具版本
要安装19c的RU,OPatch 工具的版本必须大于 12.2.0.1.23。 在Oracle 19.3的版本中,OPatch版本是12.2.0.1.17的。 所以需要单独的更新OPatch。
\[oracle@server OPatch\]$ cd $ORACLE\_HOME/OPatch
\[oracle@server OPatch\]$ ./opatch version
OPatch Version: 12.2.0.1.17
OPatch succeeded.
备份Opatch,并解压最新Opatch包
cd $ORACLE\_HOME
mv OPatch OPatch\_2022\_bak
解压最新Opatch包
unzip /home/soft/p6880880\_190000\_LINUX.zip -d ./
验证Opatch升级到12.2.0.1.23以上
\[oracle@server dbhome\_1\]$ cd OPatch
\[oracle@server OPatch\]$ ./opatch version
./opatch: 第 839 行:\[: 参数太多
./opatch: 第 839 行:\[: 参数太多
Java (1.7) could not be located. OPatch cannot proceed!
OPatch returns with error code = 1
#报错解决:将Opatch 的jre删除,将$ORACLE\_HOME 下的jdk/jre拷贝到Opatch目录下
rm -rf $ORACLE\_HOME/Opatch/jre
cp -r $ORACLE\_HOME/jdk/jre $ORACLE\_HOME/Opatch/
\[oracle@server OPatch\]$ ./opatch version
OPatch Version: 12.2.0.1.29
OPatch succeeded.
查看OPatch是否冲突
\[oracle@server soft\]$ unzip p32545013\_190000\_Linux-x86-64.zip
\[oracle@server soft\]$ cd 32545013
**\[oracle@server 32545013\]$ $ORACLE\_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./**
应用patch(对于单实例,必须关闭待升级ORACLE HOME关联的所有实例和监听,并且包括退出所有的sqlplus窗口)
关闭监听
\[oracle@server 32545013\]$ lsnrctl stop
关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
\[oracle@server 32545013\]$ pwd
/home/soft/32545013
**\[oracle@server 32545013\]$ $ORACLE\_HOME/OPatch/opatch apply**
加载变化的SQL到数据库
安装补丁之后,还需要将有变化的SQL加载到数据库中,这里可以直接运行Datapatch工具将这些修改的SQL重新加载到数据库中
启动数据库
\[oracle@server 32545013\]$ sqlplus / as sysdba
SQL\*Plus: Release 19.0.0.0.0 - Production on Thu Feb 24 01:07:34 2022
Version 19.11.0.0.0
Copyright (c) 1982, 2020, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 6442448976 bytes
Fixed Size 8910928 bytes
Variable Size 1090519040 bytes
Database Buffers 5335154688 bytes
Redo Buffers 7864320 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.11.0.0.0
打datapatch
\[oracle@server 32545013\]$ $ORACLE\_HOME/OPatch/datapatch -verbos
启动并检查监听注册状态
\[oracle@server 32545013\]$ lsnrctl start
\[oracle@server 32545013\]$ lsnrctl status
编译失效对象
@$ORACLE\_HOME/rdbms/admin/utlrp.sql




