oracle9i日常维护之undo表空间切换

  今天在检查oracle备份结果时,观察到磁盘空间严重不足(本来磁盘空间就紧张,

  公司服务器不肯升级硬件:L),

  查看库的表空间使用情况,发现UNDO表空间的使用到15G

  于是,决定将切换一个新的UNDO表空间

  如下步骤首先查看系统参数查看正在使用的表空间是哪个

  SQL> show parameter undo;

  NAME TYPE VALUE

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

  undo_management string AUTO

  undo_retention integer 900

  undo_tablespace string undotbs1

  新建UNDO表空间

  create undo tablespace undotbs2 datafile

  '/opt/app/oracle/oradata/prod/undotbs02.dbf'

  size 1024m autoextend on max size 8192M;

  切换操作:

  alter system set undo_tablespace='undotbs2' scope=both;

  这时候可以将原来的表空间OFFLINE然后DROP掉:

  在做之前先看看是否有大的事物在执行:

  SQL> select count(*) from v$transaction;

  COUNT(*)

  ----------

  0

  在系统很空闲的时候做事很好的:

  alter tablespace undotbs1 offline;

  drop tablespace undotbs1;

  然后手工删除物理数据文件。(腾出了10多G的空间O(∩_∩)O哈哈:victory:~)

  如果不ofline的话,是删除不掉的,虽然数据字典里面被删除了,但是系统进程还在访问UNDOTBS1数据文件

  所以资源没有释放当你查看磁盘空间(df -TH)的时候并没有释放空间。

  在次确认切换完成结果:

  SQL> show parameter undo;

  NAME TYPE VALUE

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

  undo_management string AUTO

  undo_retention integer 900

  undo_tablespace string undotbs2

  SQL> select segment_name,tablespace_name from dba_undo_extents;

  SEGMENT_NAME TABLESPACE_NAME

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

  _SYSSMU20$ UNDOTBS2

  _SYSSMU20$ UNDOTBS2

  _SYSSMU19$ UNDOTBS2

  _SYSSMU19$ UNDOTBS2

  _SYSSMU18$ UNDOTBS2

  _SYSSMU18$ UNDOTBS2

  _SYSSMU17$ UNDOTBS2

  _SYSSMU17$ UNDOTBS2

  _SYSSMU17$ UNDOTBS2

  _SYSSMU16$ UNDOTBS2

  _SYSSMU16$ UNDOTBS2

  _SYSSMU15$ UNDOTBS2

  _SYSSMU15$ UNDOTBS2

  _SYSSMU14$ UNDOTBS2

  _SYSSMU14$ UNDOTBS2

  _SYSSMU13$ UNDOTBS2

  _SYSSMU13$ UNDOTBS2

  _SYSSMU12$ UNDOTBS2

  _SYSSMU12$ UNDOTBS2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值