Oracle19c重命名PDB

Oracle19c重命名PDB

重命名PDB,可以使用两种方法:

1.克隆PDB

2.Rename PDB

一、克隆PDB

  • 创建目录

此步不是必须,克隆PDB的时候会自动创建大写目录名,强迫症小写患者,可以提前手动创建小写目录

创建testdev目录,D:\ORA19CDATA\test\testdev
  • 克隆
SQL> create pluggable database testdev from testuat file_name_convert=('D:\ORA19CDATA\test\testuat','D:\ORA19CDATA\test\testdev');

插接式数据库已创建。

SQL> alter pluggable database testdev open;

插接式数据库已变更。
  • 删除旧的PDB
SQL> alter pluggable database  testuat close;
SQL> drop pluggable database testuat including datafiles;

二、重命名PDB

1.Rename PDB
连接到:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.8.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 TESTUAT                        READ WRITE NO

SQL> alter pluggable database testuat rename global_name to testdev;

插接式数据库已变更。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 TESTDEV                        READ WRITE NO
2.Move datafiles

Rename PDB后,数据文件的路径还是指向旧的testuat目录,强迫症患者可以通过move在线移动数据文件,Move datafile PDB必须online

SQL> alter session set container=testdev;

会话已更改。

SQL> select * from v$dbfile;

     FILE#          NAME                                                                      CON_ID      
----------    -----------------------------------------------------------------             ----------
            22    D:\ORA19CDATA\test\TESTUAT\SYSTEM01.DBF                                      3

......

已选择 13 行。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 TESTDEV                        READ WRITE NO

SQL> alter session set container=testdev;

会话已更改。

SQL> alter database move datafile 'D:\Ora19cData\test\testuat\TEST_DATA_D01.DBF' to 'D:\Ora19cData\test\testdev\TEST_DATA_D01.DBF';

数据库已更改。

......

待所有的数据文件move完后,再次检查确认路径:

SQL> select * from v$dbfile;
3.Rename tempfile

临时文件有两种方法移动:

1.手工创建一个临时文件到新的路径,删除旧的临时文件

2.Rename tempfile

SQL> alter database tempfile 'D:\ORA19CDATA\test\testuat\TEMP01.DBF' offline;

数据库已更改。

手工移动Tempfile: Copy 'D:\ORA19CDATA\test\testuat\TEMP01.DBF' to 'D:\Ora19cData\test\testdev\'

SQL> alter database rename file 'D:\ORA19CDATA\test\testuat\TEMP01.DBF' to 'D:\Ora19cData\test\testdev\TEMP01.DBF';

数据库已更改。

SQL> alter database tempfile  'D:\Ora19cData\test\testdev\TEMP01.DBF' online;

数据库已更改。

三、批量Move脚本

Windows:
select 'alter database move datafile '||''''||name||''''||' to ''D:\Ora19cData\test\testdev\'||substr(name, instr(name, '\', -1) + 1)||''';' from v$dbfile;

select 'alter database rename file '||''''||name||''''||' to ''D:\Ora19cData\test\testdev\'||substr(name, instr(name, '\', -1) + 1)||''';' from v$tempfile;

Linux:
select 'alter database move datafile '||''''||name||''''||' to ''/testdb/data/'||substr(name, instr(name, '/', -1) + 1)||''';' from v$dbfile;

select 'alter database rename file '||''''||name||''''||' to ''/testdb/data/'||substr(name, instr(name, '/', -1) + 1)||''';' from v$tempfile;
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇