表空间状态管理(online和offline)

发布时间 2023-06-21 15:50:59作者: 数据库小白(专注)

表空间状态管理(online和offline)

表空间状态

  • online
  • offline
  • read only
  • read write
    表空间的状态属性主要有在线(online),离线(offline),只读(read only)和读写(read write)这四种,其中只读与读写状态属于在线状态的特殊情况,通过设置表空间的状态属性,我们可以对表空间的使用进行管理。

在线(online)

当表空间的状态为online时,才允许访问该表空间中的数据。
如果表空间不是online状态的,可以使用alter tablespace语句将其状态修改为online,语句如下

alter tablespace tablespace_name online;

离线(offline)

当表空间的状态为offline时,不允许访问该表空间中的数据。例如向表空间中创建表或者读取表空间的表等数据操作都将无法进行,这时可以对表空间进行脱机备份也可以对应用程序进行升级和维护等。
如果表空间不是offline状态的,可以使用alter tablespace语句将其状态修改为offline,其语句如下:

alter tablespace tablespace_name offline parameter;

其中,parameter表示将表空间切换为offline状态时可以使用的参数。主要可以应用如下的几个参数。

normal
temporary
immediate
for recover

适用场景

  • 脱机备份
  • 应用程序进行升级和维护

只读(read only)

当表空间的状态为read only时,虽然可以访问表空间的数据,但范文仅仅仅限于阅读,而不能进行任何的更新和删除操作,目的是为了保证表空间的数据安全。
如果表空间不是read only状态的,可以使用ater tablespace语句将其状态修改为read only,其语句的形式如下:

alter tablespace tablespace_name read only;

不过,将表空间的状态修改为read only之前,需要注意如下的事项:

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

读写(read write)

当表空间的状态为read write时,可以对表空间进行正常访问,包括对表空间中的数据进行查询,更新和操作。
如果表空间不是read write状态的,可以使用alter tablespace语句将其状态修改为read write,语句形式如下:

alter tablespace tablespace_name read write;

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

/查看表空间的状态
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
MYTEMP ONLINE
TEMPGROUP ONLINE
TEMPGROUP02 ONLINE
MYBIGSPACE ONLINE
BLOCKSPACE ONLINE
INSPUR ONLINE
TESTSPACE ONLINE
TEST ONLINE

//修改表空间的状态
SQL> alter tablespace myspace offline;