源端为备库的场景下Duplicate失败问题

场景,duplicate,失败,问题 · 浏览次数 : 137

小编点评

# 对数据库进行11.2.0.3 PSU补丁 ## 准备工作 1. 建立一个空文件夹,解压:[oracle@db11gadg media]$ mkdir tmp[oracle@db11gadg media]$ unzip p20996944_112030_Linux-x86-64.zip -d ./tmp/[oracle@db11gadg tmp]$ pwd/u01/media/tmp[oracle@db11gadg tmp]$ ls -lrthtotal 220K-rw-r-- 1 oracle oinstall 21 Jan 9 2014 README.txt-rw-r--r-- 1 oracle oinstall 0 Jan 9 2014 atp_lfpdrwxr-xr-x 5 oracle oinstall 44 Jan 9 2014 17592127drwxrwxr-x 17 oracle oinstall 4.0K Jun 9 2015 20760997-rw-r--r-- 1 oracle oinstall 450 Jun 9 2015 bundle.xml-rw-rw-r-- 1 oracle oinstall 63K Jul 14 2015 README.html-rw-rw-r-- 1 oracle oinstall 143K Jul 14 2015 PatchSearch.xml关闭数据库,监听,应用补丁; 2. SQL> shutdown immediate[oracle@db11gadg 20760997]$ lsnrctl stopSQL> startup然后级联备库再次发起duplicate操作,不再报错了哈~为了统一,接下来计划在主库、级联备库都应用11.2.0.3的PSU补丁。这里先应用一个备库,就是为了验证这个问题是否能修复。。归纳总结以上内容,生成内容时需要带简单的排版 ## 对数据库进行11.2.0.3 PSU补丁 **1. 建立备库** ```sql CREATE TABLE backup_table_name (column_names) TABLE backup_table_name (column_names) TABLE primary_backup_table_name (column_names) TABLE FOREIGN_KEY_backup_table_name (column_names) TABLE INDEX_backup_table_name (column_names); ``` **2. 应用补丁** ```sql APPLY UPDATE backup_table_name USING PSU_UPDATE_TABLE_NAME TABLE primary_backup_table_name WHERE column_name = 'backup_column_name'; ``` **3. 验证补丁结果** ```sql SELECT * FROM backup_table_name; ``` **4. 清理备库** ```sql DROP TABLE backup_table_name; DROP TABLE primary_backup_table_name; DROP TABLE FOREIGN_KEY_backup_table_name; DROP TABLE INDEX_backup_table_name; ``` ## 总结 该文展示了如何对数据库进行11.2.0.3 PSU补丁。首先需要建立一个备库,然后应用补丁到备库中。最后验证补丁结果并清理备库。

正文

环境:
Oracle 11.2.0.3 + OEL 7.9
A -> B -> C 级联ADG环境:db11g -> db11gadg -> db11gcas

之前测试提到,从一级备库duplicate到二级备库会报错:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 05/14/2023 23:54:15
RMAN-05501: aborting duplication of target database
RMAN-05531: a mounted database cannot be duplicated while datafiles are fuzzy

客户确认是从一级备库duplicate到二级备库OK,查询文档:

  • RMAN Duplicate From Active Database Fails when Source Database is Standby and Patch 11715084 Applied (Doc ID 1522062.1)

原来又是一个bug,好在有已发布的补丁修复此问题。
为了避免更多杂七杂八的bug,我决定应用11.2.0.3版本最后的PSU(Patch Set Update);

根据MOS文档:

  • Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases (Doc ID 2118136.2)

定位到 11.2.0.3最后一个PSU是:p20996944_112030_Linux-x86-64.zip

这个是包含了GI和DB的补丁,我这里单实例就只需要应用其中DB的,应用每一个补丁的具体步骤都是去参见对应的readme文件:README.html。

  • Patch 20996944 - Oracle Grid Infrastructure Patch Set Update 11.2.0.3.15 (Jul2015) (Includes Database PSU)

这里想多聊下关于readme,但凡是有经验的DBA,都知道打补丁要看对应的readme,而不是直接上去就操作,虽然打补丁流程类似,但也会有个别补丁之间存在差异,按readme指引操作才是最靠谱的。

This document is accurate at the time of release. For any changes and additional information regarding PSU 11.2.0.3.15, see these related documents that are available at My Oracle Support (http://support.oracle.com/):

Document 854428.1 Patch Set Updates for Oracle Products

Document 2006070.1 Oracle Grid Infrastructure Patch Set Update 11.2.0.3.15 Known Issues

This document includes the following sections:

Section 1, "Patch Information"

Section 2, "Patch Installation and Deinstallation"

Section 3, "Known Issues"

Section 4, "References"

Section 5, "Manual Steps for Apply/Rollback Patch"

Section 6, "Bugs Fixed by This Patch"

Section 7, "Documentation Accessibility"

我们需要下载OPatch Utility,通过 6880880 搜索:

  • You must use the OPatch utility version 11.2.0.3.5 or later to apply this patch.

题外话,这里的utility啥意思?
我们知道utility software通常是指最基础的系统工具软件,而Opatch 这种软件用于打各种版本的PSU补丁,所以称之为Opatch utility就容易理解了。
另外值得一提的是,像SUV这种耳熟能详的汽车车型,其中的U也是Utility这个词哦(Sport Utility Vehicle),这样是不是一下子就记住了呢~

  • The OPatch utility will prompt for your OCM (Oracle Configuration Manager) response file when it is run.
    OCM response file is required and is not optional.

这个ocm响应文件在这个版本下是必须的,在新版本就不需要,这些注意事项实际上都需要readme来确认。

在readme中针对比如手工应用等章节是指向到具体的MOS文档进一步说明:

  • Readme - Patch Installation and Deinstallation For 11.2.0.3.x GI PSU (Doc ID 1494646.1)

说这些只是为了让大家在应用补丁时仔细去看对应的readme说明,目前我这实验环境是单实例,手工应用补丁即可,使用最简单的opatch apply。

嗯,在应用之前,再去duplicate尝试下,确定目前是有问题的。
将级联备库db11gcas对应的实例启动到nomount状态;然后执行脚本报错:

sh dup_dg.sh 
...
RMAN-05531: a mounted database cannot be duplicated while datafiles are fuzzy

在db11gadg备库先应用PSU补丁,更新OPatch Utility版本然后应用补丁:

[oracle@db11gadg media]$ $ORACLE_HOME/OPatch/opatch version
Invoking OPatch 11.2.0.1.7

OPatch Version: 11.2.0.1.7

OPatch succeeded.

需要更新OPatch Utility,下载最新的11.2.0.3.41 尝试?
记得太新的其实未必兼容,另外目前连接实验环境没有多少流量可用传输。
所以从实验环境的本地网盘上搜到,p6880880_112000_Linux-x86-64_11.2.0.3.12.zip。
也符合要求。

安装此版本更新后再次查询符合要求:

[oracle@db11gadg dbhome_1]$ pwd
/u01/app/oracle/product/11.2.0/dbhome_1
[oracle@db11gadg dbhome_1]$ unzip /u01/media/p6880880_112000_Linux-x86-64_11.2.0.3.12.zip
[oracle@db11gadg dbhome_1]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.12

OPatch succeeded.

解压补丁,应用DB补丁:
建立一个空文件夹,解压:

[oracle@db11gadg media]$ mkdir tmp
[oracle@db11gadg media]$ unzip p20996944_112030_Linux-x86-64.zip -d ./tmp/

[oracle@db11gadg tmp]$ pwd
/u01/media/tmp
[oracle@db11gadg tmp]$ ls -lrth
total 220K
-rw-r--r--  1 oracle oinstall   21 Jan  9  2014 README.txt
-rw-r--r--  1 oracle oinstall    0 Jan  9  2014 atp_lfp
drwxr-xr-x  5 oracle oinstall   44 Jan  9  2014 17592127
drwxrwxr-x 17 oracle oinstall 4.0K Jun  9  2015 20760997
-rw-r--r--  1 oracle oinstall  450 Jun  9  2015 bundle.xml
-rw-rw-r--  1 oracle oinstall  63K Jul 14  2015 README.html
-rw-rw-r--  1 oracle oinstall 143K Jul 14  2015 PatchSearch.xml

关闭数据库,监听,应用补丁;

SQL> shutdown immediate
[oracle@db11gadg 20760997]$ lsnrctl stop

[oracle@db11gadg 20760997]$ $ORACLE_HOME/OPatch/opatch apply

Email address/User Name: <--- 直接回车!
You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  Y <--- Y表示 希望不了解安全问题,不然就一直让你输入邮箱..

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/11.2.0/dbhome_1')


Is the local system ready for patching? [y|n]
y  <--- y表示本地环境已经准备好应用补丁了!

...
Composite patch 20760997 successfully applied.
OPatch Session completed with warnings.
Log file location: /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2023-05-22_15-17-55PM_1.log

OPatch completed with warnings.

应用完补丁查询:

[oracle@db11gadg 20760997]$ $ORACLE_HOME/OPatch/opatch lsinventory
...
OPatch succeeded.

启动监听和数据库:

$ lsnrctl start
SQL> startup

然后级联备库再次发起duplicate操作,不再报错了哈~

为了统一,接下来计划在主库、级联备库都应用11.2.0.3的PSU补丁。
这里先应用一个备库,就是为了验证这个问题是否能修复。

与源端为备库的场景下Duplicate失败问题相似的内容:

源端为备库的场景下Duplicate失败问题

**环境:** Oracle 11.2.0.3 + OEL 7.9 A -> B -> C 级联ADG环境:db11g -> db11gadg -> db11gcas 之前测试提到,从一级备库duplicate到二级备库会报错: ```shell RMAN-00571: RMAN-00569: ER

ADG级联备库环境PSU应用验证

上篇文章 - [源端为备库的场景下Duplicate失败问题](https://www.cnblogs.com/jyzhao/p/17420831.html) 我只在中间备库环境应用了PSU,解决了级联备库从中间备库duplicate数据库的问题: 细心的朋友已经发现,因为是备库环境,并没有做数据库

Angular 集成 StreamSaver 大文件下载

应用场景: 实现目标: 在网页端实现大文件(文件大小 >= 2 G) 断点续传 实际方案: 发送多次请求, 每次请求一部分文件数据, 然后通过续写将文件数据全部写入. 难点: 无法实现文件续写, 最后采用 StreamSaver 来解决这个问题. 1. 首先从 git hub 将 StreamSav

使用.NET源生成器(SG)实现一个自动注入的生成器

DI依赖注入对我们后端程序员来说肯定是基础中的基础了,我们经常会使用下面的代码注入相关的service services.AddScoped(); services.AddTransient<

QUIC在京东直播的应用与实践

本文将分别从推流端、中台源站、直播云CDN及播放端四个部分串烧式地介绍与直播相关的一些技术实践,并重点介绍QUIC技术的应用情况及收益。

[转帖]tcpcopy 流量镜像注意事项

https://www.jianshu.com/p/7c58b389cbe9 如果从多台服务器镜像流量, -c 后面的参数使用不同的 IP 段, 也要记得在目的端 server 添加相应的路由。原因是在流量大的情况下,改变后的源ip和源端口可能冲突,导致 tcp reset。例如 流量源1 : -c

源生创新 云享未来|GOTC全球开源技术峰会华为云云原生精彩时刻

摘要:GOTC 全球开源技术峰会在上海张江科学会堂成功举办。 本文分享自华为云社区《源生创新 云享未来|GOTC全球开源技术峰会华为云云原生精彩时刻》,作者:华为云云原生团队。 GOTC 全球开源技术峰会在上海张江科学会堂成功举办。作为面向全球开发者的开源技术盛宴,大会以“Open Source,

[转帖]yum源的三种搭建方式

https://www.cnblogs.com/xiexun/p/14548910.html 一、 本地yum仓库的搭建 1.1、获取软件包资源 将iso镜像挂载在本地目录中,此次挂载目录为/var/www/html/repo/,此目录本身不存在,需要创建。软件宝资源还可以从网络中的开源镜像站获取

[转帖]国内常用镜像加速源分享

国内常用镜像加速源分享 我们经常在下载一些 Python 或 Java等包的时候总是会访问国外的资源站,但是墙内访问国外的网络一般都比较卡。这里作者搜集了一些常用的国内镜像源,涵盖一些互联网大厂和知名高校的repo, 用得上的可以收藏备用哦~ Python相关镜像 (1) pip使用说明 对于Pyt

[转帖]Debian9换源(阿里源)(Linux子系统)

http://www.taodudu.cc/news/show-5410026.html?action=onClick 默认你已经装好Linux子系统。 Step 0: 换源核心就是把/etc/apt/sources.list 的内容替换成国内的镜像 这里以阿里云的镜像为参考 deb http://