24.oracle表空间的状态?

1.前言

  对于oracle来说,表空间有四种状态,在线(online),离线(offline),只读(read only),读写(read write),我们可以通过如下命令进行查询

SQL> select a.name as tablespace,b.file#,b.status,b.name as datafile from v$tablespace a,v$datafile b where a.ts#=b.ts#;

TABLESPACE          FILE# STATUS           DATAFILE
-------------------- ---------- -------------- --------------------
SYSTEM                  1 SYSTEM           /data/oracle/oradata/orcl/system01.dbf

SYSAUX                  2 ONLINE           /data/oracle/oradata/orcl/sysaux01.dbf

UNDOTBS1                3 ONLINE           /data/oracle/oradata/orcl/undotbs01.dbf

USERS                   4 ONLINE           /data/oracle/oradata/orcl/users01.dbf

EXAMPLE                 5 ONLINE           /data/oracle/oradata/orcl/example01.dbf

TEST                    6 ONLINE           /data/oracle/oradata/orcl/test01.dbf

SHW                     7 ONLINE           /data/oracle/oradata/orcl/shw01.dbf

2.offline表空间的事项:

  • system表空间不能离线
  • undo tablespace表空间不能离线
  • temporary tablespace表空间不能离线

3.用法

  alter tablespace …offline 后面可跟参数 normal/temporary/immediate

1 normal 是offline的默认方式
2 normal 对表空间的所有数据文件执行检查点操作,online表空间时不需要介质恢复。
3 normal 方式离线表空间时,不应该有写错误,表空间所有文件应该online状态。
offline temporary 表空间时,如果表空间中没有offline的数据文件,则online该表空间时不需要介质恢复。
2 offline temporary 表空间时,不会对已经offline的数据文件执行检查点操作,仅仅对online的数据文件执行检查点操作
3 offline temporary 表空间时,对于离线表空间之前已经offline的数据文件,则online该表空间时,offline数据文件需要介质恢复。
1 offline immediate  不会对表空间的任何文件执行检查点操作。
2 online 表空间时需要对所有数据文件进行 media recovery
3 offline immediate 需要数据库日志模式为归档

  如果必须离线表空间,推荐使用offline normal 方式离线该表空间,因为该表空间online时不需要执行介质恢复。

说明:

  在线:

  当表空间的状态是online时,才允许访问该表空间中的数据,如果表空间不是onLine状态,可以使用alter tablespace  表空间名  online来进行修改;

 离线:

  当表空间的状态是offline时,不允许访问该表空间中的数据,例如像表空间的表也是无法进行操作的,这时可以对表空间进行脱机备份,可以用对应的应用程序进行升级和维护等。

 只读:

  当表空间的状态是read only时,虽然可以访问表空间的数据,但是只限于读取而不能进行任何的更新和删除操作,目录是为了保证表空间的数据安全。如果表空间不是read only状态时,可以使用alter tablespace语句将其改为read only,不过在修改其状态之前,需要注意如下事项:

  • 表空间必须处于online状态
  • 表空间不能包含任何事务的回退段
  • 表空间不能处于在线的数据库备份期间

 读写

  当表空间的状态为read write时,可以对表空间进行正常访问,包括对表空间的数据进行查询,更新和操作。

  alter tablespace tablespace_name read write;

  修改表空间的状态为read write,也需要保证表空间处于online状态。 

  

原文地址:https://www.cnblogs.com/zmc60/p/15707745.html