电脑教程中文网
首页  动态网站建设学习 程序  笑话  论坛 娱乐  交友 ADSL  峄城  成功者
中文名:电脑教程中文网,收集了大量的电脑教程! 编程技术文档 游戏开发 笑话站暂时关闭 设为首页
网页设计 HTML | Dreamweaver | CSS | Firework | FrontPage WEB开发 ASP | JSP | PHP | .NET | CGI | JS | VBS | XML | IIS6 | Apache | PWS
程序设计 Java | C++ |VC++ | C# | Delphi | VB | C语言 | 汇编 | Pascal | Perl 数据库 MSSQL | MySQL | Access | VF | Oracle | DB2 | SYBASE |
办公软件 Word | Excel | WPS | PowerPoint 动画平面 Photoshop | ACDSee | 3Dmax | Flash | Coreldraw |
操作系统 Windows 2000 | Windows XP | Windows 2003 | SCO Unix | Windows Vista | unix、Linux | 综合| 服务器 | 系统安全| 黑客技术
其  他 UltraDev | DOS | UML | PWS | Powerbuilder | 开发心得 | 设计理念 | 病毒库 | 其他 | LightTPD (分类排序给您带来不便请谅解)
推  荐: Java文档500篇》《ASP.NET与相关数据库技术高级指南》《TC图形函数详解》《C函数速查手册》《C语言编程宝典之一》《MFC深入浅出》《黑客零起点》《VC++ 编程指南》《JScript 用户指南》 《CSS教程宝典》《Microsoft Jet SQL 参考》《delphi技巧集合》《MySQL 4.1.0 中文参考手册》《MySQL中文手册
【导航】 您现在的位置 : 首页 - 数据库教程 - 《数据库综合技术文档0803期》- biti_rainy回滚段的深入研究--(一些有用的语句)

biti_rainy回滚段的深入研究--(一些有用的语句)

日期:2008-3-16 20:42:21 作者:cyco008 人气:     来源:网络




--如果你发现有回滚段的数据文件丢失或者损坏了,而此时的数据库是处于打开的状态下并且在运行,就千万不要关闭它,因为在大多数的情况下,打开的
--时候比关闭的时候好解决问题一些。


--创建撤销表空间
CREATE SMALLFILE UNDO TABLESPACE "ROLLBACK" DATAFILE 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ALASKA\rollback' SIZE 50M REUSE autoextend on


--创建手动回滚段
CREATE PUBLIC ROLLBACK SEGMENT "RBS1" TABLESPACE "RBS" STORAGE (INITIAL 1M NEXT 1M OPTIMAL 8M MINEXTENTS 8 MAXEXTENTS UNLIMITED )
ALTER ROLLBACK SEGMENT "RBS1" ONLINE


--查看所有的回滚段,shrinks很大,可以认为回滚段设置太小或者optimal设置太小;waits太大,是回滚段个数少
select a.usn,b.segment_name,a.rssize "大小",a.waits,a.wraps "环绕次数",a.shrinks "回缩次数" from v$rollstat a,dba_rollback_segs b where a.usn=b.segment_id;

--指定事务使用哪些回滚段
set transaction use rollback segment XXX;

--Extent的使用从一个跨越到另一个的次数
select usn,wraps from v$rollstat;

--假设USN为n,则回滚段头class为11+2n,回滚段块为12+2n
select class,count(*) from x$bh where class>10 group by class;

--回滚段不能越过未提交的事务extent而循环使用,这时候就须要扩展了。在扩展后,是要回缩的

--根据flashback功能的需要来设定undo_retention的时间长度(在被覆盖前保留的最长时间,秒)

--修改文件/opt/..../admin/pfile/init.ora.162007221035,如下:
undo_management=manual
undo_retention=10800
undo_tablespace=undotBS2
_CORRUPTED_ROLLBACK_SEGMENTS=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$) --(注:允许在rollback segments损坏的情况下启动数据库)
_allow_resetlogs_corruption=true --(注:允许在数据库文件SCN不一致的情况下启动数据库)

--删除回滚段
alter rollback segment rbs1 offline;
drop rollback segment rbs1;
--经过offline操作仍然是online,说明回滚段内有活动的事务,如果状态为pending offline表示很快就会offline
select segment_name ,xacts active_TX,v.status from v$rollstat v,dba_rollback_segs where tablespace_name='HHH' and segment_id=usn;
--查询哪些用户占用了回滚段
select s.sid,s.serial#,s.username,r.name rollback from v$session s,v$transaction t,v$rollname r where r.name in ('','') and s.taddr=t.addr and t.xidusn=r.usn;
--通知用户自己回滚或提交,不能做到的话就强关它
alter system kill session ',';

--删除损坏的undotbs1表空间,需要提醒的是,在删除损坏的重做表空间时,一定要先offline,否则注释掉隐含参数后,启动就会出现下面的情况。
--ORA-01092: ORACLE instance terminated. Disconnection forced
SQL> alter tablespace undotbs1 offline normal;
SQL> drop tablespace UNDOTBS1 including contents and datafiles;

--查看回滚段头和回滚段块的争用,如果严重增加回滚段个数和增大回滚段大小
select * from v$waitstat where class like 'undo%';

--查询当前某个session的事所使用的回滚段大小
select b.sid,a.xidusn,a.used_ublk from v$transaction a,v$sessio
n b where a.addr=b.taddr;

--查询到底是什么session阻塞了别的session,引发锁等待(RDBMS\Admin\utllockt.sql更强大)
select username,v$lock.sid,trunc(id1/power(2,16)) rbs,bitand(id1,to_number('ffff','xxxx'))+0 slot,id2 seq,lmode,request from v$lock,v$session where v$lock.type='TX' and v$lock.sid=v$session.sid and v$session.username=user;



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2187821


转自CLDE.NET


本文由CLDE.NET原创或整理(收集),如您需转载,请保留一下链接,谢谢!


下一篇:Oracle中password file的作用及说明
※视频教程※
ASP入门到精通视频教程
西安电科大JSP视频教程
photoshop cs2视频教程
flash动画设计师视频教程
Dreamweaver视频教程
VB从入门到精通视频教程
 
 


网站首页 - 友情链接 - 公司简介 - 联系方式 - 广告投放 - 客户服务 - 错误报告 - 免责声明 - About us
CLDE.NET电脑教程中文网版权所有 未经许可禁止镜象和复制本站资料 MSN:CLDE_NET@hotmail.com
技术支持:CLDE.NET信息中心 鲁ICP备05039940号 友情链接QQ:784079(隐)