重建回滚表空间

php中文网
发布: 2016-06-07 16:11:14
原创
1600人浏览过

因为意外原因(掉电,人为杀死进程)导致回滚段中的数据没有提交,回滚段中保留大量数据无法去除,我想到的办法就是重建表空间。当Oracle中当读写大批量数据时候,如果不及时提交任务,会导致回滚表空间的迅速增加,回滚表空间会一直增大,而不自动释放它占

因为意外原因(掉电,人为杀死进程)导致回滚段中的数据没有提交,回滚段中保留大量数据无法去除,我想到的办法就是重建表空间。当oracle中当读写大批量数据时候,如果不及时提交任务,会导致回滚表空间的迅速增加,回滚表空间会一直增大,而不自动释放它占用的硬盘空间,(当然,几个小时后,系统会自动释放它自身的占用率,但不会释放它所占用的硬盘空间),这时,也可以通过重建表空间来解决。

1、重建回滚表空间方法,

思路:先新建回滚表空间,再重新定向到新建的回滚表空间,然后删除掉原来的回滚表空间。如果觉得有必要,可以再重建原来的表空间,删除新建的表空间。

-- 创建备用undo表空间

create undo tablespace undotbs2 datafile '/opt/app/oracle/oradata/orcl/undotbs02.dbf' size 100m

-- 切换undo表空间,使系统使用新建的回滚表空间

alter system set undo_tablespace=undotbs2 scope=spfile

--关闭服务

shutdown immediate

--重新启动服务

startup

-- 删除掉原来的混滚表空间

drop tablespace undotbs1 including contents and datafiles;

-- 创建原undo表空间

create undo tablespace undotbs1 datafile '/opt/app/oracle/oradata/orcl/undotbs01.dbf' size 1000m;

-- 切换undo表空间

alter system set undo_tablespace=undotbs1 scope=spfile;

-- 关闭重起并把备用undo表空间drop

shutdown immediate

startup

drop tablespace undotbs2 including contents and datafiles;

 

2、回滚段无法删除的处理

 

症状:

删除回滚段表空间(drop tablespace undotbs1 including contents)的时候报下面的错

ORA-01548: 已找到活动回退段'_SYSSMU1$',终止删除表空间

 

处理过程:

1 create undo tablespace undotbs2 datafile '/opt/app/oracle/oradata/orcl/undotbs02.dbf' size 100m;

精美淘宝客单页面 zblog模板
精美淘宝客单页面 zblog模板

采用zblog修改的模板,简单方便,直接解压上传到空间即可使用,页面简单,适合SEO,导航,次导航,最新文章列表,随机文章列表全部都有,网站采用扁平结构,非常适用淘宝客类小站,所有文章都在根目录下。所有需要修改的地方在网页上各个地方都有标注说明,一切在网站后台都可以修改,无须修改任何程序代码,是新手的不二选择。后台登陆地址: 域名/login.asp用户名:admin (建议不要修改)密码:adm

精美淘宝客单页面 zblog模板 1
查看详情 精美淘宝客单页面 zblog模板

alter system set undo_tablespace=undotbs2;

drop tablespace undotbs1 including contents;(进行这部操作的时候会报下面的错):

ORA-01548: 已找到活动回退段'_SYSSMU1$',终止删除表空间

 

2 修改文件/opt/app/oracle/admin/orcl/pfile/init.ora.913201117448,如下:

undo_management=manual

undo_retention=10800

undo_tablespace=undotbs2

_CORRUPTED_ROLLBACK_SEGMENTS =(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)

3 启动服务

startup pfile=/opt/app/oracle/admin/orcl/pfile/init.ora.913201117448

4 删除表空间

drop tablespace undotbs1 including contents;

create undo tablespace undotBS1 datafile '/opt/app/oracle/oradata/orcl/undotbs01.dbf' size 1000m;

5 修改init.ora.913201117448,如下:

undo_management=auto

undo_retention=10800

undo_tablespace=undotBS1

#_CORRUPTED_ROLLBACK_SEGMENTS =(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)

6 关闭服务shutdown immediate,并且用下面的命令重新启动服务

startup pfile=/opt/app/oracle/admin/orcl/pfile/init.ora.913201117448

7 拷贝spfile文件,原先的spfile文件做好备份

create spfile='/opt/app/oracle/product/10.1.0/db_1/dbs/spfileorcl.ora' from pfile='/opt/app/oracle/admin/orcl/pfile/init.ora.913201117448'

8 关闭服务器shutdown immediate,重新启动服务器startup,删除新建表空间,即可。

drop tablespace undotbs2 including contents and datafiles;

select segment_name,status,tablespace_name from dba_rollback_segs;

SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
_SYSSMU1$ ONLINE UNDOTBS1
_SYSSMU2$ ONLINE UNDOTBS1
_SYSSMU3$ ONLINE UNDOTBS1
_SYSSMU4$ ONLINE UNDOTBS1
_SYSSMU5$ ONLINE UNDOTBS1
_SYSSMU6$ ONLINE UNDOTBS1
_SYSSMU7$ ONLINE UNDOTBS1
_SYSSMU8$ ONLINE UNDOTBS1
_SYSSMU9$ ONLINE UNDOTBS1
_SYSSMU10$ ONLINE UNDOTBS1

11 rows selected.

 

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号