数据库管理第101期 DG环境下创建PDB的坑(20230908)

2023年 9月 12日 13.3k 0

数据库管理-第101期 DG环境下创建PDB的坑(20230908)

本周在X9M上ADG环境主库上做PDB迁移的时候,出现了一个问题,备库在想要启动PDB的时候出现了无法打开的问题,在与SR深入交流之后发现了问题的原因。

1 standbys子句

创建PDB的standbys子句,指定创建PDB时是否在备库创建同一PDB的数据文件,使用方式如下:

create pluggable database xxx ... standbys= ('cdb_name1','cdb_name2',...)|none|all|all except;

standbys子句包含:

  • cdb_name: 在指定的备库中创建PDB数据文件。
  • none: 不在任何备库中创建PDB数据文件。
  • all: 在所有备库中创建PDB数据文件,默认值。(大坑)
  • all except: 排除部分备库,在其余备库中创建PDB文件。

在使用none和all except子句中,不在对应备库创建PDB文件不会影响DG整体同步状况,这种配置是控制部分PDB(比如测试PDB)无需灾备同步,备库中PDB不同步数据,仅有元数据展示,因此备库中PDB时无法被open read only的,在switchover后,这个PDB将无法新的主库(原备库)中使用,failover后有丢失对应数据的风险。

2 remote clone

就官方文档来看,一般情况下DG环境中创建PDB是无需关注该子句,因为默认为all。但是,在本周割接后发现备库对应PDB无法打开,出现了以下问题:

SQL> alter pluggable database open read only;
alter pluggable database open read only
*
ERROR at line 1:
ORA-01147: SYSTEM tablespace file xxxx is offline

SQL> select file#,status,name from v$datafile where file#=1716;

FILE# STATUS NAME
---------- ------- --------------------------------------------------------------
XXXX SYSOFF /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/UNNAMED01716

SQL> alter database datafile xxxx online;
alter database datafile xxxx online
*
ERROR at line 1:
ORA-01156: recovery or flashback in progress may need access to files

检查备库数据库日志,发现了以下问题:

Recovery created pluggable database PDB_XXXX

相关文章

pt-kill工具的使用
pt-ioprofile工具包的使用
数据库管理-第216期 Oracle的高可用-01(20240703)
DBMS_REPAIR EXAMPLE SCRIPT WITH PARTITION
数据库事务的四大特性: ACID 
使用BBED修复损坏的SYSTEM文件头

发布评论