Oracle 移动数据文件的操作方法
将表空间和数据文件从一个位置移动到另一个位置的操作方法
一. OFFLINE
OFFLINE 分为ALTER DATABASE 与 ALTER TABLESPACE OFFLINE,
他们的区别参看blog:http://blog.csdn.net/tianlesoftware/archive/2009/11/29/4898800.aspx
按数据文件来:
1.先将相应的数据文件 offline
ALTER DATABASE DATAFILE 'D:/ORACLE/ORADATA/DBA/TEST01.DBF' OFFLINE;
2.把数据文件 copy 到新位置
3. alter database rename file 'D:/ORACLE/ORADATA/DBA/TEST01.DBF' to 'D:/TEST01.DBF';
4. 介质恢复(offline 数据文件必须要介质恢复)
recover datafile 'D:/TEST01.DBF'
5. 将相应的数据文件 online
SQL>ALTER DATABASE DATAFILE 'D:/TEST01.DBF' ONLINE;
按表空间来:
1.先将相应的表空间 offline
SQL>alter tablespace test offline;
2.把数据文件 copy 到新位置
3. alter tablespace TEST rename datafile 'D:/TEST01.DBF' to 'D:/ORACLE/ORADATA/DBA/TEST01.DBF'
4. 将表空间 online
SQL>alter tablespace test online;
二. Shutdown 数据库
1. 关闭数据库
C:>set ORACLE_SID=DBA
C:>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 11月 29 11:14:02 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn sys/admin as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
2. 把数据文件 copy 到新位置
3. rename datafile
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 71303872 bytes
Database Buffers 209715200 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> alter database rename file 'D:/ORACLE/ORADATA/DBA/TEST01.DBF' to 'D:/TEST01
.DBF';
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> select file#,name,status from v$datafile;
FILE# NAME STATUS
-------- ------------------------------------------------------- ---------------
1 D:/ORACLE/ORADATA/DBA/SYSTEM01 SYSTEM
2 D:/ORACLE/ORADATA/DBA/UNDOTBS0 ONLINE
3 D:/ORACLE/ORADATA/DBA/SYSAUX01 ONLINE
4 D:/ORACLE/ORADATA/DBA/USERS01. ONLINE
5 D:/TEST01.DBF ONLINE