Oracle数据库常见问题处理

转自:微点阅读  https://www.weidianyuedu.com/content/2117785047648.html

一、解决oracle 9.2.0.6版本数据库由于oRA-07445宕机问题 故障现象: XX网数据库宕机,查看日志发现以下内容: Wed Jun 8 20:24:17 2005 Errors in file /u02/app/oracle/admin/unicom/udump/unicom_ora_661.trc: oRA-07445: \\263\\366\\317\\326\\322\\354\\263\\243: \\272\\313\\320\\304\\327\\252\\264\\242 [00000 00101c3089c] [SIGSEGV] [Address not mappe d to object] [0x000000000] [] [] Wed Jun 8 20:24:22 2005 Errors in file /u02/app/oracle/admin/unicom/bdump/unicom_pmon_11598.trc: oRA-07445: exception encountered: core dump [0000000101c399A0] [SIGSEGV] [Address no t mapped to object] [0x000000000] [] [] Wed Jun 8 20:24:23 2005 Errors in file /u02/app/oracle/admin/unicom/bdump/unicom_pmon_11598.trc: oRA-07445: exception encountered: core dump [0000000101c399A0] [SIGSEGV] [Address no t mapped to object] [0x000000000] [] [] oRA-00602: internal programming exception oRA-07445: exception encountered: core dump [0000000101c399A0] [SIGSEGV] [Address no t mapped to object] [0x000000000] [] [] Wed Jun 8 20:24:33 2005 cKPT: terminating instance due to error 472 Instance terminated by cKPT, pid = 11604 Wed Jun 8 21:04:47 2005 Starting oRAcLE instance (normal) 解决办法: oracle工程师建议安装oracle补丁p3949307_9206_SoLARIS64,经过测试,安装步骤如下(注意,首先shutdown数据库): 1.解压补丁文件: unzip p3949307_9206_SoLARIS64.zip 解开后的目录是:4060756 。 2.修改oraclehomeproperties.xml文件,该文件在$oRAcLE_HoME/inventory/contentsXML目录下: cp oraclehomeproperties.xml oraclehomeproperties.xmlb.bak vi oraclehomeproperties.xml 更改数字453 ->23,存盘退出。 3.修改PATH路径为: PATH=$oRAcLE_HoME/bin:/usr/ccs/bin:${PATH} 4.执行opatch apply命令: cd 4060756 $oRAcLE_HoME/oPatch/opatch apply 5.安装成功后会出现如下结果: Updating inventory... /oracle92/app/oracle/product/9.2.0.1/oPatch/opatch.pl version: 1.0.0.0.51 copyright (c) 2001-2004 oracle corporation. All Rights Reserved. oPatch succeeded.

二、查看oracle表空间大小及利用率的SQL语句-非常实用的语句 set linesize 300 col 表空间名 for a30 SELEcT UPPER(F.TABLESPAcE_nAME) \表空间名\D.ToT_GRooTTE_MB \表空间大小(M)\D.ToT_GRooTTE_MB - F.ToTAL_BYTES \已使用空间(M)\To_cHAR(RoUnD((D.ToT_GRooTTE_MB - F.ToTAL_BYTES) / D.ToT_GRooTTE_MB * 100, 2), "990.99") \使用比\F.ToTAL_BYTES \空闲空间(M)\F.MAX_BYTES \最大块(M)\FRoM (SELEcT TABLESPAcE_nAME, RoUnD(SUM(BYTES) / (1024 * 1024), 2) ToTAL_BYTES, RoUnD(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FRoM SYS.DBA_FREE_SPAcE GRoUP BY TABLESPAcE_nAME) F, (SELEcT DD.TABLESPAcE_nAME, RoUnD(SUM(DD.BYTES) / (1024 * 1024), 2) ToT_GRooTTE_MB FRoM SYS.DBA_DATA_FILES DD GRoUP BY DD.TABLESPAcE_nAME) D WHERE D.TABLESPAcE_nAME = F.TABLESPAcE_nAME oRDER BY 4 DESc;

三、XX网oracle数据库SYSTEM表空间文件坏块的解决办法 故障现象: netBackup备份出错,日志如下: RMAn-00571: =========================================================== RMAn-00569: =============== ERRoR MESSAGE STAcK FoLLoWS =============== RMAn-00571: =========================================================== RMAn-03009: failure of backup command on ch01 channel at 06/15/2005 02:28:44 oRA-19566: 超出损坏块限制 0 (文件 /u01/app/oradata/unicom/system01.dbf) 故障分析: 由于事前发生过别的表空间(cookdbs:/u01/app/oradata/unicom/cokdbs.dbf)也有坏块的情况,根据李智他们的建议,使用迁移数据后删除表空间的办法解决(仅适用于普通表空间)。 这是查询该表空间上的表和索引对象的一个脚本: GXdb% more query.sql conn /as sysdba col owner for a25 col segment_name for a40 spool table.log select distinct oWnER,SEGMEnT_nAME from dba_extents where TABLESPAcE_nAME="cooKDB" and SEGMEnT_TYPE="TABLE"; spool off spool index.log select distinct oWnER,SEGMEnT_nAME from dba_extents where TABLESPAcE_nAME="cooKDB" and SEGMEnT_TYPE="InDEX"; spool off exit 查询完毕后,使用一个迁移的脚本迁移到新的表空间: GXdb% more move.sh #!/bin/ksh sqlplus /nolog @query.sql nEWTBS=\echo \for TnAME in `cat table.log | awk " /^cooKDB/ {print $2} "` do echo \$nEWTBS;\done for InAME in `cat index.log | awk " /^cooKDB/ {print $2} "` do echo \

$nEWTBS;\done echo \sqlplus /nolog @move.sql 本次经过检查,发现包括有System在内的四个表空间的四个数据文件有坏块。为了能使用netBackup备份,对netBackup脚本做以下修改(对相应的数据文件设置maxcorrupt): run { allocate channel ch00 type "sbt_tape"; set maxcorrupt for datafile 1,27,28,44 to 10; backup 。。。。。。 release channel ch00; } 如果有归档日志没有丢失,都备份过,可以使用rman的blockrecover来修复文件的坏块,例如: run { allocate channel ch00 type "sbt_tape"; blockrecover datafile 27 block 302089,302090,332823,332824,332825,332826; blockrecover datafile 28 block 340846,340847,340848,340849; blockrecover datafile 44 block 380381,380382,380383,380384,380405,380406,380407,380408; blockrecover datafile 1 block 1703064,1703065,1703066,1703067,1703088,1703089,1703090,1703091; release channel ch00; } 但是中间由于备份失败,本地维护删除过归档日志,此方法不适用。

本次由于有SYSTEM表空间,不同于普通用户表空间,它有自己的特殊性。所以有些问题的解决方法也不尽相同。经多方探讨协商(oracle India engineer、项目经理、本地维护、开发部门和系统工程部经理),总结了以下处理办法:

解决SYSTEM表空间文件坏块的方法是导出全库数据,删除数据库,重建数据库,导入全库数据。具体的操纵步骤,经过讨论,见如下:主要是考虑到优化可以在线进行,也需要在线进行,还考虑到优化的万一出错性,既便出错至少还可以恢复到原始状态,如果优化没有成功,再做导出导入也不能恢复到初始状态。所以就先做导出导入工作再做优化处理。微点阅读  https://www.weidianyuedu.com

步骤是:

1. 导出整个数据库(数据库在线),参考命令:

exp system/manager file=/oraclebak/unicomdbfull.dmpfull=Y log=/oraclebak/unicomfull.log

2. 备份配置文件cp $oRAcLE_HoME/dbs/* /oraclebak,记录数据库名及实例名,参考字典视图V$DATABASE,V$InSTAncE;

3. 删除数据库DBcA(/u02/app/oracle/product/9.2.0.1/bin/dbca)图形化配置工具。注意:建议不要删除数据文件、重做日志文件和控制文件以及归档日志文件,处理方法是:

a.就数据文件、重做日志文件和控制文件分别改名为xxx.bak.xxx文件,例如mv datafile001.dbf datafile001.bak.dbf ;

b.就归档日志文件,只改名归档日志文件所在的目录名即可,例如mv archivedir archivedirbak。要参考的数据字典视图有V$DATAFILE、V$LoGFILE、V$conTRoLFILE和archive log list 参数。

4. 重建数据库DBcA(/u02/app/oracle/product/9.2.0.1/bin/dbca)图形化配置工具; 5. 导入整个数据库,imp system/unicom@unicom full=y ignore=y file=xxx.dmp log=yyy.log;

6. 启动数据库,严格测试

dbv file= /u02/app/oracle/oradata/unicom/system01.dbf blocksize=8192 检查还有没有坏块;

7. 使用3.2SQL脚本检查表空间情况。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 由于ARCHIVE挂起导致数据库挂死 2 NIT文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死 3 由于临时表空间无法扩展导致数据库被挂起 4由于未打补丁导致RMAN备份时将数据库挂起 5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差 6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢 7由于空间不够导致插入数据时扩展索引失败 8由于REDOLOG破坏导致数据库异常 9由于控制文件被破坏导致数据库无法正常启动 10由于数据文件丢失或破坏导致数据库无法正常启动 11由于空间参数设置不合理导致扩展表空间、索引等失败 12由于时间格式的环境变量设置问题导致话单无法入库 13由于大事务未使用大回滚段导致事务挂起 14由于数据库连接数太多导致服务器进程数多或内存耗尽 15由于使用了MTS方式,导致数据库操作特别慢(包括备份) 16由于存在一个大事务操作,导致数据库性能特别差或产生频繁日志切换 17由于没有COMMIT,导致数据库表被锁住 18索引创建不合理,导致数据库查询特别慢 19 由于BUFFER参数设置不合理导致EXP失败 20由于EXP不向上兼容,语言不兼容,导致不同版本、不同字符集的数据库无法导入 21 由于创建表空间时误将其创建在以‘本地管理’,导致在表空间上的所有对象无法修改其存储参数 22 错误地在系统表空间上建无关的数据文件 23 ORACLE客户端在P4上安装不成功 24由于LISTENER.ORA或TNSNAMES.ORA配置问题导致网络问题 25由于环境变量设置问题导致VERSOIN版本启动问题 26用户数据、表破坏下的数据恢复 27 由于OS层问题导致数据库ORA-600错误 .....

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值