一、关库修改文件位置
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;