实战篇:Oracle DataGuard如何升级?看这篇就够了

举报
Lucifer三思而后行 发表于 2021/10/28 11:23:15 2021/10/28
【摘要】 作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。 前言随着Oracle的普遍应用,DataGuard这个成员基本成为了...

作者简介

  • 作者:LuciferLiu,中国DBA联盟(ACDU)成员。
  • 目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。
  • 现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。

前言

随着Oracle的普遍应用,DataGuard这个成员基本成为了数据库容灾环境的标配。当需要升级Oracle数据库的同时,也需要考虑同时升级DataGuard数据库版本,那么如何快捷安全的升级?
升级流程
推荐方案:

升级至NON-CDB模式:

  • 首先关闭ADG同步,升级主库至19C,备库以mount模式在19C下打开,开启ADG同步。

升级至CDB模式:

  • 首先升级主库为19C cdb+pdb模式,备库重新搭建ADG。
  • 首先搭建一套19C CDB的主备ADG环境,首先关闭ADG同步,然后将主库升级并插入主库CDB,开启ADG同步。

本文主要介绍CDB模式:首先升级主库为19C cdb+pdb模式,备库重新搭建ADG。

一、环境准备

环境安装过程忽略,可参考:

脚本使用和下载可参考Github

  • Github 持续保持更新中🔥
  • Gitee 持续保持更新中🔥

搭建ADG可参考:

本次测试尽量按照生产环境升级进行模拟:

节点 主机版本 主机名 实例名 Oracle版本 IP地址
主库 redhat 7.9 orcl orcl+cdb19c 11.2.0.4 + 19.3.0(补丁 29585399) 10.211.55.100
备库 redhat 7.9 orcl_stby 不创建实例 19.3.0(补丁 29585399) 10.211.55.101

注意:源库最好冷备拷贝到新机器进行升级,保留源库用于回退。

根据MOS文档 2485457.1可以获取最新版 AutoUpgrade工具下载地址:

The most recent version of AutoUpgrade can be downloaded via this link: version 20210421.

二、升级主库

  • 用autoUpgrade工具升级主库

参考文章:实战篇:手把手教你如何快速安全的升级Oracle数据库,包学包会!【❤️2021最新升级秘籍⭐️建议收藏❤️】

  • config文件如下:
cat<<EOF >/soft/conifg.cfg
# Global configurations
global.autoupg_log_dir=/soft/uplogs
global.raise_compatible=yes
global.drop_grp_after_upgrade=yes

# Database number 3 - Noncdb to PDB upgrade
upg3.log_dir=/soft/logs
upg3.sid=orcl
upg3.source_home=/u01/app/oracle/product/11.2.0/db
upg3.target_cdb=cdb19c
upg3.target_home=/u01/app/oracle/product/19.3.0/db
upg3.target_pdb_name=orcl
upg3.target_pdb_copy_option=file_name_convert=('/oradata/orcl/', '/oradata/CDB19C/orcl/')
upg3.start_time=NOW                  # Optional. 10 Minutes from now
upg3.upgrade_node=orcl           # Optional. To find out the name of your node, run the hostname utility. Default is 'localhost'
upg3.run_utlrp=yes              # Optional. Whether or not to run utlrp after upgrade
upg3.timezone_upg=yes           # Optional. Whether or not to run the timezone upgrade
upg3.target_version=19  # Oracle version of the target ORACLE_HOME.  Only required when the target Oracle database version is 12.2
upg3.remove_underscore_parameters=yes
upg3.source_tns_admin_dir=/u01/app/oracle/product/11.2.0/db/network/admin
upg3.target_tns_admin_dir=/u01/app/oracle/product/19.3.0/db/network/admin
EOF

开始升级non-cdb转换为pdb
升级完成
至此,主库已升级完成。
庆祝

  • 检查升级情况:

设置pdb随cdb启动:

alter pluggable database all save state;

在这里插入图片描述

三、搭建ADG

1 主备CDB搭建ADG

  • 备库执行:
dbca -silent -createDuplicateDB \
-gdbName cdb19c \
-sid cdb19c \
-sysPassword oracle \
-primaryDBConnectionString 10.211.55.100:1521/cdb19c \
-nodelist orcl_stby \
-databaseConfigType SINGLE \
-createAsStandby -dbUniqueName cdb19c_stby \
-datafileDestination '/oradata'

DBCA创建备库实例pdb

  • 主库设置DG参数
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(CDB19C,CDB19C_STBY)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=CDB19C';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=CDB19C_stby ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=CDB19C_STBY';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=4;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
ALTER SYSTEM SET FAL_SERVER=CDB19C_STBY;
ALTER SYSTEM SET FAL_CLIENT=CDB19C;
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/oradata/CDB19C','/oradata/CDB19C_STBY' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/oradata/CDB19C','/oradata/CDB19C_STBY'  SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
  • 备库设置DG参数
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(CDB19C_STBY,CDB19C)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=CDB19C_STBY';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=CDB19C ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=CDB19C';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=4;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
ALTER SYSTEM SET FAL_SERVER=CDB19C;
ALTER SYSTEM SET FAL_CLIENT=CDB19C_STBY;
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/oradata/CDB19C_STBY','/oradata/CDB19C' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/oradata/CDB19C_STBY','/oradata/CDB19C'  SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

配置ADG参数

2 CDB主备开启同步

##备库执行
alter database recover managed standby database using current logfile disconnect from session;
    
##主库执行
alter system set log_archive_dest_state_2=enable;

同步情况检查

四、升级完测试

  • 主库创建测试数据:
alter session set container=orcl;

创建连接用户

sqlplus lucifer/lucifer@orcl

创建测试数据

  • 备库查看是否同步:

在这里插入图片描述
升级结束,ADG同步正常,完美。

参考文章:


本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

技术交流可以 关注公众号:Lucifer三思而后行

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。