一次数据文件移动操作总结

前言:
      在数据库运行、管理、维护维优过程中,有可能会碰到需要移动数据文件到其他硬盘或目录的情况。
   
       删除或移动数据文件,都不像在操作系统中使用rm或cp命令那么简单。如果只是简单的rm或cp数据文件,
  
       那么数据库运行时会因为找不到正确的数据文件位置而报错。这是因为数据文件的位置和信息都被记录

       在控制文件中,rm或cp命令是不会也不可能更改控制文件记录的,这时必须通过alter操作去更改刷新数

       据库控制文件中数据文件的相关信息,以此确保数据库能够正常运行。

           以下将介绍三种方法更改数据文件的位置,更改数据文件位置前,建议暂停所有针对此数据文件的数
    
       据操作。  

(一) 方法一:offline表空间

**************************************************************
* 主要步骤:                                                 *
* 1、offline表空间:alter tablespace tablespace_name offline;*
* 2、复制数据文件到新的目录;OS 数据文件先移动                     *
* 3、rename修改表空间,改控制文件会自动修改;                      *
* 4、online表空间;         alter  tablespace tablespace_name online;                                 *
**************************************************************

 方法二:offline数据文件 (停用数据量效小)

**************************************************************
* 主要步骤:                                                 *
* 1、offline数据文件:、
ALTER DATABASE DATAFILE 'D:/ORACLE/ORADATA/DBA/TEST01.DBF' OFFLINE;;*
* 2、复制数据文件到新的目录;OS 数据文件先移动好   
cp  mv                  *
* 3、rename修改数据文件位置,改控制文件会自动修改; 
alter database rename file 'D:/ORACLE/ORADATA/DBA/TEST01.DBF' to 'D:/TEST01.DBF';                     *
* 4、online数据文件;      
需要先:recover datafile 'D:/TEST01.DBF'
SQL>ALTER DATABASE DATAFILE 'D:/TEST01.DBF' 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

操作相关视图
1.v$datafile  
This view contains datafile information from the control file.
2、v$dbfile
This view lists all datafiles making up the database. This view is retained for historical compatibility. Use of V$DATAFILE is recommended instead.
3、dba_data_files
DBA_DATA_FILES describes database files.

4、v$tempfile
This view displays tempfile information.

5、dba_temp_files

DBA_TEMP_FILES describes all temporary files (tempfiles) in the database.







来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27252036/viewspace-1400084/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27252036/viewspace-1400084/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值