首页 > 其他 > 详细

测试使数据文件offline的情景

时间:2015-12-30 07:01:10      阅读:233      评论:0      收藏:0      [点我收藏+]
/*测试使数据文件offline的情景*/
--首先,有测试表空间的两个测试数据文件
select d.tablespace_name,d.file_name,d.online_status from dba_data_files d where d.tablespace_name = 'TEST';

TABLES FILE_NAME                                          ONLINE_STA
------ -------------------------------------------------- ----------
TEST   +DATA/orcl/datafile/test.270.899110799             ONLINE
TEST   +DATA/orcl/datafile/test.275.899722189             ONLINE

--测试1,offline表空进
alter tablespace test offline;


TABLES FILE_NAME                                          ONLINE_STA
------ -------------------------------------------------- ----------
TEST   +DATA/orcl/datafile/test.270.899110799             OFFLINE
TEST   +DATA/orcl/datafile/test.275.899722189             OFFLINE

变回去:
alter tablespace test online;

TABLES FILE_NAME                                          ONLINE_STA
------ -------------------------------------------------- ----------
TEST   +DATA/orcl/datafile/test.270.899110799             ONLINE
TEST   +DATA/orcl/datafile/test.275.899722189             ONLINE

--测试2,offline数据文件
alter database datafile '+DATA/orcl/datafile/test.270.899110799' offline;  --offline数据文件,要用数据文件的全路径

TABLES FILE_NAME                                          ONLINE_STA
------ -------------------------------------------------- ----------
TEST   +DATA/orcl/datafile/test.270.899110799             RECOVER
TEST   +DATA/orcl/datafile/test.275.899722189             ONLINE

直接offline数据文件,数据文件竟然不是变offline,而是recover!!

那就给他recover吧
recover datafile 6;

TABLES FILE_NAME                                          ONLINE_STA
------ -------------------------------------------------- ----------
TEST   +DATA/orcl/datafile/test.270.899110799             OFFLINE
TEST   +DATA/orcl/datafile/test.275.899722189             ONLINE

这才变成了offline。
变回去:
alter database datafile '+DATA/orcl/datafile/test.270.899110799' online;

TABLES FILE_NAME                                          ONLINE_STA
------ -------------------------------------------------- ----------
TEST   +DATA/orcl/datafile/test.270.899110799             ONLINE
TEST   +DATA/orcl/datafile/test.275.899722189             ONLINE

那么,问题来了,offline数据文件,为什么数据文件要先recover之后才会offline呢,为什么要recover呢?
自己的思考:
1.recover做了什么:就是把旧的数据给搞到最新。
2.数据文件是最新的么:知道online redo log吗?
3.那么,需要recover的操作,只是从临时存储数据文件中检查有没有写入的数据,并写入。并不一定有。
所以,recover状态,是可以理解的。
--测试3 数据文件所在磁盘不可读写
修改共享磁盘权限为root:root

GROUP_NUMBER NAME                 STATE       TYPE     TOTAL_MB    FREE_MB USABLE_FILE_MB
------------ -------------------- ----------- ------ ---------- ---------- --------------
           0 DATA                 CONNECTED   EXTERN          0          0              0
           0 FRA                  CONNECTED   EXTERN       3072       2730           2730
还是可以建表!!

SQL> create table dxmy1(id number) tablespace test;

Table created.

SQL> insert into dxmy1 values(1);

1 row created.

SQL> commit;

Commit complete.
包括修改数据文件权限,也没有使数据文件offline。

--测试4 数据文件路径fs满
 建了个表空间,把数据文件放到boot路径下了(只是因为boot下空间小,容易撑爆)
[root@single1 boot]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        38G   15G   21G  43% /
tmpfs           495M  227M  268M  46% /dev/shm
/dev/sda1       388M  384M     0 100% /boot

DXMYT    /boot/dxmy1.dbf    ONLINE
DXMYT    /boot/dxmy2.dbf    ONLINE

此时表空间使用率为53.13%

原来数据文件所在盘若爆满了,只要数据文件还有空间,数据文件就不会offline。(比如创建数据文件的时候是1G,数据才300M,如果这时候该路径满了,数据库还是可以的。)



测试使数据文件offline的情景

原文:http://blog.csdn.net/ghostliming/article/details/50431344

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!