首先明确,表空间与数据文件的关系:Oracle数据库表空间有两种,一种smallfile小文件表空间(默认),另一种bigfile大文件表空间;

默认表空间与数据文件的关系:允许一对多的处理方式,一个表空间可以有多个数据文件,一个数据文件只能存在一个表空间内;

而bigfile表空间,是一对一的关系,一个表空间对应一个数据文件;

SQL> create bigfile tablespace big_tbs2  datafile '/u01/app/big02.dbf' size 5m autoextend on maxsize 4097g;

--Yes or no查询是否是bigfile表空间

SQL> select tablespace_name,bigfile from dba_tablespaces;

TABLESPACE_NAME                BIG ------------------------------ --- SYSTEM                         NO

--本次实验测试均采用默认smallfile表空间管理,测试;

SQL> select file_id,TABLESPACE_NAME,ONLINE_STATUS from dba_data_files where tablespace_name='YA';

FILE_ID TABLESPACE ONLINE_ ---------- ---------- -------          7 YA         ONLINE

---OFFLINE,ONLINE  操作有什么意义呢?    --可以维护操作,表空间数据文件的迁移,改名称;

alter tablespace ya offline;

SQL> host cp /u01/app/oracle/ya.dbf /picclife/app/hukou/data/ya.dbf

SQL> alter database rename file '/u01/app/oracle/ya.dbf' to '/picclife/app/hukou/data/ya.dbf';

SQL> alter tablespace ya online;

——————————————————————**********以上操作表空间******以下数据文件---------

SQL> alter database datafile 7 offline;

SQL> host cp /picclife/app/hukou/data/ya.dbf /picclife/app/hukou/data/ya1.dbf

SQL> alter database rename file '/picclife/app/hukou/data/ya.dbf' to '/picclife/app/hukou/data/ya1.dbf';

SQL> recover datafile 7 ;
SQL> alter database datafile 7 online;

细心的朋友已经发现了,表空间不需要recover;

细节衍生:---为了快速查询--先查询表空间对应的数据文件ID号;

SQL> select FILE_ID,TABLESPACE_NAME from dba_data_files where TABLESPACE_NAME='YA';

FILE_ID TABLESPACE ---------- ----------          7 YA

SQL> alter system checkpoint;

SQL> select FILE#,CHECKPOINT_CHANGE#,STATUS from v$datafile where file# in(6,7,8);

FILE# CHECKPOINT_CHANGE# STATUS
---------- ------------------ -------
         6             466041 ONLINE
         7             466041 ONLINE
         8             466041 ONLINE      ---操作执行完全检查点后,统一;控制文件记录数据文件的SCN号

SQL> select FILE#,CHECKPOINT_CHANGE#,STATUS from v$datafile_header where file# in(6,7,8);

FILE# CHECKPOINT_CHANGE# STATUS                 ---数据文件头部记录自身的SCN号

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

6             466041 ONLINE

7             466041 ONLINE

8             466041 ONLINE

---执行操作:A 表空间OFFLINE ,ONLINE;

--再次查询对比:
SQL> alter tablespace ya offline;

v$datafile              控制文件记录自身的SCN

6             466041 ONLINE
         7             466122 OFFLINE
         8             466041 ONLINE

v$datafile_header  数据文件头部记录自己的

6             466041 ONLINE
         7                  0 OFFLINE
         8             466041 ONLINE

SQL> alter tablespace ya online;

v$datafile              控制文件记录自身的SCN

6             466041 ONLINE
         7             466231 ONLINE
         8             466041 ONLINE

v$datafile_header  数据文件头部记录自己的

6             466041 ONLINE
         7             466231 ONLINE
         8             466041 ONLINE

----------------------------------------------------表空间状态变化,在表空间脱机时,CKPT进程会通知dbwr进程将表空间对应的脏块,写出,写入数据文件;
因此,在表空间Online的时候不需要redo恢复,并且数据文件头部scn冻结-------------------------------------

select * from scott.emp                      ---------------查询表空间存储的表将出现如下报错
                    *
ERROR at line 1:
ORA-00376: file 4 cannot be read at this time

--------------执行操作B : 数据文件offline;

7             466353 ONLINE

SQL> alter database datafile 7 offline;

v$datafile              控制文件记录自身的SCN

6             466353 ONLINE
         7             466353 RECOVER
         8             466353 ONLINE

v$datafile_header  数据文件头部记录自己的

6             466353 ONLINE
         7             466353 OFFLINE
         8             466353 ONLINE

recover datafile 7;

v$datafile              控制文件记录自身的SCN

6             466353 ONLINE
         7             466384 OFFLINE
         8             466353 ONLINE

v$datafile_header  数据文件头部记录自己的

6             466353 ONLINE
         7             466384 OFFLINE
         8             466353 ONLINE

alter database datafile 7 online;

---------------数据文件offline,控制文件、数据文件头部记录的SCN号,停留最后一刻,类似存储掉电,所以数据文件在线需要应用redo恢复---

表空间与数据文件Offline,online的区别的更多相关文章

  1. Oracle的表空间和数据文件

    一. 概念 表空间:是一个或多个数据文件的逻辑集合 表空间逻辑存储对象: 永久段-->如表与索引 临时段-->如临时表数据与排序段 回滚段-->用于事物回滚或闪回内存的撤销数据 表空 ...

  2. 管理表空间和数据文件<六>

    数据库管理 -- 管理表空间和数据文件  介绍 表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库则是存放在表空间中,表 空间由一个或多个数据文件组成. 数据库 ...

  3. 【转】Oracle 表空间与数据文件

    --============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或 ...

  4. 【基础】Oracle 表空间和数据文件

    多个表空间的优势:1.能够将数据字典与用户数据分离出来,避免由于字典对象和用户对象保存在同一个数据文件中而产生的I/O冲突2.能够将回退数据与用户数据分离出来,避免由于硬盘损坏而导致永久性的数据丢失3 ...

  5. RMAN数据库恢复之恢复表空间和数据文件

    执行表空间或数据文件恢复时,数据库既可以是MOUNT状态,也可以是OPEN状态.1.恢复表空间在执行恢复之前,如果被操作的表空间未处理OFFLINE状态,必须首先通过ALTER TABLESPACE… ...

  6. oracle维护表空间和数据文件

    1:重要参考 wiki 2: oracle doc 表空间参考 3:来自dba-oracle的参考 26,27,28,29 一:oracle 表空间概念 表空间是联系数据库的物理磁盘(数据文件)和逻辑 ...

  7. 十四、oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  8. ORACLE - 管理表空间和数据文件

    ORACLE表空间是一个逻辑分区,一个数据文件只能属于一个表空间,一个表空间可以拥有多个数据文件. 一般情况下,如果一个实例分配给多个应用使用,需要创建不同的表空间,每个用户使用自己的表空间. 一.表 ...

  9. oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

随机推荐

  1. java数据库编程之数据库的设计

    第一章:数据库的设计 1.1:为什么需要规范数据库的设计 1.1.1:什么是数据库设计 数据库设计就是将数据中的数据实体及这些数据实体之间的关系,进行规范和结构的过程. 1.1.2:数据库设计非常重要 ...

  2. 委托、事件、Observer观察者模式的使用解析一

    一.前言 委托.事件得理论我就不解释了,不会的时候觉得很难,会了发现挺简单的,回头想想其实在JavaScript中常常用到,譬如:setTimeout()就是典型的委托. 二.传统编码方式 传统的调用 ...

  3. C#中的原子操作Interlocked,你真的了解吗?

    阅读目录 背景 代码描述 越分析越黑暗 结语 一.背景 这个标题起的有点标题党的嫌疑[捂脸],这个事情的原委是这样的,有个Web API的站点在本地使用Release模式Run的时候出现问题,但是使用 ...

  4. wampserver里面出现403错误的问题解决方法

    今天再装wampserver的时候,不能进入localhost和phpmyadmin,提示403错误,我自己是win10系统,已通过以下方法解决了: 1.第一个问题,就是wampserver没有切换到 ...

  5. 结束《Java编程思想》(Thinking in Java)自学的读后感(2017.10.15)

    首先划重点:这是一本Java的入门书. 自学前需要的条件:已经具备基本的计算机基础. 1)已经对一种编程语言比较熟悉: 2)有过四年计算机专业学习,或者三年以上的软件开发经验, 自学的方法: 1)完全 ...

  6. win10 uwp MVVM 轻量框架

    如果在开发过程,遇到多个页面之间,需要传输信息,那么可能遇到设计的问题.如果因为一个页面内包含多个子页面和多个子页面之间的通信问题找不到一个好的解决方法,那么请看本文.如果因为ViewModel代码越 ...

  7. Quartz格式设置说明

    这些星号由左到右按顺序代表 :     *    *     *     *    *     *   *                                             格式 ...

  8. mb_substr函数

    定义和用法 mb_substr() 截取字符串中指定长度字符 注:常用于中文截取,可以避免截取时候出现乱码,即截取半个字符的情况. 类似函数 substr(),iconv_substr() 语法 mb ...

  9. IntelliJ IDEA 2016.2激活

    激活码 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lI ...

  10. Kotlin——最详细的环境搭建

    众所周知,Kotlin出来已经有一段时间了.Kotlin有着众多优势,不管是用于Android开发中,还是Java开发,都能缩减很大的代码量,大大提高了工作效率.而小生本人也是才从忙碌的个工作中抽身出 ...