动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.如何将primary key建在其它的表空.
.Oracle 8i中回滚段使用和ORA-1555.
.Oracle不同版本间用exp进行导数据.
.Oracle 10g学习手册1:证书的验证.
.oracle中如何编写树级代码.
.Oracle常用数据字典.
.移动数据库和J2ME工具构建应用程.
.实现Oracle数据库复制.
.Uedit32编辑器与SQLPlus结合使用.
.对Oracle自己的Web运营所进行的幕.
.PL/SQL 中用光标查询多条记录.
.9istatspack使用手册.
.Oracle9i中监视索引的使用(1).
.在SQLServer2000中用链接数据库方.
.sqlldr的用法总结.
.在Oracle9i中计算时间差.
.[Oracle]Data Guard数据库灾难防.
.Oracle 9i 在Linux 下的安装 (上).
.DEVELOPER/2000使用经验7条.
.oracle 常用SQL查询,望对大家有.

Oracle8i回滚段表空间出现坏块的解决

发表日期:2008-2-9 |


今天早上刚到公司便接到网通客户的投诉电话,说网管数据库出问题了,数据库有坏块,回滚段里的部分数据不能读取,需要帮忙解决。 我查看了一下swappALRT.log文件,发现有以下错误:
Tue Sep 21 10:34:08 2004 Errors in file E:\Oracle\admin wapp\bdump wappSMON.TRC: ORA-01578: ORACLE data block corrupted (file # 2, block # 24497) ORA-01110: data file 2: 'E:\ORACLE\ORADATA WAPP\RBS01.DBF'
原来是回滚段表空间数据文件有坏块了。知道了问题的所在,马上解决,我已经想好了思路,就是新建一个回滚段表空间,把以前坏了的回滚段表空间drop掉,在新的回滚段表空间上建回滚段,所要建的回滚段和以前的一摸一样,让以后产生的回滚数据都写到新建的回滚段上。思路清楚,马上开始行动了。 ?首先停到listener,不答应有新的应用连到数据库上做操作,然后down掉数据库,为了清除掉已有的数据库会话连接资源:
$lsnrctl stop LSNRCTL for Solaris: Version 8.1.7.3.0 - ProdUCtion on 21-SEP-2004 17:40:36 (c) Copyright 1998 Oracle Corporation.? All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ipasdb) (PORT=1521))) The command completed successfully. $sqlplus internal/oracle SQL*Plus: Release 8.1.7.0.0 - Production on Tue Sep 21 17:41:24 2004 (c) Copyright 2000 Oracle Corporation.? All rights reserved. Connected to: Oracle8i Enterprise Edition Release 8.1.7.3.0 - 64bit Production With the Partitioning option JServer Release 8.1.7.3.0 - 64bit Production SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL>startup restrict (以受限模式启动数据库,为了防止其他用户登陆进来做相关操作,这时候只答应治理员登陆)
查找回滚段对应的表空间:
SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME??????????????? STATUS ------------------------------ --------- SYSTEM???????????????????????? ONLINE TOOLS????????????????????????? ONLINE RBS??????????????????????????? ONLINE TEMP?????????????????????????? ONLINE USERS????????????????????????? ONLINE INDX?????????????????????????? ONLINE DRSYS????????????????????????? ONLINE WACOS????????????????????????? ONLINE NMS??????????????????????????? ONLINE TEST?????????????????????????? ONLINE FS???????????????????????????? ONLINE PERFSTAT?????????????????????? ONLINE 12rows selected.
回滚段表空间为RBS. 查看当前回滚段表空间里是否有活动的事物:
SQL> SELECT s.username,t.xidusn,t.ubafil,t.ubablk, t.used_ublk? FROM v$session s,v$transaction t WHERE s.saddr=t.ses_addr; no rows selected.
  没有活动事物,太好了,可以放心的drop回滚段了,这正是我想要的结果。 接下来查找回滚段存储参数信息:
SQL> col tablespace_name format a10 SQL> col SEGMENT_NAME format a12 SQL> set line 120 SQL> select SEGMENT_NAME,OWNER,TABLESPACE_NAME,initial_extent,NEXT_EXTENT,
MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE from dba_rollback_segs; SEGMENT_NAME OWNER? TABLESPACE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE SYSTEM?????? SYS??? SYSTEM????????????? 57344?????? 57344?????????? 2???????? 505??????????? 0 RBS0???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS1???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS2???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS3???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS4???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS5???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS6???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS7???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS8???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS9???????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS10??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS11??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS12??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS13??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS14??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS15??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS16??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS17??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS18??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS19??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS20??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS21??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS22??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS23??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS24??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS26??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS27??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS28??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0 RBS25??????? PUBLIC RBS01????????????? 524288????? 524288?????????? 8??????? 4096??????????? 0
APPRBS?????? PUBLIC RBS01???????????? 2097152??? 10485760????????? 50?????? 32765??????????? 0 31 rows selected.
把initial_extent,next_extent,min_extents,max_extents,pct_increase的值都记录下来,留做以后创建新的回滚段使用。 创建LMT治理方式的回滚段表空间(我的数据库是oracle817):
SQL> create tablespace rbs01 datafile '/opt/oracle/db02/oradata/ORCL/rbs01.dbf' size 1024M?autoextend on next 1M maxsize unlimited extent management local; Tablespace created.
先在该表空间下建立一个回滚段rbs31做一个测试:
SQL> create public rollback segment RBS31 tablespace rbs01 storage(initial 524288 next 524288 MINEXTENTS 8 MAXEXTENTS 4096 OPTIMAL 4194304); create public rollback segment RBS31 tablespace rbs01 storage(initial 524288 next 524288 MINEXTENTS 8 MAXEXTENTS 4096 OPTIMAL 4194304) * ERROR at line 1: ORA-25151: Rollback Segment cannot be created in this tablespace
出错了,居然没有建成功,shit. 查了一下metalink发现对于oracle8i来讲在LMT方式治理的表空间下不能创建回滚段,但9i解决了该问题。 metalink上的解释:
EXPlanation ----------- Rollback segments cannot be created in locally managed tablespaces (a new feature in Oracle 8.1) with allocation type of AUTOALLOCATE. They must be created in locally managed tablespaces with allocation type of UNIFORM or in dictionary managed tablespaces. NOTE: This restriction has been lifted in Oracle 9.
  接下来drop刚刚建立的rbs01表空间,重新建立rbs01表空间:
SQL> create tablespace rbs01 datafile '/opt/oracle/db02/oradata/ORCL/rbs01.dbf' size 1024M ?autoextend on next 1M maxsize unlimited; Tablespace created. SQL> select EXTENT_MANAGEMENT from dba_tablespaces where tablespace_name='RBS01'; EXTENT_MAN ---------- DICTIONARY
这回表空间不是LMT的,是DMT的,呵呵! 下面才是真正开始要做的工作,总之两个字,细心,因为是生产库,不敢马虎。
SQL> set feedback off SQL> set pages 0 SQL> select 'alter rollback segment 'segment_name' offline;'? from dba_rollback_segs;
做一个脚本把除system回滚段以外的回滚段都offline掉,省的一个一个敲,脚本结果如下:
alter rollback segment RBS0 offline; alter rollback segment RBS1 offline; alter rollback segment RBS2 offline; alter rollback segment RBS3 offline; alter rollback segment RBS4 offline; alter rollback segment RBS5 offline; alter rollback segment RBS6 offline; alter rollback segment RBS7 offline; alter rollback segment RBS8 offline; alter rollback segment RBS9 offline; alter rollback segment RBS10 offline;
alter rollback segment RBS11 offline; alter rollback segment RBS12 offline; alter rollback segment RBS13 offline; alter rollback segment RBS14 offline; alter rollback segment RBS15 offline; alter rollback segment RBS16 offline; alter rollback segment RBS17 offline; alter rollback segment RBS18 offline; alter rollback segment RBS19 offline; alter rollback segment RBS20 offline; alter rollback segment RBS21 offline; alter rollback segment RBS22 offline; alter rollback segment RBS23 offline; alter rollback segment RBS24 offline; alter rollback segment RBS25 offline; alter rollback segment RBS26 offline; alter rollback segment RBS27 offline; alter rollback segment RBS28 offline; alter rollback segment APPRBS offline;
然后做个drop回滚段的脚本:
SQL>? select 'drop rollback segment 'segment_name';' from dba_rollback_segs; drop rollback segment RBS0; drop rollback segment RBS1; drop rollback segment RBS2; drop rollback segment RBS3; drop rollback segment RBS4; drop rollback segment RBS5; drop rollback segment RBS6; drop rollback segment RBS7; drop rollback segment RBS8; drop rollback segment RBS9; drop rollback segment RBS10; drop rollback segment RBS11; drop rollback segment RBS12; drop rollback segment RBS13; drop rollback segment RBS14; drop rollback segment RBS15; drop rollback segment RBS16; drop rollback segment RBS17; drop rollback segment RBS18; drop rollback segment RBS19; drop rollback segment RBS20; drop rollback segment RBS21; drop rollback segment RBS22; drop rollback segment RBS23; drop rollback segment RBS24; drop rollback segment RBS25; drop rollback segment RBS26; drop rollback segment RBS27; drop rollback segment RBS28; drop rollback segment APPRBS;
脚本做好了,别忘了执行。   执行完后开始在新的回滚段表空间下建回滚段,存储参数和原来保持一致:
SQL> select? 'create public rollback segment 'segment_name' tablespace rbs01 storage(initial 524288 next 524288 MINEXTENTS 8 MAXEXTENTS 4096 OPTIMAL 4194304); from dba_rollback_segs;
也是做了个脚本,免的一个一个敲! 下面的大回滚段要单独建,总之,系统里面最好要有一个大的回滚段,有大事物的时候就派上用场了。
SQL> create public rollback segment APPRBS tablespace rbs01 storage(initial 2097152 next 10485760 MINEXTENTS 50 MAXEXTENTS 32765); Rollback segment created.
查看新建的回滚段状态:
SQL> select segment_name,owner,status,tablespace_name from dba_rollback_segs; SYSTEM?????????????? SYS??? ONLINE?????????? SYSTEM RBS0???????????????? PUBLIC OFFLINE????????? RBS01 RBS1???????????????? PUBLIC OFFLINE????????? RBS01 RBS2???????????????? PUBLIC OFFLINE????????? RBS01 RBS3???????????????? PUBLIC OFFLINE????????? RBS01 RBS4???????????????? PUBLIC OFFLINE????????? RBS01
RBS5???????????????? PUBLIC OFFLINE????????? RBS01 RBS6???????????????? PUBLIC OFFLINE????????? RBS01 RBS7???????????????? PUBLIC OFFLINE????????? RBS01 RBS8???????????????? PUBLIC OFFLINE????????? RBS01 RBS10??????????????? PUBLIC OFFLINE????????? RBS01 RBS11??????????????? PUBLIC OFFLINE????????? RBS01 RBS12??????????????? PUBLIC OFFLINE????????? RBS01 RBS13??????????????? PUBLIC OFFLINE????????? RBS01 RBS14??????????????? PUBLIC OFFLINE????????? RBS01 RBS15??????????????? PUBLIC OFFLINE????????? RBS01 RBS16??????????????? PUBLIC OFFLINE????????? RBS01 RBS17??????????????? PUBLIC OFFLINE????????? RBS01 RBS18??????????????? PUBLIC OFFLINE????????? RBS01 RBS19??????????????? PUBLIC OFFLINE????????? RBS01 RBS20??????????????? PUBLIC OFFLINE????????? RBS01 RBS21??????????????? PUBLIC OFFLINE????????? RBS01 RBS22??????????????? PUBLIC OFFLINE????????? RBS01 RBS23??????????????? PUBLIC OFFLINE????????? RBS01 RBS24??????????????? PUBLIC OFFLINE????????? RBS01 RBS26??????????????? PUBLIC OFFLINE????????? RBS01 RBS27??????????????? PUBLIC OFFLINE????????? RBS01 RBS28??????????????? PUBLIC OFFLINE????????? RBS01 RBS25??????????????? PUBLIC OFFLINE????????? RBS01 APPRBS?????????????? PUBLIC OFFLINE????????? RBS01 30 rows selected.
除了system,都是offline状态。 继续做脚本让除system外的回滚段online:
SQL> select 'alter rollback segment 'segment_name' online;'? from dba_rollback_segs; alter rollback segment RBS0 online; alter rollback segment RBS1 online; alter rollback segment RBS2 online; alter rollback segment RBS3 online; alter rollback segment RBS4 online; alter rollback segment RBS5 online; alter rollback segment RBS6 online; alter rollback segment RBS7 online; alter rollback segment RBS8 online; alter rollback segment RBS9 online; alter rollback segment RBS10 online; alter rollback segment RBS11 online; alter rollback segment RBS12 online; alter rollback segment RBS13 online; alter rollback segment RBS14 online; alter rollback segment RBS15 online; alter rollback segment RBS16 online; alter rollback segment RBS17 online; alter rollback segment RBS18 online; alter rollback segment RBS19 online; alter rollback segment RBS20 online; alter rollback segment RBS21 online; alter rollback segment RBS22 online; alter rollback segment RBS23 online; alter rollback segment RBS24 online; alter rollback segment RBS26 online; alter rollback segment RBS27 online; alter rollback segment RBS28 online; alter rollback segment RBS25 online; alter rollback segment APPRBS online;
执行以上脚本后,删除原来的undo表空间RBS:
SQL>drop tablespace rbs including contents; Tablespace dropped.
做到这里即完成了所要求的工作,好了,剩下的就留做数据测试了,收工,明天等数据库测试结果。
上一篇:损坏控制文件的恢复方法 人气:754
下一篇:哈希分区表使用时注意事项 人气:596
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-14 FeitecCMS 40T免费资源网整站源码
2008-10-14 游戏推广无限制版本
2008-10-13 爬爬思特新闻管理系统 v2.0 Beta1
2008-10-13 Pligg v9.9.5 Beta
2008-10-13 广优邮件发送系统 v2.1
2008-10-13 缤纷互动视频交友 v3.1 RC
2008-10-13 MyShop网络商城 build 081005
2008-10-13 Chyrp 超轻量级开源博客引擎 v2.
2008-10-13 162100静态(论坛/文章)系统 v2.4
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成