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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
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脚本
1 2 3 4 5 6 7 8 9 10 11 12
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;