若何对Oracle举行安康查抄-性能调优[Oracle防范]
本文“若何对Oracle举行安康查抄-性能调优[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
俗话说,办理一件事常常能有100种办法....那么我们若何按照这些办法去做?
甲骨文公司公布Oracle 11g时,在被称作为安康监控器的框架下推出了数据库安康查抄功效.在这个框架内安康查抄运行目的是诊断查抄你的Oracle数据库.它将监测数据库的各个差别构成部份—主如果查抄破坏,包含物理和逻辑上的.固然没有100种方法... ,但甲骨文有的是,正如我们在过去关于自动诊断库(Automatic Diagnostic Repository-ADR)的文章上看到的那些,还试图通过ADR履行和接入到安康查抄.但是,正如我们将看到,它大概不是最好的办法做到这一点.
所以,在你的数据库中有数据文件,块,撤消,重做,字典,或坐标系破坏吗?你实际上大概运行得很好,因此乃至我们不知道这些破坏的存在.正如我们将看到,在下面的例子中,我有一个新安装的Oracle并且有些破坏在此中.我真正地但愿搜索那些错误; 但那是在另一天.当运行安康查抄,你作为一个数据库管理员,可以决意是利用暂时情势还是利用完好反映情势运行,当以完好反映情势运行时会有人会抱怨错误讯息或你大概会看到一个Oracle警报告诫运行安康查抄所呈现的错误.你还可以通过利用DBMS_HM PL/SQL软件包举行安康查抄操作.依靠于这些是若何运行在你的系统上,他们将耗费多久,你若何频繁看到破坏信息,你大概要安置这些作为一个任务.不过,请注意,这是一个新功效,并附带全部其他的新功效,你应当100 %相信他们不会造成破坏或锁定你的系统.只要得当低测试和监督那些操作.一样值得注意的是,这些安康查抄可以运行在在线和现有的据库上,大概当数据库是离线( NOMOUNT )时 .由于有多种范例的安康查抄,因此有些安康查抄,只能运行在离线数据库的上.举例来说,重做完好性查抄只能是脱机运行,当细心想想就可以懂得这此中的奥妙.不用举行各个差别的破坏/完好性查抄,你可以利用下列SQL查看他们.它可以让你知道那些查抄是可以在线举行的,那些查抄是要在脱机的情形下举行的.
SQL> SELECT name,internal_check,offline_capable,description FROM v$hm_check; NAME I O DESCRIPTION ------------------------------ - - ---------------------------------------------- HM Test Check Y Y Check for HM Functionality DB Structure Integrity Check N Y Checks integrity of all database files Data Block Integrity Check N Y Checks integrity of a datafile block Redo Integrity Check N Y Checks integrity of redo log content Logical Block Check Y N Checks logical content of a block Transaction Integrity Check N N Checks a transaction for corruptions Undo Segment Integrity Check N N Checks integrity of an undo segment All Control Files Check Y Y Checks all control files in the database CF Member Check Y Y Checks a multiplexed copy of the control file All Datafiles Check Y Y Check for all datafiles in the database Single Datafile Check Y Y Checks a datafile Log Group Check Y Y Checks all members of a log group Log Group Member Check Y Y Checks a particular member of a log group Archived Log Check Y Y Checks an archived log Redo Revalidation Check Y Y Checks redo log content IO Revalidation Check Y Y Checks file accessability Block IO Revalidation Check Y Y Checks file accessability Txn Revalidation Check Y N Revalidate corrupted txn Failure Simulation Check Y Y Creates dummy failures Dictionary Integrity Check N N Checks dictionary integrity |
由于一些安康查抄需求额外的输入参数,为了简便起见,我决意只演示那边有不需求输入参数的查抄.假如你想要看看那些需求输入参数的查抄,你可以履行下列SQL中,我在Oracle文件中发现的:
SELECT c.name check_name, p.name parameter_name, p.type, p.default_value, p.description FROM v$hm_check_param p, v$hm_check c WHERE 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_11032008.
BEGIN DBMS_HM.RUN_CHECK('Dictionary Integrity Check', 'DICTIONARY_CHECK_11032008'); 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_run ADR Home = /opt/app/oracle/diag/rdbms/db11fs/db11FS: ***************************************************** ********************************************************** HM RUN RECORD 3 ********************************************************** RUN_ID 41 RUN_NAME DICTIONARY_CHECK_11032008 CHECK_NAME Dictionary Integrity Check NAME_ID 24 MODE 0 START_TIME 2008-11-03 18:32:10.819805 -07:00 RESUME_TIME END_TIME 2008-11-03 18:32:18.827387 -07:00 MODIFIED_TIME 2008-11-03 18:32:18.827387 -07:00 TIMEOUT 0 FLAGS 0 STATUS 5 SRC_INCIDENT_ID 0 NUM_INCIDENTS 0 ERR_NUMBER 0 REPORT_FILE |
这最明显的信息,或缺失信息,是REPORT_FILE为 .此栏只有当报告生成时才能被填充.成立一个报告可以通过DBMS_HM包或通过ADRCI的 CREATE REPORT号令.
以上是“若何对Oracle举行安康查抄-性能调优[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |