场景如下:
数据库原来PDB都是建在 DATADG1 磁盘组下,现磁盘组空间不足,需新建PDB到 DATADG3 磁盘组。
在 DATADG1 空间充足的情况下可以直接创建PDB如下:
create pluggable database mas_pdb admin user mas_adm identified by mas_adm;
在 DATADG3 下创建PDB:
SQL> create pluggable database tl_pdb admin user tl_adm identified by tl_adm roles=(connect) file_name_convert=('+DATADG1','+DATADG3');
create pluggable database tl_pdb admin user tl_adm identified by tl_adm roles=(connect) file_name_convert=('+DATADG1','+DATADG3')
*
ERROR at line 1:
ORA-01119: error in creating database file
'+DATADG3/DSCDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/pdbseed_temp01.dbf'
ORA-17502: ksfdcre:4 Failed to create file
+DATADG3/DSCDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/pdbseed_temp01.dbf
ORA-15173: entry 'DD7C48AA5A4404A2E04325AAE80A403C' does not exist in directory
'DSCDB'
---可以看到直接转换会报错,只有在 +DATADG3/DSCDB/ 创建 DD7C48AA5A4404A2E04325AAE80A403C 目录后才能创建成功,但是在下次在DATADG3创建就会出现问题,可采用以下方法创建:
1、先在 DATADG3 下创建 tlyd 目录
asmcmd
lsdg
cd DATADG3
mkdir tlyd
2、创建pdb(从seed PDB创建一个PDB)
---查看seed pdb的数据文件情况
SQL> alter session set container=PDB$SEED;
Session altered.
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
+DATADG1/DSCDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/system.266.833377847
+DATADG1/DSCDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/sysaux.265.833377847
SQL> select file_name from dba_temp_files;
FILE_NAME
--------------------------------------------------------------------------------
+DATADG1/DSCDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/pdbseed_temp01.dbf
---根据seed pdb的数据文件穿件PDB
CREATE PLUGGABLE DATABASE tl_pdb
ADMIN USER tl_adm IDENTIFIED BY tl_adm
ROLES = (connect)
DEFAULT TABLESPACE tlyd
DATAFILE '+DATADG3/tlyd/tlyd01.dbf' SIZE 250M AUTOEXTEND OFF ---可以先不指定
file_name_convert=('+DATADG1/DSCDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/system.266.833377847',
'+DATADG3/tlyd/system01.dbf',
'+DATADG1/DSCDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/sysaux.265.833377847',
'+DATADG3/tlyd/sysaux01.dbf',
'+DATADG1/DSCDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/pdbseed_temp01.dbf',
'+DATADG3/tlyd/temp01.dbf'); ---标红色的数据文件在下次创建pdb时无需替换,只需替换对应的转换文件即可
---文件系统
CREATE PLUGGABLE DATABASE salespdb
ADMIN USER salesadm IDENTIFIED BY salesadm
ROLES = (connect)
DEFAULT TABLESPACE sales
DATAFILE '/oracle/app/oradata/salespdb/sales01.dbf' SIZE 250M AUTOEXTEND ON
file_name_convert=('/oracle/app/oradata/ORCL/datafile/o1_mf_sysaux_bhj9j15y_.dbf',
'/oracle/app/oradata/salespdb/system01.dbf',
'/oracle/app/oradata/ORCL/datafile/o1_mf_system_bhj9j16c_.dbf',
'/oracle/app/oradata/salespdb/sysaux01.dbf',
'/oracle/app/oradata/ORCL/datafile/pdbseed_temp012015-03-05_05-48-23-PM.dbf',
'/oracle/app/oradata/salespdb/temp01.dbf');
3、启动pdb(如果是RAC,注意在其他节点也要open)
alter pluggable database anq_pdb open;
4、删除pdb
drop pluggable database anq_pdb including datafiles;
drop pluggable database anq_pdb keep datafiles;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29953799/viewspace-1677946/
,如需转载,请注明出处,否则将追究法律责任。