一.移动数据文件:
可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件。
1. ALTER DATABASE
方法一:用此方法,可以移动任何表空间的数据文件。
step1:
关闭数据库
#sqlplus / as sysdba
SQL>shutdown immediate
step2:
用操作系统命令移动数据文件:
将数据文件‘test.ora’从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
#mv /ora/oracle/data1/test.ora/ora/oracle/data2
step3:
Mount数据库,用ALTERDATABASE命令将数据文件改名:
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE RENAME FILE ‘/ora/oracle/data1/test.ora’ TO ‘/ora/oracle/data2/test.ora’;
step 4:
打开数据库
SQL> ALTER DATABASE OPEN;
SQL> SELECTNAME,STATUS FROM V$DATAFILE;
2. ALTER TABLESPACE
方法:用此方法,要求此数据文件既不属于SYSTEM表空间,也不属于含有ACTIVE回滚段或临时段的表空间。
step1:
将此数据文件所在的表空间OFFLINE:
#sqlplus / as sysdba
SQL> ALTER TABLESPACE test OFFLINE;
step2:
用操作系统命令移动数据文件:
将数据文件‘test.ora’ 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
$ mv /ora/oracle/data1/test.ora/ora/oracle/data2
step3:
用ALTER TABLESPACE命令改数据文件名:
SQL> ALTER TABLESPACE test RENAME DATAFILE‘/ora/oracle/data1/test.ora’ TO ‘/ora/oracle/data2/test.ora’;
step4:
将此数据文件所在的表空间ONLINE:
SQL> ALTER TABLESPACE test ONLINE;
SQL> SELECT NAME,STATUS FROM V$DATAFILE;
二. 移动控制文件
step1:
通过spfile创建pfile
#sqlplus / as sysdbaSQL> select * from v$controlfile;
SQL> create pfile='/tmp/init.ora' from spfile;
step2:
关闭数据库
SQL> shutdown immediate;
复制control file到/redolog文件系统下
#cp -p /ebankdata1/ebank/control01.ctl /ebankredolog1/ebank/control01.ctl
#cp -p /ebankdata2/ebank/control02.ctl /ebankredolog2/ebank/control02.ctl
#cp -p /ebankdata3/ebank/control03.ctl /ebankredolog3/ebank/control03.ctl
修改/tmp/init.ora中control file的参数分别为
*.control_files='/ebankredolog1/ebank/control01.ctl','/ebankredolog2/ebank/control02.ctl','/ebankredolog3/ebank/control03.ctl'
PS:如果是在WINDOWS环境下,路径的写法须注意,一般是在文件名前有一左斜杠,如:'E:\ORACLE\ORADATA\CATALOG\/CONTROL01.CTL'
备份spfile
#cp -p spfileebank.ora spfileebank.ora.20101209.bak
step3:
使用pfile启动数据库,通过pfile创建spfile
SQL> startup pfile=’/tmp/init.ora’;SQL> create spfile from pfile=’/tmp/init.ora’;
关闭数据库
SQL> shutdown immediate;
step4:
重新启动数据库,验证control file路径
SQL> startup force
SQL> select * from v$controlfile;
三. 移动redo日志文件
step1:
停数据库:
SQL> shutdown immediate
step2:
用操作系统命令移动联机日志文件:
将联机日志文件’redolog1.ora’从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
#mv /ora/oracle/data1/redolog1.ora/ora/oracle/data2
step3:
Mount数据库,用ALTER DATABASE 命令改联机日志文件名:
SQL> STARTUP MOUNT
SQL> ALTER DATABASE RENAME FILE‘/ora/oracle/data1/redolog1.ora’ TO
‘/ora/oracle/data2/redolog1.ora’;
step4:
重启动数据库:
SQL> ALTER DATABASE OPEN;
SQL>SELECT MEMBER FROM V$LOGFILE;