版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/ctypyb2002/article/details/84543147
os: centos 7.4
db: oracle 18c(18.3)
source_file_name_convert 看官方文档,描述的不清不楚的。下面以一个具体的例子说明下。
create pdb
$ sqlplus / as sysdba;
SQL> CREATE PLUGGABLE DATABASE pdbhuiz
ADMIN USER pdbadminhuiz IDENTIFIED BY rootroot
ROLES=(DBA)
DEFAULT TABLESPACE users LOGGING
DATAFILE '/u01/app/oracle/oradata/ORCL/pdbhuiz/users01.dbf' SIZE 250M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
file_name_convert=('/u01/app/oracle/oradata/ORCL/pdbseed/',
'/u01/app/oracle/oradata/ORCL/pdbhuiz/')
STORAGE ( MAXSIZE UNLIMITED
MAX_SHARED_TEMP_SIZE UNLIMITED
)
TEMPFILE REUSE
PATH_PREFIX = '/u01/app/oracle/oradata/ORCL/pdbhuiz/';
SQL> alter pluggable database pdbhuiz open;
SQL> alter pluggable database pdbhuiz close;
SQL> alter pluggable database pdbhuiz unplug into '/u01/app/oracle/unplug_pdb/PDBHUIZ.xml';
SQL> drop pluggable database pdbhuiz keep datafiles;
mv datafile
移动 pdbhuiz 目录下的文件到 /tmp
$ cd /u01/app/oracle/oradata/ORCL/pdbhuiz
$ ls -l
total 993312
-rw-r----- 1 oracle oinstall 367009792 Nov 24 15:26 sysaux01.dbf
-rw-r----- 1 oracle oinstall 283123712 Nov 24 15:26 system01.dbf
-rw-r----- 1 oracle oinstall 104865792 Nov 24 15:26 undotbs01.dbf
-rw-r----- 1 oracle oinstall 262152192 Nov 24 15:26 users01.dbf
-rw-r----- 1 oracle oinstall 65019904 Nov 24 15:26 temp012018-11-22_16-38-22-218-PM.dbf
$ mv ./* /tmp
$ ls -l
total 0
$ ls -lt /tmp
-rw-r----- 1 oracle oinstall 283123712 Nov 24 15:26 system01.dbf
-rw-r----- 1 oracle oinstall 367009792 Nov 24 15:26 sysaux01.dbf
-rw-r----- 1 oracle oinstall 104865792 Nov 24 15:26 undotbs01.dbf
-rw-r----- 1 oracle oinstall 262152192 Nov 24 15:26 users01.dbf
-rw-r----- 1 oracle oinstall 65019904 Nov 24 15:26 temp012018-11-22_16-38-22-218-PM.dbf
以上可以看到 pdbhuiz 的数据文件已经移动到 /tmp 下了。
recreate(plug) pdb
$ sqlplus / as sysdba;
SQL> CREATE PLUGGABLE DATABASE pdbhuiz
USING '/u01/app/oracle/unplug_pdb/PDBHUIZ.xml'
source_file_name_convert=('/u01/app/oracle/oradata/ORCL/pdbhuiz/',
'/tmp/')
MOVE
file_name_convert=('/tmp/',
'/u01/app/oracle/oradata/ORCL/pdbhuiz/')
STORAGE ( MAXSIZE UNLIMITED
MAX_SHARED_TEMP_SIZE UNLIMITED
)
TEMPFILE REUSE
PATH_PREFIX = '/u01/app/oracle/oradata/ORCL/pdbhuiz/';
查看目录文件
$ ls -lt /tmp
total 0
$ ls -lt /u01/app/oracle/oradata/ORCL/pdbhuiz/
total 993368
-rw-r----- 1 oracle oinstall 367009792 Nov 24 15:36 sysaux01.dbf
-rw-r----- 1 oracle oinstall 283123712 Nov 24 15:36 system01.dbf
-rw-r----- 1 oracle oinstall 104865792 Nov 24 15:36 undotbs01.dbf
-rw-r----- 1 oracle oinstall 262152192 Nov 24 15:36 users01.dbf
-rw-r----- 1 oracle oinstall 65019904 Nov 24 15:36 temp012018-11-22_16-38-22-218-PM.dbf
这下清楚 source_file_name_convert 的含义了吧。