日期:2014-05-16  浏览次数:20378 次

(转)Oracle数据文件迁移

windows xp

oracle 9. 2.0.1.0

sid:test

数据库安装在D盘,现在把D:\ORACLE\ORADATA\TEST下的控制文件,数据库文件,日志文件,临时文件移到F:\TEST\下。

先关闭数据库,把D:\ORACLE\ORADATA\TEST下的文件复制到F:\TEST\下。

首先编辑D:\oracle\ora92\database\INITTEST.ORA,修改为:

control_files=("F:\TEST\control01.ctl", "F:\TEST\control02.ctl", "F:\TEST\control03.ctl")

SQL> create spfile from pfile;


SQL> startup mount;


查询数据文件位置:select name from v$datafile;

查询日志文件位置:select * from v$logfile;

查询控制文件位置:select name from v$controlfile;

查看临时文件位置:select * from v$tempfile;


移动日志文件:

alter database rename file 'D:\ORACLE\ORADATA\TEST\REDO01.LOG' to??? 'F:\TEST\redo01.log';
alter database rename file 'D:\ORACLE\ORADATA\TEST\REDO02.LOG' to??? 'F:\TEST\redo02.log';
alter database rename file 'D:\ORACLE\ORADATA\TEST\REDO03.LOG' to??? 'F:\TEST\redo03.log';

移动数据文件:

alter database rename file? 'D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF' to??? 'F:\TEST\SYSTEM01.DBF';
alter database rename file 'D:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF' to??? 'F:\TEST\UNDOTBS01.DBF';
alter database rename file? 'D:\ORACLE\ORADATA\TEST\DRSYS01.DBF' to??? 'F:\TEST\DRSYS01.DBF';
alter database rename file? 'D:\ORACLE\ORADATA\TEST\INDX01.DBF' to??? 'F:\TEST\INDX01.DBF';
alter database rename file? 'D:\ORACLE\ORADATA\TEST\ODM01.DBF' to??? 'F:\TEST\ODM01.DBF';
alter database rename file? 'D:\ORACLE\ORADATA\TEST\TOOLS01.DBF' to??? 'F:\TEST\TOOLS01.DBF';
alter database rename file? 'D:\ORACLE\ORADATA\TEST\USERS01.DBF' to??? 'F:\TEST\USERS01.DBF';
alter database rename file? 'D:\ORACLE\ORADATA\TEST\XDB01.DBF' to??? 'F:\TEST\XDB01.DBF';

这时可以SQL>alter database open;

临时文件位置转移:

数据库open后可以执行:

SQL> alter database tempfile '临时文件路径' drop;

数据库已更改。

SQL> alter tablespace temp add tempfile? '临时文件路径' size 100M reuse;

表空间已更改。

SQL> select * from v$tempfile;

重启数据库,OK,迁移完成。

?

?

?

?

需求:Oracle的数据库文件都存放在C盘,由于数据文件越来越大,所以想把一些数据文件移至D盘

环境:Oracle9i

操作步骤:

  1. sqlplus /nolog
  2. connect / as sysdba;
  3. shutdown immediate;
  4. startup mount;
  5. alter database rename file 'c:\ora92\oradata\trans\trans.dbf' to 'd:\ora92\oradata\trans\trans.dbf';
  6. alter database open;
注意点:
  • temp表空间的数据文件不能移动

?

附Oracle的几种启动方式

1、startup nomount

  非安装启动,这种方式启动下可执行:重建控制文件、重建数据库。

  读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。

2、startup mount dbname

  安装启动,这种方式启动下可执行:数据库日志归档、数据库介质恢复、使数据文件联机或脱机、重新定位数据文件、重做日志文件。

  执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查。

3、startup open dbname

  先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,这种方式下可访问数据库中的数据。

4、startup,等于以下三个命令

  startup nomount

  alter database mount

  alter database open