千家信息网

如何解析Oracle 12c PDB中碰到的DG问题

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,如何解析Oracle 12c PDB中碰到的DG问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Oracle 12c中的PDB一下
千家信息网最后更新 2026年10月31日如何解析Oracle 12c PDB中碰到的DG问题

如何解析Oracle 12c PDB中碰到的DG问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Oracle 12c中的PDB一下子让数据文件的格式复杂了一些,所以Data Guard就很有必要了,一旦出现问题,受损失的数据库是全局的。没想到在搭建Data Guard的时候还是碰到了一些小问题。
问题源自于一次PDB创建的时候,早些时候我在搭建好Data Guard后,主备库的日志应用都没有问题,过了几天,根据需求需要再添加一个PDB,导入一些数据供应用使用。按照要求创建了数据文件然后导入数据,但是查看备库的状态发现MRP异常停止了。
DG Broker检测的状态如下:
DGMGRL> show configuration;
Configuration - dg_testdb
Protection Mode: MaxPerformance
Members:
testdb - Primary database
s2testdb - Physical standby database
Error: ORA-16766: Redo Apply is stopped
Fast-Start Failover: DISABLED
Configuration Status:
ERROR (status updated 6 seconds ago)
DGMGRL>
备库的错误日志如下:

可以看到是备库没有对应的路径存在所以创建失败,但是错误特别之处在于有下面的错误信息:
Automatic Copy of Standby datafiles for create pdb failed with error - 65169. Files need to be copied manually
备库查看PDB的状态信息如下,TBILLMOB这个PDB出现了问题。
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 TCYMOB0 READ ONLY NO
4 MACTVDB READ ONLY NO
5 TBILLMOB MOUNTED
如果尝试切换容器,会抛出错误。
SQL> alter session set container=TBILLMOB;
ERROR:
ORA-65011: Pluggable database TBILLMOB does not exist.
这个错误查看了MetaLink也没有给出其他的建议,很明显和11g的处理方式有一些差别。无奈只能先修复问题,即从主库导出,备库还原恢复。
这个时候问题就来了,主库备份的时候怎么选择对应的数据文件,在哪个PDB中之类的。
使用RMAN来完成特定的备份,此处需要说明在12c中已经有了默认的新建系统用户sysbackup
rman target '"/ as sysbackup"'
查看schema的信息如下,原来是这么标记的。

因为这个新建的PDB数据文件完全没有同步过去,所以直接可以备份出来。
RMAN> backup format '/tmp/pdb_tbillmob.dmp' pluggable database tbillmob;
在备库上进行还原和恢复,假设备份集和控制文件在/tmp下。
RMAN> catalog start with '/tmp';

RMAN> restore pluggable database tbillmob from '/tmp/pdb_tbillmob.dmp';

Starting restore at 2016-10-25 11:32:18
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=2838 device type=DISK

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 10/25/2016 11:32:19
RMAN-06509: only SPFILE or control file can be restored from AUTOBACKUP
正确的方式是这样的。
RMAN> restore pluggable database tbillmob;
还原之后,开启日志应用即可。
SQL> recover managed standby database disconnect from session;
把备库打开
SQL> alter database open ;
尝试打开所有的PDB
SQL> alter pluggable database all open;
Pluggable database altered.
查看PDB的状态如下:
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 TCYMOB0 READ ONLY NO
4 MACTVDB READ ONLY NO
5 TBILLMOB READ ONLY NO
再次查看就主备关系就正常了。
DGMGRL> show configuration;
Configuration - dg_testdb
Protection Mode: MaxPerformance
Members:
testdb - Primary database
s2testdb - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS (status updated 51 seconds ago)
DGMGRL>

而在这个基础上,我们进一步测试,主库PDB的目录下重新创建一个test目录,备库不存在,看看添加数据文件是否会成功。
mkdir -p /home/U01/app/oracle/oradata/testdb/pdb/tbillmob/test
SQL> alter tablespace users add datafile '/home/U01/app/oracle/oradata/testdb/pdb/tbillmob/test/users02.dbf'size 10M;
查看备库的信息如下:

当然我是在standby_file_management=auto的前提下操作的。如果是standby_file_management=manual还是存在一些差别。

关于如何解析Oracle 12c PDB中碰到的DG问题问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

问题 数据 文件 时候 错误 信息 备份 状态 日志 差别 方式 更多 目录 还是 尝试 帮助 应用 解答 复杂 明显 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手磨咖啡 湖南永感互联网科技有限公司 科技互联网公司装修 深圳互联网科技公司 互联网科技公司发展 猪兼强互联网科技 上海挚品互联网科技 互联网科技视频 撒么互联网科技公司 茂名市互联网科技产业园 开一家科技互联网公司需要多少钱 洛阳共同富裕互联网科技有限公司 互联网在线教育科技创业 科技互联网的核心竞争力 互联网科技包装股份有限公司上市 国产互联网科技公司 美国五大互联网科技公司市值多少 杭州融税互联网科技有限公司 现代科技的标志之一的互联网 山东亿川互联网科技有限责任公司 河南真二互联网科技有限公司 中资互联网科技 互联网科技logo设计 央行互联网金融科技公司 世界互联网科技公司市值排名 语蝶互联网科技有限公司 坤平互联网科技 广州梦谷互联网科技有限公司领导 云鲸互联网络科技有限公司 上海旺乐尼互联网科技有限公司
0