博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
表空间与数据文件Offline,online的区别
阅读量:7037 次
发布时间:2019-06-28

本文共 3218 字,大约阅读时间需要 10 分钟。

首先明确,表空间与数据文件的关系: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恢复---

 

转载于:https://www.cnblogs.com/lvcha001/p/7827257.html

你可能感兴趣的文章
影评:《云图》:生命并非微不足道
查看>>
hibernate4之一对一关系映射(二)
查看>>
我的友情链接
查看>>
Android第五课 编译错误分析
查看>>
VS_远程调试
查看>>
博为峰Java技术题 ——JavaSE Java实现在不同编码之间进行文件转换
查看>>
Throws与Throw
查看>>
php趣味编程 - php求黑色星期五
查看>>
zabbix安装
查看>>
ELK之权限管理
查看>>
×_7_12_2013 I: Light on or off
查看>>
JIT
查看>>
巧用escalations限制Nagios报警次数 - [Nagios
查看>>
Entity SQL与LINQ TO Entity的本质区别
查看>>
python unittest 深入failfast及实际应用【示例】
查看>>
MSSQL中文排序规则设置
查看>>
30 个有关 Python 的小技巧
查看>>
CDN下nginx获取用户真实IP地址
查看>>
Jsp技术总结
查看>>
Sakai 11.x Build Failure
查看>>