一、关库修改
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;