作者:雨竹清风
有时候数据管理员需要将表空间设置为脱机状态,以进行数据库的维护。
这些情况包括:
1.在数据库处于open状态下移动数据文件。
2.在数据库处于open状态下恢复一个表空间或数据文件。
3.执行对表空间的脱机备份。
4.是一部分数据不可以访问,另一部分可以访问。
以下的表空间是不可以设为脱机状态:
1.系统表空间
2.上面有回滚/还原段的表空间
3.默认临时表空间
设置表空间脱机联机的示例如下:
1.为谨慎起见还是要先查询一下目前的状态。
SQL> select TABLESPACE_NAME,STATUS, CONTENTS from dba_tablespaces;
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
SYSTEM ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
SYSAUX ONLINE PERMANENT
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT
EXAMPLE ONLINE PERMANENT
FANLU ONLINE PERMANENT
LULU ONLINE PERMANENT
XIXI_TEMP ONLINE TEMPORARY
XUANXUAN ONLINE PERMANENT
已选择10行。
从结果看XUANXUAN表空间的状态为ONLINE。为获取表空间从v$datafile来获取其信息。
SQL> col name for a61
SQL> select file#,name ,status from v$datafile;
FILE# NAME STATUS
---------- ------------------------------------------------------------- -------
1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF SYSTEM
2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF ONLINE
3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF ONLINE
4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF ONLINE
5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF ONLINE
6D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN.DBF ONLINE
7 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\FANLU_TABLESPACE.DBF ONLINE
8 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XIXI.DBF ONLINE
已选择8行。
2.使用命令alter tablespace 表空间名 offline;将xuanxuan表空间进行脱机。
SQL> alter tablespace xuanxuan offline;
表空间已更改。
3.查询是否已经成功
SQL> select TABLESPACE_NAME,STATUS, CONTENTS from dba_tablespaces;
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
SYSTEM ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
SYSAUX ONLINE PERMANENT
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT
EXAMPLE ONLINE PERMANENT
FANLU ONLINE PERMANENT
LULU ONLINE PERMANENT
XIXI_TEMP ONLINE TEMPORARY
XUANXUAN OFFLINE PERMANENT
已选择10行。
SQL> col name for a61
SQL> select file#,name ,status from v$datafile;
FILE# NAME STATUS
---------- ------------------------------------------------------------- -------
1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF SYSTEM
2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF ONLINE
3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF ONLINE
4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF ONLINE
5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF ONLINE
6D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN.DBF OFFLINE
7 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\FANLU_TABLESPACE.DBF ONLINE
8 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XIXI.DBF ONLINE
已选择8行。
从结果看已经置为脱机。
4.对数据库进行维护工作。
5.维护工作结束后将表空间设为联机状态。
SQL> alter tablespace xuanxuan online;
表空间已更改。
6.查询是否成功。
SQL> select TABLESPACE_NAME,STATUS, CONTENTS from dba_tablespaces;
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
SYSTEM ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
SYSAUX ONLINE PERMANENT
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT
EXAMPLE ONLINE PERMANENT
FANLU ONLINE PERMANENT
LULU ONLINE PERMANENT
XIXI_TEMP ONLINE TEMPORARY
XUANXUAN ONLINE PERMANENT
已选择10行。
SQL> col name for a61
SQL> select file#,name ,status from v$datafile;
FILE# NAME STATUS
---------- ------------------------------------------------------------- -------
1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF SYSTEM
2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF ONLINE
3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF ONLINE
4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF ONLINE
5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF ONLINE
6 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN.DBF ONLINE
7 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\FANLU_TABLESPACE.DBF ONLINE
8 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XIXI.DBF ONLINE
已选择8行。
从结果看已经设为了联机状态。