一.移动数据文件:
可以用ALTER DATABASE,ALTERTABLESPACE两种方法移动数据文件。
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 RENAMEDATAFILE‘/ora/oracle/data1/test.ora’ TO ‘/ora/oracle/data2/test.ora’;
step4:将此数据文件所在的表空间ONLINE:
SQL> ALTER TABLESPACE test ONLINE;
SQL> SELECT NAME,STATUS FROMV$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的参数分别为
/ebankredolog1/ebank/control01.ctl /ebankredolog2/ebank/control02.ctl
/ebankredolog3/ebank/control03.ctl备份spfile
#cp -p spfileebank.ora spfileebank.ora.20101209.bak
step3:使用pfile启动数据库,通过pfile创建spfile
SQL> startup pfile=’/tmp/init.ora’;SQL> create spfilefrom 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 RENAMEFILE‘/ora/oracle/data1/redolog1.ora’ TO ‘/ora/oracle/data2/redolog1.ora’;
step4:重启动数据库: .
SQL> ALTER DATABASE OPEN;
SQL>SELECT MEMBER FROM V$LOGFILE;