oracle表空间文件脱机,Oracle管理表空间(七)--Oracle表空间与数据文件脱机的区别...

1、表空间与数据文件脱机的区别

对表空间进行offline时,oracle针对这个表空间生成检查点,刷新表空间中数据文件的相关事务。更新数据文件头SCN,数据文件SCN,文件终止SCN达到一致状态。当表空间被再ONLINE时,oracle会捕捉online时刻的SCN,更新上面各个位置的SCN,当然文件结束SCN号会置为无穷大,将数据文件都打开。

对单个数据文件做offline时,此时不会针对数据文件生成检查点,所以数据文件的终止SCN为无穷大,处于不一致状态。在v$recover_file视图中可以看到数据文件需要recover。要想将数据文件online,必须先对文件执行recover操作,然后进行online操作。

对于非归档模式下进行数据文件offline操作只能使用带有drop子句的命令:alter database datafile 5 offline drop。他不会物理删除文件的。归档模式下进行数据文件offline操作可以使用以下两种命令:alter database datafile 5 offline 或 alter database datafile 5 offline drop。

另外对于offline的数据文件,正常重新启动是不能对他进行recover的,因为它的状态是offline,数据库启动时是不检查offline文件的SCN是否一致的。所以启动后你仍然可以在v$recover_file视图中看到他,需要手工对他进行recover才能恢复。如果应用的联机日志已经switch掉,则要从归档中进行恢复。对于非归档模式如果没有归档,那么文件就只能一直处于recover状态。

注意:只能在open状态进行表空间脱机。

2、举例说明

1)system表空间不能offline ,正在使用的undo 不能offline,默认temporary tablespace不能offline。

2)表空间脱机时会在tablespace上生成检查点,下次online 不需要做恢复操作。

3)datafile offline 不生成检查点,在online 需要做recover。

09:26:34 SQL> alter tablespace system offline;

alter tablespace system offline

*

ERROR at line 1:

ORA-01541: system tablespace cannot be brought offline; shut down if necessary

9:29:06 SQL> alter tablespace undo_tbs01 offline;

alter tablespace undo_tbs01 offline

*

ERROR at line 1:

ORA-30042: Cannot offline the undo tablespace

——datafile offline 不生成检查点,在online 需要做recover

09:29:15 SQL> alter tablespace test offline;

Tablespace altered.

09:29:20 SQL> alter tablespace test online;

Tablespace altered.

21:13:36 SQL> alter database datafile 2 offline;

Database altered.

21:15:02 SQL> select file#,name ,checkpoint_change# from v$datafile_header;

FILE# NAME                                               CHECKPOINT_CHANGE#

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

1 /u01/app/oracle/oradata/prod/system01.dbf                     1624678

2 /u01/app/oracle/oradata/prod/users01.dbf                      1624804

3 /u01/app/oracle/oradata/prod/sysaux01.dbf                     1624678

4 /u01/app/oracle/oradata/prod/index01.dbf                      1624678

5 /u01/app/oracle/oradata/prod/example01.dbf                    1624678

6 /u01/app/oracle/oradata/prod/test01.dbf                       1624678

7 /u01/app/oracle/oradata/prod/undo_tbs01.dbf                   1624678

8 /u01/app/oracle/oradata/prod/test02.dbf                       1624678

9 /u01/app/oracle/oradata/prod/cuug01.dbf                       1624678

10 /u01/app/oracle/oradata/prod/lx01.dbf                         1624678

11 /u01/app/oracle/oradata/prod/perfstat01.dbf                   1624678

12 /u01/app/oracle/oradata/prod/lx02.dbf                         1624678

13 /u01/app/oracle/oradata/prod/lx03.dbf                         1624678

14 /u01/app/oracle/oradata/prod/rtbs01.dbf                       1624678

14 rows selected.

21:15:07 SQL> alter database datafile 2 online;

alter database datafile 2 recover datafile 2;  online

*

ERROR at line 1:

ORA-01113: file 2 needs media recovery

ORA-01110: data file 2: '/u01/app/oracle/oradata/prod/users01.dbf'

21:15:24 SQL>

Media recovery complete.

21:15:42 SQL> alter database datafile 2 online;

Database altered.

——offline immediate 立刻offline 不生成检查点,下次online需要recover

21:15:47 SQL> alter tablespace tests offline immediate;

Tablespace altered.

21:17:50 SQL> select file#,name ,checkpoint_change# from v$datafile_header;

FILE# NAME                                               CHECKPOINT_CHANGE#

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

1 /u01/app/oracle/oradata/prod/system01.dbf                     1624678

2 /u01/app/oracle/oradata/prod/users01.dbf                      1624887

3 /u01/app/oracle/oradata/prod/sysaux01.dbf                     1624678

4 /u01/app/oracle/oradata/prod/index01.dbf                      1624678

5 /u01/app/oracle/oradata/prod/example01.dbf                    1624678

6 /u01/app/oracle/oradata/prod/test01.dbf                       1624678

7 /u01/app/oracle/oradata/prod/undo_tbs01.dbf                   1624678

8 /u01/app/oracle/oradata/prod/test02.dbf                       1624678

9 /u01/app/oracle/oradata/prod/cuug01.dbf                       1624678

10 /u01/app/oracle/oradata/prod/lx01.dbf                         1624678

11 /u01/app/oracle/oradata/prod/perfstat01.dbf                   1624678

12 /u01/app/oracle/oradata/prod/lx02.dbf                         1624678

13 /u01/app/oracle/oradata/prod/lx03.dbf                         1624678

14 /u01/app/oracle/oradata/prod/rtbs01.dbf                       1624678

14 rows selected.

21:17:54 SQL> alter tablespace tests online;

alter tablespace tests online

*

ERROR at line 1:

ORA-01113: file 6 needs media recovery

ORA-01110: data file 6: '/u01/app/oracle/oradata/prod/test01.dbf'

21:18:19 SQL> recover tablespace tests;

Media recovery complete.

21:18:27 SQL> alter tablespace tests online;

Tablespace altered.

21:18:32 SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /disk1/arch/prod

Oldest online log sequence     6

Next log sequence to archive   8

Current log sequence           8

CUUG

更多oracle视频教程请点击:http://crm2.qq.com/page/portalpage/wpa.php?uin=800060152&f=1&ty=1&aty=0&a=&from=6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值