版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ORACLE日常维护/故障定位/故障排除
培训手册/操作指南智能网开发部二零零四年五月TOC\o"1-5"\h\z目录2\o"CurrentDocument"第一章、日常维护3\o"CurrentDocument"一、每天的工作3二、每周的工作(对需要进行的数据库的改动部分,一般都有相关的操作规范和技术通\o"CurrentDocument"知,请勿手工操作)5\o"CurrentDocument"三、每月的工作(对于数据库修改部分,一般都通过任务执行,请勿手工操作)5\o"CurrentDocument"第二章、故障定位、故障排除6一、数据库挂起故障62.1由于archive挂起导致数据库挂死6\o"CurrentDocument"2.2init文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死7\o"CurrentDocument"2.3由于临时表空间无法扩展导致数据库被挂起7\o"CurrentDocument"2.4由于未打补丁导致RMAN备份时将数据库挂起8二、数据库功能/性能异常8\o"CurrentDocument"2.5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差82.6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢92.7由于空间不够导致插入数据时扩展索引失败9\o"CurrentDocument"2.8由于redolog破坏导致数据库异常9\o"CurrentDocument"2.9由于控制文件被破坏导致数据库无法正常启动10\o"CurrentDocument"2.10由于数据文件丢失或破坏导致数据库无法正常启动11\o"CurrentDocument"2.11由于空间参数设置不合理导致扩展表空间、索引等失败11\o"CurrentDocument"2.12由于时间格式的环境变量设置问题导致话单无法入库11\o"CurrentDocument"2.13由于大事务未使用大回滚段导致事务挂起11\o"CurrentDocument"2.14由于数据库连接数太多导致服务器进程数多或内存耗尽12\o"CurrentDocument"2.15由于使用了MTS方式,导致数据库操作特别慢(包括备份)12\o"CurrentDocument"2.16由于存在一个大事务操作,导致数据库性能特别差或产生频繁日志切换12\o"CurrentDocument"2.17由于没有COMMIT,导致数据库表被锁住12\o"CurrentDocument"2.18索引创建不合理,导致数据库查询特别慢13\o"CurrentDocument"2.19由于buffer参数设置不合理导致exp失败132.20由于exp不向上兼容,语言不兼容,导致不同版本、不同字符集的数据库无法导入132.21由于创建表空间时误将其创建在以‘本地管理’,导致在表空间上的所有对象无法修改其存储参数13\o"CurrentDocument"2.22错误地在系统表空间上建无关的数据文件14\o"CurrentDocument"2.23ORACLE客户端在p4上安装不成功14\o"CurrentDocument"2.24由于listener.ora或tnsnames.ora配置问题导致网络问题14\o"CurrentDocument"2.25由于环境变量设置问题导致VERSOIN版本启动问题16\o"CurrentDocument"2.26用户数据、表破坏下的数据恢复16\o"CurrentDocument"2.27由于os层问题导致数据库ORA-600错误16三、将导致数据库安装失败或打补丁失败的情况16\o"CurrentDocument"2.28由于环境变量或没有安装make文件导致数据库安装失败17\o"CurrentDocument"2.29由于/tmp等文件系统设置太小导致数据库无法正常安装17\o"CurrentDocument"2.30HPUX上由于核心参数设置不对导致数据库无法正常启动17\o"CurrentDocument"2.31在64位的oracle817上打32的补丁失败17\o"CurrentDocument"2.32由于安装备机数据库时是使用的拷贝方式,所以导致在备机上安装补丁失败172.33由于安装oracle时错误地在$ORACLE_HOME目录下创建link,导致将打过补丁后的版本拷贝到备机失败18\o"CurrentDocument"2.34ORACLE下的字符集问题18第一章、日常维护ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控:.每天对ORACLE数据库的运行状态,日志文件,备份情况,数据库的空间使用情况,系统资源的使用情况进行检查,发现并解决问题。.每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。.每月对表和索引等进行Analyze,检查表空间碎片,寻找数据库性能调整的机会,进行数据库性能调整,提出下一步空间管理计划。对ORACLE数据库状态进行一次全面检查。一、每天的工作.确认所有的INSTANCE状态正常登陆到所有数据库或例程,检测ORACLE后台进程:$ps-ef|grepora.检查文件系统的使用(剩余空间)。如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。尤其是/zxindata/zxinbak文件系统的空间,该文件系统存放archive日志和数据库备份,一定要保证空间足够$df-k.检查日志文件和trace文件记录alert和trace文件中的错误。连接到每个需管理的系统使用'telnet'对每个数据库,cd到bdump目录,通常是$ORACLE_BASE/admin/<SID>/bdump使用Unix‘tail'命令来查看alert_<SID>.log文件如果发现任何新的ORA-错误,记录并解决.检查数据库当日备份的有效性。对RMAN备份方式:检查第三方备份工具的备份日志以确定备份是否成功对EXPORT备份方式:检查exp日志文件以确定备份是否成功对其他备份方式:检查相应的日志文件.使用DBAstudio检查数据文件的状态记录状态不是“online”的数据文件,如有非’online’的数据文件,请记录并反馈。命令行方式:Selectfile_namefromdba_data_fileswherestatus='OFFLINE'.使用DBAstudio检查表空间的使用情况命令行方式:SELECTtablespace_name,max_m,count_blocksfree_blk_cnt,sum_free_m,to_char(100*sum_free_m/sum_m,'99.99')||'%'ASpct_freeFROM(SELECTtablespace_name,sum(bytes)/1024/1024ASsum_mFROMdba_data_filesGROUPBYtablespace_name),(SELECTtablespace_nameASfs_ts_name,max(bytes)/1024/1024ASmax_m,count(blocks)AScount_blocks,sum(bytes/1024/1024)ASsum_free_mFROMdba_free_spaceGROUPBYtablespace_name)WHEREtablespace_name=fs_ts_name.使用DBAstudio检查剩余表空间命令行方式:SELECTtablespace_name,sum(blocks)asfree_blk,trunc(sum(bytes)/(1024*1024))asfree_m,max(bytes)/(1024)asbig_chunk_k,count(*)asnum_chunksFROMdba_free_spaceGROUPBYtablespace_name;.检查数据库性能,记录数据库的cpu使用、IO、buffer命中率等等,如发现异常,请记录并反馈使用vmstat,iostat,top等命令.其他日常出现问题的处理。二、每周的工作(对需要进行的数据库的改动部分,一般都有相关的操作规范和技术通知,请勿手工操作).检查数据库对象的空间扩展情况根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施--删除历史数据,如对bill表进行定期的备份,对三个月前的数据进行定期清理如表空间不够,可使用如下方式扩表空间altertablespace<name>adddatafile‘<file>'size<size>调整数据对象的存储参数(要求pctincrease参数设置为0)nextextentpct_increase.监控数据量的增长情况根据本周每天的检查情况找到记录数量增长很快的数据库对象,并采取相应的措施--删除历史数据扩表空间altertablespace<name>adddatafile‘<file>'size<size>.系统健康检查检查以下内容:init<sid>.oracontrolfileredologfilearchivingtablespace(system,temporary,tablespacefragment)datafiles(autoextend,location)object(numberofextent,nextextent,index)rollbacksegmentlogging&tracing(alert.log,max_dump_file_size,sqlnet,listener.log).检查无效的数据库对象SELECTowner,object_name,object_typeFROMdba_objectsWHEREstatus='INVALID'三、每月的工作(对于数据库修改部分,一般都通过任务执行,请勿手工操作).AnalyzeTables/Indexes/Clusteranalyzetable<name>estimatestatisticssample50percent;.检查表空间碎片根据本月每周的检查分析数据库碎片情况,找到相应的解决方法.寻找数据库性能调整的机会比较每天对数据库性能的监控报告,确定是否有必要对数据库性能进行调整.数据库性能调整如有必要,进行性能调整.提出下一步空间管理计划根据每周的监控,提出空间管理的改进方法第二章、故障定位、故障排除根据我们在实际商用系统中碰到问题,我们例举了如下常见故障和解决方法。一、数据库挂起故障2.1由于archive挂起导致数据库挂死故障现象:数据库挂起,sqlplus无法登录,alert_zxin.log中有如下信息报出:SatJul1321:48:012002ARC0:Beginningtoarchivelog#1seq#61Currentlog#2seq#62mem#0:/zxindata/oracle/redolog/redo02.logARC0:Error19504creatingarchivelogfile'/zxindata/zxinbak/arch/1_61.dbfARC0:Archivingnotpossible:errorcountexceededARC0:Failedtoarchivelog#1seq#61ARCH:Archivalstopped,erroroccurred.WillcontinueretryingSatJul1321:48:012002ORACLEInstancezxin-ArchivalErrorARCH:Connectingtoconsoleport...SatJul1321:48:012002ORA-16014:log1sequence#61notarchived,noavailabledestinationsORA-00312:onlinelog1thread1:'/zxindata/oracle/redolog/redo01.log'ARCH:Connectingtoconsoleport...ARCH:ORA-16014:log1sequence#61notarchived,noavailabledestinationsORA-00312:onlinelog1thread1:'/zxindata/oracle/redolog/redo01.log'SatJul1321:50:372002ARC0:Beginningtoarchivelog#1seq#61ARC0:Archivingnotpossible:NoprimarydestinationsARC0:Failedtoarchivelog#1seq#61故障原因:一般是archive所在的文件系统满或无操作权限引起的。故障解决:检查/zxindata/zxinbak文件系统,是否已经达到或接近100%,另外确定其对oracle用户有可写权限。如果文件系统已经满,请执行手工删除/zxindata/zxinbak/arch下的arch文件使用sqlplus/nolog登录,执行:SQL>altersystemarchivelogstart;进一步检查/zxindata/zxinbak文件系统为什么满:查zxin10用户下的checkpsfs.shoracle任务有没有执行:crontab-l|grepcheckpsfs,看是否有...checkpsfs.shoracle...的返回,如没有,表示定期检查空间是否满的任务没有执行,需要启动该任务查zxin10用户对/zxindata/zxinbak/arch目录下文件有没有删除权限:ls-l/zxindata/zxinbak/arch对dba组需要有可读可写权限查数据库备份任务有没有正常执行:crontab-l如果不存在rman或exp方式的数据库备份,则表示没有执行数据库备份任务,需要加上是否是/zxindata/zxinbak文件系统太小,不符合备份和呼叫模型下的最小大小配置。如果文件系统大小不能满足每天产生的arch日志和两个全备份的总空间,则需要扩展/zxindata/zxinbak文件系统,aix下可以直接扩,hpux下则需要将该文件系统umount以后再扩2.2init文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死故障现象:操作系统无法使用telnet或ftp登录,数据库挂起,sqlplus无法登录故障原因:只能通过维护台登录到主机(很有可能维护台也无法登录),如果可以登录,则在aix上使用lsps-a检查pagingspace是否使用超过50%,hpux下可使用vmstat看内存是否已经很少。故障解决:如不可以登录,则强制关电重起机器以触发主备双机倒换;如果可以登录,则手工以shutdownabort方式停止数据库引发双机倒换。然后调整initzxin.ora文件中SGA区大小,主要是减少db_block_buffers的配置,如果物理内存小于1G,建议该值配置为:1024*1024/4/4注意同时调整主备机配置,然后做双机倒换是配置生效。2.3由于临时表空间无法扩展导致数据库被挂起故障现象:数据库挂起,sqlplus无法登录,alert_zxin.log中看:先是zxin_temp临时表空间扩展失败,数据库异常退出故障原因:这是ORACLE817的一个bug,当一个统计任务操作一个大表时,其临时数据使用了zxin_temp临时表空间,而该临时表空间太小自动扩展,扩展受文件系统大小限制和pctincrease参数限制而失败时,将引发数据库挂起。故障解决:将oracle817的补丁打到手工扩充zxin_temp表空间并增加其所在文件系统大小检查zxin_temp临时表空间的pctincrease的值,需要配置为02.4由于未打补丁导致RMAN备份时将数据库挂起故障现象:数据库挂起,sqlplus无法登录。由于原来使用rman备份方式,当这种故障发生时,数据库备份日志:dbak.log中将有以下信息:RMAN-03022:compilingcommand:backupRMAN-03026:errorrecoveryreleasingchannelresourcesRMAN-08031:releasedchannel:ch1RMAN-00571:==============================RMAN-00569:======ERRORMESSAGESTACKFOLLOWS===============RMAN-00571:====================================================RMAN-03002:failureduringcompilationofcommandRMAN-03013:commandtype:backupRMAN-06003:ORACLEerrorfromtargetdatabase:RMAN-20242:specificationdoesnotmatchanyarchivelogintherecoverycatalog故障原因:是ORACLE817的一个bug故障解决:将补丁打到oracle就可以了。另外建议将数据库备份改为exp方式二、数据库功能/性能异常2.5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差故障现象:操作系统CPU占有率很高,数据库操作响应很慢。故障原因:这种故障发生时,数据库能登录也能操作,但响应时间很长,从日志中也看不出什么异常。所以只能使用我们定制的oratool工具,先找出CPU占有率高的语句,再进一步分析,当时的情况是,发现version对一个有blob类型的表写很频繁,耗去了大量CPU资源,导致数据库总体性能下降。故障解决:不建议使用blob类型的表如果非要使用blob类型,则要定期进行数据备份和清理,记录数不能太多对blob类型的表的操作,在记录数多的情况下不能写的太频繁,会占用大量的系统资源2.6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢故障现象:执行某个存储过程或执行某个表的数据库操作时,操作系统CPU占有率明显升高,数据库操作响应很慢。故障原因:对一个数据量比较大的表(达到或超过100万),经过长期的读写操作后,其索引和数据分布没有及时更新给数据库,导致读时性能下降。故障解决:对这种类型的表,需要写任务定期对表做分析,由于分析比较耗时和耗资源,建议在系统闲时做,频率不能太高,如每月执行一次,分析可以使用5%或10%的抽样进行,如:analyzetabletablelsampleestimatestatistics5percent;2.7由于空间不够导致插入数据时扩展索引失败故障现象:alert_zxin.log日志将报扩展表空间失败的日志,zxcom.log中有扩展索引失败的记录。故障原因:一般是表所在的表空间不够,空间扩展失败的情况造成的。故障解决:手工扩展表空间所在的文件系统,扩展表空间如果是表空间的pctincrease设置的不是0,则将其改为0必要的时候需要rebuild一下扩展索引失败的索引2.8由于redolog破坏导致数据库异常故障现象:如果是数据库启动情况下redolog被破坏,则alert_zxin.log中会报如下错误:ORA-00313:openfailedformembersofloggroup2ofthread1ORA-00312:onlinelog2thread1:'/zxindata/oracle/zxin/redo02.log'ORA-27037:unabletoobtainfilestatus将导致数据库操作异常。sqlplus可以登录如果是启动时候redolog损坏,将报:ORA-00313:无法打开日志组1(线程1)的成员ORA-00312:联机日志1线程1:'/zxindata/oracle/zxin/redo01.log'故障原因:redolog破坏,一般是由于:人为误删或物理损坏发生了主备倒换,备机的共享VG信息不全故障解决:人为误删或物理损坏如果未启动数据库,则启动到mount状态,重建日志:(如第1组日志有问题)alterdatabasedroplogfilegroup1;alterdatabaseaddlogfilegroup1'/zxindata/oracle/redolog/redo01.log'size250M;alterdatabaseopen;如果数据库启动着,则查看一下损坏文件是否是活动(active)的日志:select*fromv$log;如果是激活的,则进行日志切换:altersystemswitchlogfile;如果不是激活的,则执行重建:alterdatabasedroplogfilegroup1;alterdatabaseaddlogfilegroup1'/zxindata/oracle/redolog/redo01.log'size250M;发生了主备倒换,备机的共享VG信息不全将共享VG信息导入到备机,并修改共享文件系统和裸设备属性,使其对oracle用户具有读写权限2.9由于控制文件被破坏导致数据库无法正常启动故障现象:数据库操作将异常,sqlplus可以登录。故障原因:control文件被物理损坏或人为损坏。一般会报:ORA-00210/ORA-00202/ORA-27041/ORA-27037等错误,所以数据库事务将挂起故障解决:只要CONTROL_FILE中还有好的control文件,则只要将其拷贝多份就可以了如果以前做过备份,不能再使用该备份控制文件,因为control文件和数据文件会不一致。启动时报:ORA-01589:要打开数据库则必须使用RESETLOGS或NORESETLOGS选项SQL>alterdatabaseopenresetlogs;ORA-01152:文件1没有从完备的旧备份中恢复ORA-01110:数据文件1:'/zxindata/oracle/zxin/system01.dbf'只要丢失了所有的备份或修改maxlogfiles或修改数据库名等情况则要重新创建一个controlfile,方式如下:startupmountalterdatabasebackupcontrolfiletotrace;alterdatabaseopen;至U$udump目录下查看最新的文件中包含两份重建controlfile的语句,其一是onlinelogs都完好的情况下进行数据库完全恢复的情况其二是onlinelogs损坏,则所有的在线日志都将丢失,所有的备份都将失效。2.10由于数据文件丢失或破坏导致数据库无法正常启动故障现象:一般会导致操作到与该文件有关的数据都将失败,一般报:ORA-01110/ORA-01116/ORA-27041等错误,严重一点的报ORA-03113后数据库异常退出故障原因:故障解决:如果只是将数据文件挪了位置,则只要将其mv到原来的位置即可如果确实损坏了,建议使用数据库备份进行恢复。具体恢复时,可以尝试使用:手工创建数据文件一>自动恢复模式,如果不行,只能使用表空间全部恢复方式了。2.11由于空间参数设置不合理导致扩展表空间、索引等失败故障现象:数据库表空间或索引扩展失败。故障原因:可能是表空间的storage参数设置的不合理引起的。故障解决:我们一般要求使用如下storage参数:STORAGE(INITIAL20KNEXT20KMINEXTENTS1MAXEXTENTSUNLIMITEDPCTINCREASE0)2.12由于时间格式的环境变量设置问题导致话单无法入库故障现象:在zxcom.log报时间格式问题导致话单插入失败。导致话单既要到bill文件中故障原因:跟zxin10用户的NLS_DATE_FORMAT参数设置不正确有关故障解决:需要将zxin10用户下.profile文件中NLS_DATE_FORMAT设置为:NLS_DATE_FORMAT="YYYY.MM.DDHH24:MI:SS"2.13由于大事务未使用大回滚段导致事务挂起故障现象:大事务运行失败,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数MAXEXTENTS的值(ORA-01628)。故障原因:回滚段设置的太小故障解决:a.由于一个事务只能使用一个回滚段来存放它的回滚信息,所以建议给大事务创建专用会滚段创建时将回滚段表空间设置的大一点;增加MAXEXTENTS的值。2.14由于数据库连接数太多导致服务器进程数多或内存耗尽故障现象:使用psef检查时有很多oracle进程(包含local关键字),使用内存检查命令看可用内存已经很少。故障原因:使用DEDICATED方式连接到数据库的客户端一般在服务器端都对应一个进程,该进程将消耗3〜4M的内存空间。如果客户端连接数比较多,则内存将耗尽,进程数也将达到系统极限或数据库极限。故障解决:增加系统的硬件配置,如增加CPU或扩内存增加系统最大进程数限制,aix和hpux下都有方法设置增加oracle进程数,在init文件中的processes参数项2.15由于使用了MTS方式,导致数据库操作特别慢(包括备份)故障现象:使用MTS连接方式的数据库操作将比较慢,尤其是系统资源吃紧的情况下。故障原因:智能网前期对smap等客户端的策略是使用MTS(共享进程)解决方案,后发现该方案不可行,主要是该连接方式下的数据库操作性能太差。故障解决:共享进程只能支持更多的并发用户访问数据库,但不能提高执行速度,所以我们商用局中已经取消了这种方式。具体可通过检查initzxin.ora中的配置确认。应该不包含任何含mts关键字的配置2.16由于存在一个大事务操作,导致数据库性能特别差或产生频繁日志切换故障现象:数据库性能下降,观察alert_zxin.log发现切换日志很频繁故障原因:肯定存在一个与呼叫无关的大事务在不停的运行,导致产生大量日志,引起日志切换。故障解决:使用oratool工具中的sp_who找出活动sql语句通过命令找出消耗cpu、IO资源最大的10条语句查出该语句操作的表的数据量和读写频率,检查是否有应用类逻辑性异常并给予纠正。2.17由于没有commit,导致数据库表被锁住故障现象:操作某个表的记录时长时间无响应,通过sdf进行的数据库操作则表现为超时,导致sdf进程runtootoolong故障原因:一般跟该表被锁住有关故障解决:使用oratool工具中的sp_lock命令查看该表是否有锁检查是否在某个SQL语句中对该表进行事务类操作时,没有使用commit,这种情况一般发生在手工通过sqlplus修改数据的场合,sdf不会出现及时进行commit或rollback,解除表锁,如果不能解除的话,则将与该锁有关的进程强制杀掉。2.18索引创建不合理,导致数据库查询特别慢故障现象:表现为查询特别慢,如果是通过sdf操作,返回超时或触发:sdfruntootoolong故障原因:有可能是在表的数据量比较大的情况下,该表的索引设置不合理造成的。故障解决:请使用explainplan查看其查询计划,看是否使用了全表扫描或不适合的索引,据此调整索引或查询语句。2.19由于buffer参数设置不合理导致exp失败故障现象:使用exp导出某个表不成功故障原因:跟buffer设置有关故障解决:一般要求设置比较大的buffer进行exp备份,但当物理内存不够的情况下,buffer设置要合理,这种情况下,可尝试不设置buffer进行备份2.20由于exp不向上兼容,语言不兼容,导致不同版本、不同字符集的数据库无法导入故障现象:进行imp导入时报数据格式不正确,数据导入失败故障原因:目前了解816/817数据库导出的格式不兼容,但oracle9i可以向下兼容,导出和导入环境的字符集不一致,也不能完成导入,但字符集一致、版本一致的数据库在不同llkS平台上可以互导。故障解决:保证数据库版本的一致性,保证字符集的一致。或使用其他工具。2.21由于创建表空间时误将其创建在以‘本地管理',导致在表空间上的所有对象无法修改其存储参数故障现象:无法修改该表空间及在该表空间上创建的所有对象的storage参数。故障原因:只有在‘字典中管理’的表空间才可以设置手工设置STORAGE参数故障解决:编辑initzxin.ora,修改参数compatible」,8.1.0”修改成compatible」,8.1.6”,执行:$sqlplussys/change_on_installsql>execdbms_space_admin.Tablespace_Migrate_FROM_Local('ZXIN_BILL');sql>commit;sql>exit这样,表空间就从'本地管理'修改成DMT数据字典管理方式了,然后再手工修改表空间存储参数和对象存储参数即可2.22错误地在系统表空间上建无关的数据文件故障现象:系统表空间上存在着无关的数据文件故障原因:错误地在系统表空间上建了无关的数据文件故障解决:如果是创建在OEM_REPOSITORY表空间上,则可以将该表空间删除后重建,注意不要再包含错建的数据文件如果是其他系统表空间,可以使用:alterdatabasedatafile‘’resizeto1M;命令尽量减少空间浪费。2.23oracle客户端在p4上安装不成功故障现象:奔四的机器无法安装oracle8i客户端故障原因:oracle8i的一个bug故障解决:1、将ORACLE软件拷贝到硬盘。2、将硬盘目录文件\stage\Components\oracle.swd.jre\0/1\DataFiles\Expanded\jre\win32\bin\symcjit.dll的文件改名为symcjit.old3、从\install\win32目录下运行SETUP.exe文件进行安装。2.24由于listener.ora或tnsnames.ora配置问题导致网络问题故障现象:lsnrctlstart启动数据库网络服务不成功;使用tnsping无法ping通数据库服务器;sdf无法登录数据库故障原因:listener.ora或tnsnames.ora配置不正确故障解决:请按如下模板配置listener.ora:LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=version_sv0(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=version_sv()(PORT=1522))(address=(protocol=ipc)(key=extproc)))SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=zxin)(ORACLE_HOME=/home/oracle/oracle81)(SID_NAME=zxin))(SID_DESC=(SID_NAME=extzxin)(ORACLE_HOME=/home/oracle/oracle81)(PROGRAM=extproc)))请按如下模板配置tnsnames.ora:ZXIN=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=version_sv)(PORT=1522))■)(CONNECT_DATA=(SERVICE_NAME=zxin)))zx10_40_57_163=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=version_sv()(PORT=1522))■)(CONNECT_DATA=(SERVICE_NAME=zxin)(SERVER=DEDICATED)))extproc_connection_data=(description=(address=(protocol=ipc)(key=extproc))(connect_data=(sid=extzxin)))2.25由于环境变量设置问题导致VERSOIN版本启动问题故障现象:如果没有正确配置ORACLE环境变量,将导致version启动时sdf进程无法正常启动或无法正常连接数据库故障原因:请按要求配置zxin10用户与ORACLE相关的环境变量故障解决:请检查$ORACLE_HOME、$ORACLE_BASE、$LIBPATH、$SHLIB_PATH、$LD_LIBRARY_PATH等环境变量是否正确。2.26用户数据、表破坏下的数据恢复故障现象:某一个用户的所有数据或单个表的数据全部丢失,无法读取相关数据故障原因:由于人为误操作或硬件问题导致用户数据或单个表的数据全部丢失故障解决:使用imp命令将备份出的数据恢复(注意,只能恢复到备份时间点)对于单表恢复的命令为:impsystem/managerfromuser=zx沮touser=zxintables=oper_dbuserfAe=zxindb.dmp对于整个用户数据丢失恢复的情况将该用户删除重建:dropuserzxinCASCADE;createuserzxindefauletablespace...temporarytablespace;然后使用imp导入:impsystem/managerfromuser=zxintouser=zxinfle=zxindb.dmp2.27由于os层问题导致数据库ORA-600错误故障现象:启动数据库时报:ORA-600故障原因:ORA-600错误一般跟os层的错误有关,比如文件、内存、I/O问题、硬件故障故障解决:碰到此类错误,请检查:所做的操作目前os层有没有各类报错解决os层问题后再重试如果还是不行,只能重装系统,重装数据库三、将导致数据库安装失败或打补丁失败的情况2.28由于环境变量或没有安装make文件导致数据库安装失败故障现象:安装oracle时进行到link阶段时报:找不到make文件故障原因:没有安装包含make文件的软件包故障解决:安装包含make文件的软件包后重试。(aix下的软件包为:bos.adt.base)2.29由于/tmp等文件系统设置太小导致数据库无法正常安装故障现象:安装oracle时进行到link阶段时,在进行某个模块的make时报错,查看文件系统大小,发现/tmp文件系统已满故障原因:/tmp文件系统已满故障解决:请安装前保证/tmp文件系统有500M剩余空间2.30HPUX上由于核心参数设置不对导致数据库无法正常启动故障现象:oracle安装到Link阶段时报错故障原因:hpux上安装oracle数据库时,一定要先调整好核心参数再安装,否则将无法成功安装故障解决:按照安装手册调整hpux的核心参数(一般是通过setup脚本做的,无需手工配置,请检查setup是否成功执行并成功修改了核心参数)2.31在64位的oracle817上打32的补丁失败故障现象:安装补丁时,在Link阶段报错,通过安装日志检查,发现连接的动态库是32位的故障原因:补丁也分oracle817(64位)和oracle817(32位)的,请下载和打补丁时注意一一匹配。故障解决:将打补丁前的oracle817备份文件恢复,选择匹配的补丁重新安装。2.32由于安装备机数据库时是使用的拷贝方式,所以导致在备机上安装补丁失败故障现象:在备机上使用oracle正常打补丁方式时报版本不对,无法正常打补丁。故障原因:由于外面大部分机器备机oracle的安装是通过从主机拷贝的方式完成的,而部分如/etc目录下的文件没有同步到备机,所以导致oracle补丁安装程序读不到相关版本信息,无法完成补丁安装。故障解决:a.可以采取将主机打完补丁后将$ORACLE_HOME目录拷贝到备机的方式b.可以将/etc下的oratab和oralnst.loc拷贝到备机,再重试补丁安装2.33由于安装oracle时错误地在$ORACLE_HOME目录下创建link,导致将打过补丁后的版本拷贝到备机失败故障现象:主机打完oracle补丁后,将主机$ORACLE_HOME文件同步到备机时间非常长!故障原因:使用rcp命令同步时,将导致ln下的东西拷双份故障解决:请检查主机上是否有不适合的ln连接,连接目标是一个目录(该目录下有大量文件),检查连接的方法是:find.-typel-execls-l{}\;2.34oracle下的字符集问题故障现象:一般中文、英文环境都可以将oracle服务器字符集安装成ZHS16GBK。如果不小心装成英文字符,则会无法输入中文字符故障原因:一般是手工建库的情况导致的,通过crdb.sh执行建库的,不存在这个问题。故障解决:1)首先安装oracle的时候必须选择安装中文字符集的支持2)由于中文字符集是英文字符集的超集,所以如果已经安装英文数据库字符集的话,可以用如下方式转换:SQL>SHUTDOWNIMMEDIATE;--orNORMAL<doafullbackup>SQL>STARTUPMOUNT;SQL>ALTERSYSTEMENABLERESTRICTEDSESSION;SQL>ALTERSYSTEMSETJOB_QUEUE_PROCESSES=0;SQL>ALTERDATABASEOPEN;SQL>ALTERDATABASECHARACTERSETZHS16GBK;SQL>SHUTDOWNIMMEDIATE;--orNORMALSQL>STARTUP;第三章、自定义存储过程、脚本我们自定义了一些存储过程和脚本,在进行数据库安装时自动加到数据库里,如果没有安装,则可以手工安装。脚本名称:oratool.sql检查是否安装方法:sqlplus/nologSQL>connect/assysdba
SQL>execsp_helptool如果报sp_helptool找不到则表示没有安装。安装方法:SQL>@oratool.sql使用方法:SQL>setserveroutputonSQL>execsp_helptool;具体的存储过程包括:sp_whosp_locksp_configuresp_helptextsp_helptbssp_helprbssp_helplogsp_helpdbfSQL>setserveroutputonsize1000000pagesize1000linesize10SQL>execsp_***;:informationaboutallsessionsandthelatestsql具体的存储过程包括:sp_whosp_locksp_configuresp_helptextsp_helptbssp_helprbssp_helplogsp_helpdbf:informationaboutalllocks:systemparameterconfiguration:sqltextofaprocedure:tablespaceinformation:rollbacksegmentinformation:redologinformation:datafileinformationsp_sysmonsp_usertracesp_sessiontraceitcarefully!!:sp_sysmonsp_usertracesp_sessiontraceitcarefully!!:traceasessionbyusername,!!youshoulduseitcarefully!!:traceasessionbysessionidandserial#,!!youshoulduse具体命令的详细帮助可以使用如下方式:SQL>execsp_helptool('sp_who');**************************OracleToolsHelpSystem******************************Beforeusingthetool,enterfollowingcommandsinSQL/PLUSsetserveroutputonsize1000000pagesize1000linesize1000sp_who:informationaboutallsessionsandthelatestsql******columndescription******SID:SessionidentifierSER#:Sessionserialnumber.UsedtoidentifyuniquelyasessionsobjectsPID:OperatingsystemprocessidentifierUSERNAME:OracleusernameOSUSER:OperatingsystemclientusernameSERVER:Servertype:D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论