oracle incident目录下的文件是否可以删除?

oracle incident目录下的文件是否可以删除?,第1张

tarce文件是oracle数据库在运行时产生的日志,该trace文件是可以删除的。

在删除前,先查看trace的参数配置。

SQL>show parameter trace_en

VALUE值应该是TRUE。

然后在系统中查询出30天前的tarce文件,并删除。

$find trace -ctime +30|more

$find trace -ctime +30 |xargs rm -f

通过健康检查让你的Oracle数据库远离损坏

俗话说 解决一件事往往能有 种办法 那么我们如何按照这些方法去做?

甲骨文公司发布Oracle g时 在被称作为健康监控器的框架下推出了数据库健康检查功能 在这个框架内健康检查运行目的是诊断检查你的Oracle数据库 它将监测数据库的各个不同组成部分—主要是检查损坏 包括物理和逻辑上的 虽然没有 种方式 但甲骨文有的是 正如我们在过去关于自动诊断库(Automatic Diagnostic Repository ADR)的文章上看到的那些 还试图通过ADR执行和接入到健康检查 然而 正如我们将看到 它也许不是最好的办法做到这一点

所以 在你的数据库中有数据文件 块 撤消 重做 字典 或坐标系损坏吗?你实际上可能运行得很好 因此甚至我们不知道这些损坏的存在 正如我们将看到 在下面的例子中 我有一个新安装的Oracle并且有些损坏在其中 我真正地希望搜寻那些错误但那是在另一天 当运行健康检查 你作为一个数据库管理员 可以决定是使用临时模式还是使用完全反应模式运行 当以完全反应模式运行时会有人会抱怨错误讯息或你可能会看到一个Oracle警报警告运行健康检查所出现的错误 你还可以通过使用DBMS_HM PL/SQL软件包进行健康检查 *** 作 依赖于这些是如何运行在你的系统上 他们将花费多久 你如何频繁看到损坏信息 你可能要安排这些作为一个任务 不过 请注意 这是一个新功能 并附带所有其他的新功能 你应该 %相信他们不会造成损坏或锁定你的系统 只要适当低测试和监视那些 *** 作 同样值得注意的是 这些健康检查可以运行在在线和现有的据库上 或者当数据库是离线( NOMOUNT )时 由于有多种类型的健康检查 因此有些健康检查 只能运行在离线数据库的上 举例来说 重做完整性检查只能是脱机运行 当仔细想想就能明白这其中的奥秘 不用进行各个不同的损坏/完整性检查 你可以使用下列SQL查看他们 它可以让你知道那些检查是可以在线进行的 那些检查是要在脱机的情况下进行的  

 SQL>SELECT name internal_check offline_capable description FROM v$hm_checkNAME I O DESCRIPTION HM Test Check Y Y Check for HM FunctionalityDB Structure Integrity Check N Y Checks integrity of all database filesData Block Integrity Check N Y Checks integrity of a datafile blockRedo Integrity Check N Y Checks integrity of redo log contentLogical Block Check Y N Checks logical content of a blockTransaction Integrity Check N N Checks a transaction for corruptionsUndo Segment Integrity Check N N Checks integrity of an undo segmentAll Control Files Check Y Y Checks all control files in the databaseCF Member Check Y Y Checks a multiplexed copy of the control fileAll Datafiles Check Y Y Check for all datafiles in the databaseSingle Datafile Check Y Y Checks a datafileLog Group Check Y Y Checks all members of a log groupLog Group Member Check Y Y Checks a particular member of a log groupArchived Log Check Y Y Checks an archived logRedo Revalidation Check Y Y Checks redo log contentIO Revalidation Check Y Y Checks file accessabilityBlock IO Revalidation Check Y Y Checks file accessabilityTxn Revalidation Check Y N Revalidate corrupted txnFailure Simulation Check Y Y Creates dummy failuresDictionary Integrity Check N N Checks dictionary integrity        由于一些健康检查需要额外的输入参数 为了简便起见 我决定只演示那里有不需要输入参数的检查 如果你想要看看那些需要输入参数的检查 你可以执行下列SQL中 我在Oracle文件中发现的

 SELECT c name check_name p name parameter_name p type p default_value p descriptionFROM v$hm_check_param p v$hm_check cWHERE p check_id = c id and c internal_check = N ORDER BY c name        我不知道我已经遭遇多少次字典问题 从字典表的错误信息到锁定问题 所以我对字典完整性检查比较兴奋 字典完整性检查将检查字典的核心对象完整性 包括 tab$ clu$ fet$ uet$ seg$ undo$ ts$ file$ obj$ ind$ icol$ col$ user$ con$ cdef$ ccol$ bootstrap$ objauth$ ugroup$ tsq$ syn$ view$ typed_view$ superobj$ seq$ lob$ coltype$ subcoltype$ ntab$ refcon$ opqtype$ dependency$ access$ viewcon$ icoldep$ dual$ sysauth$ objpriv$ defrole$ 和 ecol$ 这是我很关心的一个很好很长的列表 以及检查应该看看字典的条目内容 制约因素和参照完整性

通过手动运行字典完整性检查 我们需要分配下列DBMS_HM RUN_CHECK PL/SQL软件包—给予该 *** 作额外的名称 在这个例子中 我将命名我的 *** 作为DICTIONARY_CHECK_

 BEGINDBMS_HM RUN_CHECK( Dictionary Integrity Check DICTIONARY_CHECK_ )END/         现在 这是它得到一些有趣的 DBMS_HM RUN_CHECK在ADR存贮其相关信息 因此使用DBMS_HM PL/SQL软件包或ADRCI功能生成的报告 对我来说 当DBMS_HM PL/SQL软件包将以HTML XML或文本格式输出报告时 我们已经没有多少选择 因为ADRCI功能只以XML的形式输出报告 然而 我们通过对比这两种方法能使我们看到ADR存在的不足以及知道ADR和DBMS_HM在什么地方功能有重叠

由于DBMS_HM RUN_CHECK将其信息存储在ADR中 我们可以很容易地看到HM_RUN 通过输入下列ADRCI命令  

 adrci>show hm_runADR Home = /opt/app/oracle/diag/rdbms/db fs/db FS:***************************************************************************************************************HM RUN RECORD **********************************************************RUN_ID RUN_NAME DICTIONARY_CHECK_ CHECK_NAME Dictionary Integrity CheckNAME_ID MODE START_TIME : : : RESUME_TIME END_TIME : : : MODIFIED_TIME : : : TIMEOUT FLAGS STATUS SRC_INCIDENT_ID NUM_INCIDENTS ERR_NUMBER REPORT_FILE

这最显著的信息 或缺失信息 是REPORT_FILE为 此栏只有当报告生成时才能被填充 建立一个报告可以通过DBMS_HM包或通过ADRCI的 CREATE REPORT命令    

使用DBMS_HM包        

 SET LONG SET LONGCHUNKSIZE SET PAGESIZE SET LINESIZE SELECT DBMS_HM GET_RUN_REPORT( DICTIONARY_CHECK_ ) FROM DUAL

使用ADRCI CREATE REPORT命令 

 CREATE REPORT hm_run DICTIONARY_CHECK_ When using the DBMS_HM package the output looks like:当使用DBMS_HM包时输出结果如下 DBMS_HM GET_RUN_REPORT( DICTIONARY_CHECK_ ) Basic Run InformationRun Name : DICTIONARY_CHECK_ Run Id : Check Name : Dictionary Integrity CheckMode : MANUALStatus : PLETEDStart Time : : : : End Time : : : : Error Encountered : Source Incident Id : Number of Incidents Created : Input Paramters for the RunTABLE_NAME=ALL_CORE_TABLESCHECK_MASK=ALLRun Findings And RemendationsFindingFinding Name : Dictionary InconsistencyFinding ID : Type : FAILUREStatus : OPENPriority : CRITICALMessage : SQL dictionary health check: file$ pk on object FILE$failedMessage : Damaged rowid is AAAAARAABAAAAByAAF description: No furtherdamage description availableFindingFinding Name : Dictionary InconsistencyFinding ID : Type : FAILUREStatus : OPENPriority : CRITICALMessage : SQL dictionary health check: dependency$ dobj# fk onobject DEPENDENCY$ failedMessage : Damaged rowid is AAAABnAABAAAOiHABI description: No furtherdamage description availableFindingFinding Name : Dictionary InconsistencyFinding ID : Type : FAILUREStatus : OPENPriority : CRITICALMessage : SQL dictionary health check: dependency$ dobj# fk onobject DEPENDENCY$ failedMessage : Damaged rowid is AAAABnAABAAAQXqAA description: No furtherdamage description available

运行后DBMS_HM包或ADRCI 的CREATE REPORT命令后 我们可以重新输入ADRCI显示hm_run命令 现在可以看到REPORT_FILE信息被填充了

REPORT_FILE /opt/app/oracle/diag/rdbms/db fs/db FS/hm/HMREPORT_DICTIONARY_CHECK_ hm

当使用ADRCI功能 你必须先运行生成报告文件的命令 如果该文件不存在 那么运行另一个命令 以显示其内容 你还可以查看该报告通过ADRCI输入以下命令 因为输出的结果在XML文档中 因此它不会在这里显示

show report hm_run DICTIONARY_CHECK_

lishixinzhi/Article/program/Oracle/201311/18140


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10039298.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存