改变数据文件的可用性

一般在下面集中情况下需要改变数据文件的可用性:
  1. 需要进行数据文件脱机备份时,需要将数据文件脱机;
  2. 需要重命名数据文件或者改变数据文件的位置的时候,需要将数据文件脱机;
  3. 数据文件丢失或者损毁,需要在启动数据文件之前将数据文件脱机
  4. 如果Oracle在写入某个数据文件时发生错误,系统会自动将该数据文件设置为脱机状态,并且ilu在报警文件中。排除故障后,需要以手动方式重现将该数据文件回复为练级状态
 
改变数据文件的可用性分为两种情况:
 
一、数据库处于归档模式
 
在归档模式下,改变数据文件的语句为:
对于永久性数据文件:ALTER DATABASE DATAFILE...ONLINE|OFFLINE
对于临时数据文件:ALTER DATABASE TEMPFILE...ONLINE|OFFLINE
 
在归档模式下,将数据文件联机之前需要使用RECOVER DATAFILE 语句进行恢复操作。
 
二、数据库处于非归档模式
 
由于数据库处于非归档模式,数据文件脱机之后,会导致信息丢失,从而使数据文件无法再联机,即不可使用了。因此,在非归档模式下,通常不能将数据文件脱机。
 
例如:
SQL> alter database datafile
  2  'g:\app\bei\oradata\orcl\user02.dbf' offline;
alter database datafile
*
第 1 行出现错误:
ORA-01516: 不存在的日志文件, 数据文件或临时文件
"g:\app\bei\oradata\orcl\user02.dbf"
 
如果由于数据文件损坏,需要将数据文件脱机,则可以使用以下语句:
ALTER database datafile...OFFLINE FOR DROP
 
下面为了模拟一下这个例子,先添加一个数据文件:

SQL> ALTER TABLESPACE USERS ADD DATAFILE
  2  'G:\APP\BEI\ORADATA\ORCL\USER11.DBF' SIZE 10M;
表空间已更改。
 
下面我们来删除

SQL> alter database datafile
  2  'G:\APP\BEI\ORADATA\ORCL\USER11.DBF' offline for drop;
数据库已更改。
 
然后查询users表空间的数据文件
 
SQL> select file_name from dba_data_files
  2  where tablespace_name='USERS';
FILE_NAME
--------------------------------------------------------------------------------
G:\APP\BEI\ORADATA\ORCL\USERS01.DBF
G:\APP\BEI\ORADATA\ORCL\USER11.DBF--还在表空间中
 
我们发现了一个user11.dbf仍然在表空间中。其实该语句只是将数据文件脱机,数据文件不可用,并没有真正的将其从数据字典记忆控制文件中删除该数据文件信息,也没有从磁盘上删除该数据文件。该数据文件随后可以随其所属表空间的珊瑚粗而删除。
 
 
改变表空间中所有数据文件的可用性
 
在归档模式下,可以将一个永久表空间或者临时表空间中的所有数据文件联机或者脱机,但并不改变表空间本身的联机与脱机状态。
 
对于永久表空间的所有数据文件:
 
ALTER TABLESPACE...DATAFILE ONLINE|OFFLINE
 
对于临时表空间的所有数据文件:
 
ALTER TABLESPACE...TEMPFILE ONLINE|OFFLINE
 
 
通常,可以在数据库处于加载状态MOUNT或者OPEN状态时,将表空间中的所有数据文件脱机或者联机。但是,如果哟啊讲SYSTEM、UNDO表空间的所有数据文件或者默认的临时表空间中所有的临时数据文件都设置为脱机或者联机状态,则必须在加在状态下进行。

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

转载于:http://blog.itpub.net/28811724/viewspace-758665/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值