陈老师:1415968548 郑老师:2735197625 乐老师:354331153
客服热线:
19941464235 / 19906632509 / 19906733890 / 19905812933(微信同号)

客服微信

【Oracle】Oracle 19c之PDB重命名

作者:云贝学院
发布时间:2024-12-10 09:42
浏览量:74

本文为云贝教育 刘老师 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。


一、准备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.



想了解更多相关的学习资料(技术文章和视频),可以微信公众号或B站搜索《云贝教育》,免费获取。

需要课程资料的同学可以私聊课程顾问:19941464235(微信同号)