一.DataFile脱机或联机的两种方法:

① ALTER DATABASE 语句修改单独的DataFile

② ALTER TABLESPACE 语句修改所有的DataFile

1、在ARCHIVRLOG模式下的更改DataFile状态

ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' ONLINE;

ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE;

或者用文件号来表示 :

SQL>select file#,name,checkpoint_change# from v$datafile;

FILE#

NAME

CHECKPOINT_CHANGE#

1

D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF

1194854

2

D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF

1194854

3

D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF

1194854

4

D:/ORACLE/ORADATA/DBA/USERS01.DBF

1194854

5

D:/ORACLE/ORADATA/DBA/TEST01.DBF

1203262

ALTER DATABASE DATAFILE 5 ONLINE;

ALTER DATABASE DATAFILE 5 OFFLINE;

注:只有在ARCHIVELOG模式下才可使用ALTER DATABASE来更改DataFile

2、在NOARCHIVELOG模式下使DataFile脱机

由于在NOARCHIVELOG模式下,数据文件脱机后会造成数据的遗失,所以只能使用ALTER DATABASE语句下带有DATAFILE和OFFLINE DROP子句的选项将该DataFile直接取消,例如该DataFile只包含临时段数据,并没有备份时

ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/users3.dbf' OFFLINE DROP;

3、修改TableSpace中所有DataFile或TempFile的可用性

ALTER TABLESPACE ... DATAFILE {ONLINE|OFFLINE}

ALTER TABLESPACE ... TEMPFILE {ONLINE|OFFLINE}

注:修改某TableSpace中的所有数据文件,但是TableSpace本身的状态不改变。

我们不能使用'alter database datafile ... offline' 在归档模式下,但是 'alter tablespace ... offline' 可以。

我们不是使用'alter tablespace ... offline'在数据库的read-only模式下,但是'alter database datafile ... offline' 可以。

总结:

① ALTER TABLESPACE可以在数据库装载状态时发布,无需打开

② 涉及到系统表空间、撤销表空间、默认临时表空间时,必须是未打开的数据库

③ ALTER DATABASE DATAFILE 语句中必须填入文件全名

二. 表空间 与 数据文件 脱机的区别

1. ALTER TABLESPACE ... OFFLINE

Does a checkpoint on the datafiles

Takes the datafiles offline

表空间Offline时,数据文件的SCN会被冻结,而且表空间的数据文件offline/online时又会发生文件检查点,使单个数据文件SCN和数据库其他问题不一致。
表空间online时,Oracle会取得当前SCN,解冻offline文件SCN,和当前SCN同步。

tablespace offline有几种选项可供选择normal, temporary,immediate, for recovery,而在datafile中则没有这些选项。

SQL>select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

1203246

SQL>alter tablespace test offline;

Tablespace altered.

SQL>select file#,name,checkpoint_change# from v$datafile;

FILE#

NAME

CHECKPOINT_CHANGE#

1

D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF

1194854

2

D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF

1194854

3

D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF

1194854

4

D:/ORACLE/ORADATA/DBA/USERS01.DBF

1194854

5

D:/ORACLE/ORADATA/DBA/TEST01.DBF

1203262

SQL>select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

1203328

SQL>alter tablespace test online;

Tablespace altered.

SQL>select file#,name,checkpoint_change# from v$datafile;

FILE#

NAME

CHECKPOINT_CHANGE#

1

D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF

1,194,854

2

D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF

1,194,854

3

D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF

1,194,854

4

D:/ORACLE/ORADATA/DBA/USERS01.DBF

1,194,854

5

D:/ORACLE/ORADATA/DBA/TEST01.DBF

1,203,343

SQL>select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

1203440

2.  ALTER DATABASE DATAFILE ... OFFLINE

单纯的offline datafile,将不会触发文件检查点,只有针对offline tablespace的时候才会触发文件检查点,这也是为什么online datafile需要media recovery而online tablespace不需要。

注:只有在ARCHIVELOG模式下才可使用ALTER DATABASE来更改DataFile

SQL>select file#,name,checkpoint_change# from v$datafile;

FILE#

NAME

CHECKPOINT_CHANGE#

1

D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF

1,194,854

2

D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF

1,194,854

3

D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF

1,194,854

4

D:/ORACLE/ORADATA/DBA/USERS01.DBF

1,194,854

5

D:/ORACLE/ORADATA/DBA/TEST01.DBF

1,203,343

SQL>select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

1219831

SQL>alter database datafile 5 offline;

Database altered.

SQL>select file#,name,checkpoint_change# from v$datafile;

FILE#

NAME

CHECKPOINT_CHANGE#

1

D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF

1,194,854

2

D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF

1,194,854

3

D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF

1,194,854

4

D:/ORACLE/ORADATA/DBA/USERS01.DBF

1,194,854

5

D:/ORACLE/ORADATA/DBA/TEST01.DBF

1,203,343

SQL>select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

1219882

SQL>alter database datafile 5 online;

Error at line 1

ORA-01113: 文件 5 需要介质恢复

ORA-01110: 数据文件 5: 'D:/ORACLE/ORADATA/DBA/TEST01.DBF'

SQL>recover datafile 5;

完成介质恢复

SQL>alter database datafile 5 online;

Database altered.

SQL>select file#,name,checkpoint_change# from v$datafile;

FILE#

NAME

CHECKPOINT_CHANGE#

1

D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF

1,194,854

2

D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF

1,194,854

3

D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF

1,194,854

4

D:/ORACLE/ORADATA/DBA/USERS01.DBF

1,194,854

5

D:/ORACLE/ORADATA/DBA/TEST01.DBF

1,219,929

SQL>select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER

------------------------

1220043

ALTER DATABASE 与 ALTER TABLESPACE OFFLINE的区别相关推荐

  1. alter database命令

    alter database:修改数据文件 alter database datafile 4 offline; alter database datafile '/opt/oracle/datafi ...

  2. MySQL修改数据库:ALTER DATABASE用法简介

    数据库创建好后也是可以修改的,下面我们来介绍一下修改数据库的基本操作 基本语法 在 MySQL 中,可以使用 ALTER DATABASE 或 ALTER SCHEMA 语句来修改已经被创建或者存在的 ...

  3. alter database datafile offline drop 与 alter tablespace drop datafile 区别

    以前整理的: Oracle 表空间基本操作 http://blog.csdn.net/tianlesoftware/archive/2009/10/16/4681973.aspx 这篇Blog里真的是 ...

  4. oracle datafile offline,alter database datafile offline drop 与 alter ...

    以前整理的: Oracle表空间基本操作 这篇Blog里真的是最基本的操作.其实今天写的内容,也可以放到那里面去.但是还是打算分开来讲.引起一个重视吧. 1. alter database dataf ...

  5. 130506datafile和tablespace offline区别

    tablespace offline是将tablespace 离线有normal等选项 ,命令为 alter tablespace users offline normal; SQL> sele ...

  6. RAC 实例不能启动 ORA-1589 signalled during ALTER DATABASE OPEN

    今天启动RAC 做实验,发现RAC 实例怎么启动不了. [oracle@rac2 bin]$ crs_stat -t Name           Type           Target    S ...

  7. sql server:alter database name

    --step 1 : 修改数据库名称 USE master GO ALTER DATABASE GeovinDuCms SET SINGLE_USER WITH ROLLBACK IMMEDIATE ...

  8. alter database datafile resize(+释放空间)

    RESIZE DATAFILE的时候会失败,因为一些OBJECT的EXTENTS已经扩展到DATAFILE的边缘(最大的地方).  下面的SQL可以让我们找到前5个最边缘的OBJECT select ...

  9. ALTER DATABASE

    在数据库中添加或删除文件和文件组.也可用于更改文件和文件组的属性,例如更改文件的名称和大小.ALTER DATABASE 提供了更改数据库名称.文件组名称以及数据文件和日志文件的逻辑名称的能力. AL ...

最新文章

  1. Redis-Cluster实战--4.官方安装(含视频)
  2. 西门子Step7找不到有效授权的解决方法
  3. 潘天佑博士2014微软学生夏令营演讲:如何培养领导力
  4. MTK平台的启动流程(secureboot)
  5. 为什么log4j的概念模型是错的--zlog的模型简介
  6. Chapter 3 Phenomenon——19
  7. 图Graph--拓扑排序(Topological Sorting)
  8. python图像增强_【Tool】Augmentor和imgaug——python图像数据增强库
  9. 安装LR11,到执行产品配置时,停止不动了
  10. sql和python数据分析对比_Python数据分析神器Pandas与数据库查询语言SQL的对比
  11. R语言:ggplot2精细化绘图——以实用商业化图表绘图为例
  12. one stage 与two stage解释
  13. 程序员面试题分享,掌握八成便可BAT一试!
  14. Android HID触摸屏驱动怎么开发
  15. vs中开发web项目IIS Express支持局域网连接
  16. VC6连接Oracle10g
  17. 第二章 前端开发——JavaScript
  18. R语言绘制棒棒糖图(火柴杆图)
  19. ElasticSearch中Transient与Persistent的区别
  20. 【JMX】-----JMX概述

热门文章

  1. 2016年9月19日 总结
  2. 网工必备工具,你用过几个??
  3. matlab二维重建程序,matlab三维重建程序
  4. 解决错误:This application failed to start because no Qt platform plugin 和 没有Qt Designer的问题
  5. 多元正态分布的条件分布与边缘分布
  6. ibatis mysql iterate_ibatis中动态语句的iterate标签
  7. 新萝卜家园 ghost xp sp3 电脑城稳定版 2012.05+
  8. Android手机从开机到APP启动经过的流程
  9. 16N60-ASEMI高压MOS管16N60
  10. Arduino sprintf函数的用法详解