云贝教育【Oracle技术文章-Oracle 19c之PDB重命名】
本文为云贝教育 刘老师 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。
一、准备PDB环境
切换到 PDB 并检查数据文件的名称。
切换到 PDB 并检查数据文件的名称。
我们关闭 PDB 并以受限模式打开它。
二、重命名命名PDB
我们切换到 PDB 并重命名全局名称。
我们重新启动 PDB 并显示 PDB 名称。
我们可以看到这对数据文件的路径或名称没有影响。
三、移动PDB的文件
容器数据库 (CDB) 无法移动属于可插入数据库的文件。以下查询显示 CDB 和 PDB 的所有数据文件。
如果我们在CDB下尝试移动属于 PDB 的数据文件,则会返回错误。
SQL>ALTER DATABASE MOVE DATAFILE '/u01/app/oracle/oradata/ORCLCDB/pdb21/ts101.dbf' TO /u01/app/oracle/oradata/ORCLCDB/pdb22/ts101.dbf' REUSE; ERROR at line 1: ORA-01516: nonexistent log file, data file, or temporary file "70" in the current container
如果我们切换到 PDB 容器,数据文件可以正常移动。
SQL> ALTER SESSION SET container=pdb2; Session altered. SQL> ALTER DATABASE MOVE DATAFILE '/u01/app/oracle/oradata/pdb2/system01.dbf' TO '/tmp/system01.dbf' REUSE; Database altered. SQL> SQL> SELECT file_id, file_name FROM dba_data_files WHERE file_id = 29; FILE_ID FILE_NAME ---------- ---------------------------------------------------------------------- 29 /tmp/system01.dbf SQL> SQL> ALTER DATABASE MOVE DATAFILE 29 TO '/u01/app/oracle/oradata/pdb2/system01.dbf' REUSE; Database altered. SQL> SQL> SELECT file_id, file_name FROM dba_data_files WHERE file_id = 29; FILE_ID FILE_NAME ---------- ---------------------------------------------------------------------- 29 /u01/app/oracle/oradata/pdb2/system01.dbf SQL>ALTER SESSION SET container=cdb1; SQL> ALTER SESSION SET container=CDB$ROOT; Session altered.
想了解更多相关的学习资料(技术文章和视频),+绿色小程序chenjunbee,免费获取。