oracle 修改数据文件路径

时间:2023-03-08 17:30:11

 

一、关库修改文件位置

1.连接到数据库

[oracle@linux]$ ./sqlplus /nolog

SQL> conn / as sysdba

2. 查看数据文件位置

SQL> select name from v$datafile;

FILE_NAME

------------------------------------------------------------------------

/oradata/PMPTGDB/users01.dbf

/oradata/PMPTGDB/undotbs01.dbf

/oradata/PMPTGDB/sysaux01.dbf

/oradata/PMPTGDB/system01.dbf

/oradata/PMPTGDB/work.dbf

3. 关闭数据库

SQL> shutdown immediate;

4. 移动文件到新的位置(比如新的位置为/media/hdd1/oradata/PMPTGDB )

cd /oradata/PMPTGDB/

mv users01.dbf undotbs01.dbf sysaux01.dbf system01.dbf work.dbf /media/hdd1/oradata/PMPTGDB

5. 以mount模式启动数据库

SQL> startup mount;

SQL> alter database rename file   '/oradata/PMPTGDB/users01.dbf'   to   '/media/hdd1/oradata/PMPTGDB/users01.dbf ';

对每一个要移动的文件重复执行上面的alter database rename file ... to ...

6. 打开数据库

SQL> alter database open;

再次查看文件位置,发现已经更该。


二、在线修改

方法1:表空间offline

主要步骤:

1、offline表空间:alter tablespace tablespace_name offline;

2、复制数据文件到新的目录;

3、rename修改表空间,并修改控制文件;

4、online表空间;

select file_name,tablespace_name,online_status from dba_data_files;
alter tablespace TS_MCC offline;
host mv /oracle/app/orcldata/orcl/ts_mcc_1.dat /data/ts_mcc_1.dat
alter database rename file '/oracle/app/orcldata/orcl/ts_mcc_1.dat' to '/data/ts_mcc_1.dat';
alter tablespace TS_MCC online;