主库创建新pdb名字为zxm,备库的pdb创建失败
备库的alert日志:
Recovery created pluggable database ZXM
ZXM(4):Tablespace-SYSTEM during PDB create skipped since source is in r/w mode or this is a refresh clone
ZXM(4):File #22 added to control file as 'UNNAMED00022'. Originally created as:
ZXM(4):'/u01/app/oracle/oradata/ORCL/zxm/system01.dbf'
ZXM(4):because the pluggable database was created with nostandby
ZXM(4):or the tablespace belonging to the pluggable database is
ZXM(4):offline.
ZXM(4):Tablespace-SYSAUX during PDB create skipped since source is in r/w mode or this is a refresh clone
......
主库创建正常:
[oracle@oracle19c ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 20 12:26:29 2024
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 JYC READ WRITE NO
SQL> create pluggbale database zxm from jyc;
create pluggbale database zxm from jyc
*
ERROR at line 1:
ORA-00901: invalid CREATE command
SQL> create pluggable database zxm from jyc;
create pluggable database zxm from jyc
*
ERROR at line 1:
ORA-65016: FILE_NAME_CONVERT must be specified
SQL> !oerr ora 65016;
65016, 00000, "FILE_NAME_CONVERT must be specified"
// *Cause: Data files, and possibly other files, needed to be copied as a
// part of creating a pluggable database. However, Oracle Managed
// Files (OMF) was not enabled, PDB_FILE_NAME_CONVERT was not defined,
// and there was a failure to specify the FILE_NAME_CONVERT clause.
// *Action: Enable OMF or define PDB_FILE_NAME_CONVERT system parameter before
// issuing CREATE PLUGGABLE DATABASE statement, or specify
// FILE_NAME_CONVERT clause as a part of the statement.
//
SQL> show parameter create;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
create_bitmap_area_size integer 8388608
create_stored_outlines string
db_create_file_dest string
db_create_online_log_dest_1 string
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
SQL> set time on
12:28:49 SQL> set time off
SQL> set timing on
SQL> CREATE PLUGGABLE DATABASE zxm
2 FROM jyc
3 FILE_NAME_CONVERT = ('jyc', 'zxm');
Pluggable database created.
Elapsed: 00:00:06.95
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 JYC READ WRITE NO
4 ZXM MOUNTED
SQL> alter pluggable database zxm open;
Pluggable database altered.
Elapsed: 00:00:03.94
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 JYC READ WRITE NO
4 ZXM READ WRITE NO
SQL> show parameter pdb;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
autotask_max_active_pdbs integer 2
awr_pdb_autoflush_enabled boolean FALSE
awr_pdb_max_parallel_slaves integer 10
disable_pdb_feature big integer 0
enable_automatic_maintenance_pdb boolean TRUE
enabled_PDBs_on_standby string *
max_datapump_jobs_per_pdb string 100
max_pdbs integer 254
one_step_plugin_for_pdb_with_tde boolean FALSE
pdb_file_name_convert string
pdb_lockdown string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pdb_os_credential string
pdb_template string
scheduler_follow_pdbtz boolean FALSE
standby_pdb_source_file_dblink string
standby_pdb_source_file_directory string
target_pdbs integer 6
SQL> set line 160
SQL> set wrap off
SQL> select con_id,file#,name from v$datafile;
CON_ID FILE# NAME
---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------
1 1 /u01/app/oracle/oradata/ORCL/system01.dbf
1 3 /u01/app/oracle/oradata/ORCL/sysaux01.dbf
1 4 /u01/app/oracle/oradata/ORCL/undotbs01.dbf
2 5 /u01/app/oracle/oradata/ORCL/pdbseed/system01.dbf
2 6 /u01/app/oracle/oradata/ORCL/pdbseed/sysaux01.dbf
1 7 /u01/app/oracle/oradata/ORCL/users01.dbf
2 8 /u01/app/oracle/oradata/ORCL/pdbseed/undotbs01.dbf
3 9 /u01/app/oracle/oradata/ORCL/jyc/system01.dbf
3 10 /u01/app/oracle/oradata/ORCL/jyc/sysaux01.dbf
3 11 /u01/app/oracle/oradata/ORCL/jyc/undotbs01.dbf
3 12 /u01/app/oracle/oradata/ORCL/jyc/users01.dbf
CON_ID FILE# NAME
---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------
3 13 /u01/app/oracle/oradata/ORCL/jyc/users02.dbf
3 14 /u01/app/oracle/oradata/ORCL/jyc/test01.dbf
3 15 /u01/app/oracle/oradata/ORCL/jyc/data01.dbf
1 16 /u01/app/oracle/oradata/ORCL/system02.dbf
1 17 /u01/app/oracle/oradata/ORCL/test01.dbf
3 18 /u01/app/oracle/oradata/ORCL/jyc/test101_18.dbf
3 19 /u01/app/oracle/oradata/ORCL/jyc/test101.dbf
3 20 /u01/app/oracle/oradata/ORCL/jyc/jyc01.dbf
3 21 /u01/app/oracle/oradata/ORCL/jyc/users03.dbf
4 22 /u01/app/oracle/oradata/ORCL/zxm/system01.dbf
4 23 /u01/app/oracle/oradata/ORCL/zxm/sysaux01.dbf
CON_ID FILE# NAME
---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------
4 24 /u01/app/oracle/oradata/ORCL/zxm/undotbs01.dbf
4 25 /u01/app/oracle/oradata/ORCL/zxm/users01.dbf
4 26 /u01/app/oracle/oradata/ORCL/zxm/users02.dbf
4 27 /u01/app/oracle/oradata/ORCL/zxm/users03.dbf
4 28 /u01/app/oracle/oradata/ORCL/zxm/test01.dbf
4 29 /u01/app/oracle/oradata/ORCL/zxm/data01.dbf
4 30 /u01/app/oracle/oradata/ORCL/zxm/test101_18.dbf
4 31 /u01/app/oracle/oradata/ORCL/zxm/test101.dbf
4 32 /u01/app/oracle/oradata/ORCL/zxm/zxm01.dbf
31 rows selected.
Elapsed: 00:00:00.01
SQL> select con_id,file#,name from v$tempfile;
CON_ID FILE# NAME
---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------
1 1 /u01/app/oracle/oradata/ORCL/temp01.dbf
2 2 /u01/app/oracle/oradata/ORCL/pdbseed/temp012024-03-18_12-27-59-226-PM.dbf
3 3 /u01/app/oracle/oradata/ORCL/jyc/temp01.dbf
4 5 /u01/app/oracle/oradata/ORCL/zxm/temp01.dbf
Elapsed: 00:00:00.02
SQL> alter session set container=zxm;
Session altered.
Elapsed: 00:00:00.00
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TEST
DATA
TEST1
TEST2
JYC
10 rows selected.
Elapsed: 00:00:00.01
备库处理:
1.执行pdb数据文件恢复:
检查备库缺失的文件号:

select con_id,file#,name from v$datafile;
select 'alter database datafile '||''||file#||''||' online;' from v$datafile where CON_ID=4;
rman target sys/abcd1234@tns_dgorcl
run
{
set newname for database to '/u01/app/oracle/oradata/DGORCL/zxm/%N%f';
restore datafile 22,23,24,25,26,27,28,29,30,31,32 from service "tns_orcl";
switch datafile all;
}
或者如下命令:
run
{
set newname for pluggable database zxm to '/u01/app/oracle/oradata/DGORCL/zxm/%N%f';
restore pluggable database zxm from service "tns_orcl";
}
switch pluggable database zxm to copy;
2.在cdb的mount状态下将zxm的datafile online,并打开pdb继续应用日志:
备库需重启到mount状态处理:
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 3221223192 bytes
Fixed Size 9139992 bytes
Variable Size 654311424 bytes
Database Buffers 2550136832 bytes
Redo Buffers 7634944 bytes
Database mounted.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED MOUNTED
3 JYC MOUNTED
4 ZXM MOUNTED
5 JX MOUNTED
7 ZZW MOUNTED
SQL> alter session set container=zxm;
Session altered.
SQL> select 'alter database datafile '||''||file#||''||' online;' from v$datafile;
'ALTERDATABASEDATAFILE'||''||FILE#||''||'ONLINE;'
------------------------------------------------------------------------
alter database datafile 22 online;
alter database datafile 23 online;
alter database datafile 24 online;
......
SQL> alter database datafile 22,23,24,25,26,27,28,29,30,31,32 online;
Database altered.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
4 ZXM MOUNTED
SQL> conn / as sysdba
Connected.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 JYC MOUNTED
4 ZXM MOUNTED
SQL> alter pluggable database all open;
Pluggable database altered.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 JYC READ ONLY NO
4 ZXM READ ONLY NO
SQL> alter database recover managed standby database using current logfile disconnect;
Database altered.
3.对比temp表空间文件,备库手工增加文件:
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY WITH APPLY
SQL> set line 160
SQL> set wrap off
SQL> select con_id,file#,name from v$datafile;
CON_ID FILE# NAME
---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------
1 1 /u01/app/oracle/oradata/DGORCL/system01.dbf
1 3 /u01/app/oracle/oradata/DGORCL/sysaux01.dbf
1 4 /u01/app/oracle/oradata/DGORCL/undotbs01.dbf
2 5 /u01/app/oracle/oradata/DGORCL/pdbseed/system01.dbf
2 6 /u01/app/oracle/oradata/DGORCL/pdbseed/sysaux01.dbf
1 7 /u01/app/oracle/oradata/DGORCL/users01.dbf
2 8 /u01/app/oracle/oradata/DGORCL/pdbseed/undotbs01.dbf
3 9 /u01/app/oracle/oradata/DGORCL/jyc/system01.dbf
3 10 /u01/app/oracle/oradata/DGORCL/jyc/sysaux01.dbf
3 11 /u01/app/oracle/oradata/DGORCL/jyc/undotbs01.dbf
3 12 /u01/app/oracle/oradata/DGORCL/jyc/users01.dbf
CON_ID FILE# NAME
---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------
3 13 /u01/app/oracle/oradata/DGORCL/jyc/users02.dbf
3 14 /u01/app/oracle/oradata/DGORCL/jyc/test01.dbf
3 15 /u01/app/oracle/oradata/DGORCL/jyc/data01.dbf
1 16 /u01/app/oracle/oradata/DGORCL/system02.dbf
1 17 /u01/app/oracle/oradata/DGORCL/test01.dbf
3 18 /u01/app/oracle/oradata/DGORCL/jyc/test101_18.dbf
3 19 /u01/app/oracle/oradata/DGORCL/jyc/test101.dbf
3 20 /u01/app/oracle/oradata/DGORCL/jyc/jyc01.dbf
3 21 /u01/app/oracle/oradata/DGORCL/jyc/users03.dbf
4 22 /u01/app/oracle/oradata/DGORCL/zxm/SYSTEM22
4 23 /u01/app/oracle/oradata/DGORCL/zxm/SYSAUX23
CON_ID FILE# NAME
---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------
4 24 /u01/app/oracle/oradata/DGORCL/zxm/UNDOTBS124
4 25 /u01/app/oracle/oradata/DGORCL/zxm/USERS25
4 26 /u01/app/oracle/oradata/DGORCL/zxm/USERS26
4 27 /u01/app/oracle/oradata/DGORCL/zxm/USERS27
4 28 /u01/app/oracle/oradata/DGORCL/zxm/TEST28
4 29 /u01/app/oracle/oradata/DGORCL/zxm/DATA29
4 30 /u01/app/oracle/oradata/DGORCL/zxm/TEST130
4 31 /u01/app/oracle/oradata/DGORCL/zxm/TEST231
4 32 /u01/app/oracle/oradata/DGORCL/zxm/JYC32
31 rows selected.
SQL> select con_id,file#,name from v$tempfile;
CON_ID FILE# NAME
---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------
1 1 /u01/app/oracle/oradata/DGORCL/temp01.dbf
2 2 /u01/app/oracle/oradata/DGORCL/pdbseed/temp012024-03-18_12-27-59-226-PM.dbf
3 3 /u01/app/oracle/oradata/DGORCL/jyc/temp01.dbf
SQL> alter session set container=zxm;
Session altered.
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TEST
DATA
TEST1
TEST2
JYC
10 rows selected.
SQL> select con_id,file#,name from v$tempfile;
no rows selected
SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/DGORCL/zxm/temp01.dbf' size 10M;
Tablespace altered.
SQL> select con_id,file#,name from v$tempfile;
CON_ID FILE# NAME
---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------
4 5 /u01/app/oracle/oradata/DGORCL/zxm/temp01.dbf
相关参考:
Making Use Deferred PDB Recovery and the STANDBYS=NONE Feature with Oracle Multitenant (Doc ID 1916648.1)


Data Guard Impact on Oracle Multitenant Environments (Doc ID 2049127.1)


测试直接创建PDB同步正常:(不是create from的方式)
SQL> CREATE PLUGGABLE DATABASE jx ADMIN USER jx IDENTIFIED BY abcd1234 FILE_NAME_CONVERT = ('pdbseed', 'jx');
Pluggable database created.

pbd坑类似问题参考:https://www.modb.pro/db/1699990660547952640
最后修改时间:2024-03-21 11:08:30
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




