ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 表空间的offline,online

表空间的offline,online

原创 Linux操作系统 作者:pingley 时间:2012-03-15 09:51:53 0 删除 编辑
表空间的offline,online
一个通过把一个表空间offline,online 来变更表空间的可用性。变更表空间可用性的前提是数据库
处于open 状态.并且用户具有alter tablespace 或者manage tablespace 的系统特权.
在一下情况下你可能希望把一个表空间offline。
1、执行offline 表空间备份。
2、当运用程序正在升级或者维护的时候,把与该运用程序相关的表空间暂时的offline 变成不可用。
3、当重命名或者重定位一个表空间数据文件。
4、使数据库的一部分表空间不可用,其余的可以正常访问。
当一个表空间offline 的时候,表空间中所有的数据文件都会offline。但是以下表空间不能offline。
1、system 表空间。
2、undo 表空间。
3、临时 表空间。
当一个表空间offline 的时候,用户不能访问其中的对象。如果要offline 的表空间是某些用户的
默认表空间,建议给用户临时分配一个其他表空间。
表空间offline 的选项
normal
如果表空间数据文件没有任何的错误可以正常的offline。写入错误导致该表空间所有的数据文件
都不能offline。当使用normal 选项offline 的时候会产生一个检查点。默认的offline方式是normal。
temporary
一个表空间可以临时的offline。即使一个或者多个数据文件遇到了写错误。将会对没有offline的
数据文件offline,并执行一个检查点。如果没有数据文件脱机,使用temporary 选项在表空间online
的时候不需要使用介质恢复。如果有数据文件因为写错误而脱机,在表空间online 的时候需要执行
介质恢复。
immediate
表空间将会立即的offline。不会产生检查点。当使用immediate 选项的时候,在表空间online 的
时候需要执行介质恢复。如果数据库处于noarchivelog 模式将不能使用该选项。
把表空间online。
可以把一个offline 的表空间online。以便其中存放的对象能够为用户所访问。当你执行了不干净
的offline 表空间的时候,在表空间online 的时候需要执行介质恢复。然而如果online不成功
将会返回一个错误。
先创建一个表空间用于测试
SQL> create tablespace data datafile '/opt/oracle11g/oradata/data.bdf' 
  2  size 10M
  3  extent management local
  4  segment space management auto;
Tablespace created.
查看刚才创建的表空间的状态。
QL> select name,creation_time,status
  2 from V$datafile;
NAME                                               CREATION_ STATUS
-------------------------------------------------- --------- -------
/opt/oracle11g/oradata/oracl/system01.dbf          22-FEB-12 SYSTEM
/opt/oracle11g/oradata/oracl/sysaux01.dbf          22-FEB-12 ONLINE
/opt/oracle11g/oradata/oracl/undotbs01.dbf         22-FEB-12 ONLINE
/opt/oracle11g/oradata/oracl/users01.dbf           22-FEB-12 ONLINE
/opt/oracle11g/oradata/tbs.dbf                     13-MAR-12 ONLINE
/opt/oracle11g/oradata/data.bdf                    14-MAR-12 ONLINE
把刚才创建的data表空间 offline。
SQL> alter tablespace data offline normal;
Tablespace altered.
上面操作的结果。
SQL>  select name,creation_time,status
  2  from V$datafile
  3  where status='OFFLINE';
NAME                                               CREATION_ STATUS
-------------------------------------------------- --------- -------
/opt/oracle11g/oradata/data.bdf                    14-MAR-12 OFFLINE
把offline 的那个表空间online.
SQL> alter tablespace data online;
Tablespace altered.
SQL> select name,creation_time,status
  2  from V$datafile
  3  /                 
NAME                                               CREATION_ STATUS
-------------------------------------------------- --------- -------
/opt/oracle11g/oradata/oracl/system01.dbf          22-FEB-12 SYSTEM
/opt/oracle11g/oradata/oracl/sysaux01.dbf          22-FEB-12 ONLINE
/opt/oracle11g/oradata/oracl/undotbs01.dbf         22-FEB-12 ONLINE
/opt/oracle11g/oradata/oracl/users01.dbf           22-FEB-12 ONLINE
/opt/oracle11g/oradata/tbs.dbf                     13-MAR-12 ONLINE
/opt/oracle11g/oradata/data.bdf                    14-MAR-12 ONLINE

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-718605/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    715738