oracle 修改資料檔案位置(路徑)(移動)

wanglinghua0907發表於2023-12-29

一、關庫修改

select file_name,tablespace_name from dba_data_files;

select name from v$datafile;

show parameter standby_file_management

alter system set standby_file_management='MANUAL' scope=both;

shutdown immediate;

mv xxxx   /xxx/xxx/

SQL> startup mount;

select 'ALTER DATABASE RENAME FILE '||''''||name || '''' ||' to ' ||'''' || '/backup/oradata/hisdb_dg'  || substr(name,instr(name,'/',-1)) ||'.dbf'|| '''' || ';' from v$datafile;

select 'ALTER DATABASE RENAME FILE '||''''||name || '''' ||' to ' ||'''' || '/backup/oradata/hisdb_dg'  || substr(name,instr(name,'/',-1)) ||'.dbf'|| '''' || ';' from v$tempfile;

alter database rename file ……………..

alter database open;


二、線上修改(停表空間)

不能動system表空間

select file_name,tablespace_name,online_status from dba_data_files;


1.offline表空間

alter tablespace tablespace_name offline;


2.移動資料檔案

mv /oracle/app/orcldata/orcl/ts_mcc_1.dat /data/ts_mcc_1.dat


3.rename資料檔案

select 'ALTER DATABASE RENAME FILE '||''''||name || '''' ||' to ' ||'''' || '/backup/oradata/hisdb_dg'  || substr(name,instr(name,'/',-1)) ||'.dbf'|| '''' || ';' from v$datafile;


4.online表空間

alter tablespace TS_MCC online;


三、線上修改(停部分資料檔案)

1).offline表空間

alter database datafile 7 offline;


2).移動資料檔案

mv /aaa/abc.ora to /bbb/abc.ora


3).rename資料檔案(改一下,不要後面加.dbf)

select 'ALTER DATABASE RENAME FILE '||''''||name || '''' ||' to ' ||'''' || '/backup/oradata/hisdb_dg'  || substr(name,instr(name,'/',-1)) ||'.dbf'|| '''' || ';' from v$datafile;

Alter database rename file '/aaa/abc.ora' to '/bbb/abc.ora';


4).recover

Alter database recover datafile 92;


5).online表空間

alter database datafile 7 online;


四、線上修改(12c及以上使用)

12c開始可以用move來線上重新命名和移動資料檔案(19c適用)

ALTER DATABASE MOVE DATAFILE '/data/ultradb01.dbf' TO '/data/ultradb02.dbf';

加keep引數可以保留原始dbf

ALTER DATABASE MOVE DATAFILE '/data/ultradb01.dbf' TO '/data/ultradb02.dbf' keep;


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69980685/viewspace-3002118/,如需轉載,請註明出處,否則將追究法律責任。

相關文章