oracle 19c ADG补丁升级

1.备库备份oracle_home目录

备份oracle_home目录的主要目地是为了一旦补丁应用失败可以立即进行回滚。

[oracle@slave ~]$ du -sh $ORACLE_HOME

##进入oraclehome目录
cd $ORACLE_HOME/
cd ..
ls

##压缩db_1目录的内容完成oracle数据库软件备份

tar -cvzf db_home.tar.g dbhome_1/

......

ls

查看压缩后的目录

du -sh db_home.tar.g

2.备库关闭数据库服务及监听程序

注意:如果主备在生产期间需要停止备库的同步服务

##关闭数据库
sqlplus / as sysdba
shu immediate
exit
​
##关闭监听
lsnrctl stop

3.备库升级Opatch

##删除当前Opatch目录

rm -rf OPatch/

##将opatch压缩包和补丁包上传到soft目录下 
cd /soft
ls

unzip -d $ORACLE_HOME p6880880_190000_Linux-x86-64.zip

##查看OPatch版本

/opt/oracle/product/19c/dbhome_1/OPatch/opatch version

4.备库应用35943157补丁

#解压补丁

cd /soft
ls
unzip p35943157_190000_Linux-x86-64.zip

......

cd 35943157/
ls

$ORACLE_HOME/OPatch/opatch prereq -help

##检查补丁是否冲突

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail

##应用补丁

$ORACLE_HOME/OPatch/opatch apply

##一直输入y回车

##检查补丁应用情况

$ORACLE_HOME/OPatch/opatch lsinv

......

5.主库备份 oracle_home目录、上传补丁包

cd /soft
ls
cd $ORACLE_HOME/
cd ..
ls
tar -cvzf db_home.tar.g dbhome_1/

6.主库关闭数据库及监听程序

##关闭数据库

sqlplus / as sysdba
shu immediate
exit

##关闭监听

lsnrctl stop

7.主库升级Opatch

升级操作与备库相同(主库注册补丁后切换至备库,备库自动完成补丁的注册)

主库再进行3,4

##注册前的检查

##先启动监听
lsnrctl start
##启动数据库
sqlplus / as sysdba
startup
exit
​
cd $ORACLE_HOME/OPatch
./datapatch -prereq

##检查完成开始注册补丁

./datapatch -verbose

漫长的等待...

##注册完成无报错

8.编译无效对象

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql

9.检查主库的补丁注册情况

SQL> select VERSION,VERSION_FULL from dba_registry;

10.备库切换主库完成补丁注册

Oracle 19c单实例的ADG主备切换

前提准备:(主备库打开监听)

lsnrctl start

主备切换开始时,主库启动到open 状态,备库启动到mount状态

1.主库
sqlplus / as sysdba
SQL>startup   
SQL> select name,open_mode,switchover_status from v$database;
SQL> alter system switch logfile;
SQL> alter system archive log current;
SQL> alter database commit to switchover to physical standby with session shutdown;
SQL> shutdown abort
SQL> startup mount
SQL> alter database open;
SQL> select switchover_status from v$database;

2、备库在主库启动时,备库在mount状态
sqlplus / as sysdba
SQL>startup mount
SQL> alter database commit to switchover to primary with session shutdown;
这里可能会出现错误:
ORA-16139: media recovery required。
下面有解决方法
解决完后,可以不要再次执行了。直接执行下面的命令。
SQL> alter database open;
SQL> select name,open_mode,switchover_status from v$database;

⚫️出现了ORA-16139: media recovery required错误处理

怀疑可能是由于有日志未应用造成的,执行如下语句查询:

SQL> select APPLIED,SEQUENCE# from v$archived_log;
SQL> ALTER  DATABASE RECOVER MANAGED STANDBY  DATABASE DISCONNECT FROM SESSION;
Database altered.
SQL> alter database commit to switchover to primary;
Database altered.
3、新备库(原主库)启用实时日志应用
SQL> alter database recover managed standby database using current logfile disconnect from session;
SQL> select name,open_mode,switchover_status from v$database;
4、新主库切换日志
SQL> alter system switch logfile;
5、分别查看当前主备库切换后当前日志序列号
主库:
SQL> archive log list
​
备库:
SQL> archive log list

主:

备:

6、查看当前主备库状态
主库:
SQL> select name,open_mode,switchover_status from v$database;
​
备库:
SQL> select name,open_mode,switchover_status from v$database;

主:

备:

##检查备库补丁注册情况

SQL> select VERSION,VERSION_FULL from dba_registry;

补丁升级完成!!!

11.切换恢复之前主备状态(重复上边主备切换)

  • 28
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值