Health Monitor 健康檢查
About Health Monitor Checks
Health Monitor checks (also known as checkers, health checks, or checks) examine various layers and components of the database. Health checks detect file corruptions, physical and logical block corruptions, undo and redo corruptions, data dictionary corruptions, and more. The health checks generate reports of their findings and, in many cases, recommendations for resolving problems. Health checks can be run in two ways:
-
Reactive—The fault diagnosability infrastructure can run health checks automatically in response to a critical error.
-
Manual—As a DBA, you can manually run health checks using either the DBMS_HM PL/SQL package or the Enterprise Manager interface. You can run checkers on a regular basis if desired, or Oracle Support may ask you to run a checker while working with you on a service request.
Health Monitor checks store findings, recommendations, and other information in the Automatic Diagnostic Repository (ADR).
Health checks can run in two modes:
-
DB-online mode means the check can be run while the database is open (that is, in OPEN mode or MOUNT mode).
-
DB-offline mode means the check can be run when the instance is available but the database itself is closed (that is, in NOMOUNT mode).
All the health checks can be run in DB-online mode. Only the Redo Integrity Check and the DB Structure Integrity Check can be used in DB-offline mode.
Types of Health Checks
Health monitor runs the following checks:
-
DB Structure Integrity Check—This check verifies the integrity of database files and reports failures if these files are inaccessible, corrupt or inconsistent. If the database is in mount or open mode, this check examines the log files and datafiles listed in the control file. If the database is inNOMOUNT mode, only the control file is checked.
-
Data Block Integrity Check—This check detects disk image block corruptions such as checksum failures, head/tail mismatch, and logical inconsistencies within the block. Most corruptions can be repaired using Block Media Recovery. Corrupted block information is also captured in theV$DATABASE_BLOCK_CORRUPTION view. This check does not detect inter-block or inter-segment corruption.
-
Redo Integrity Check—This check scans the contents of the redo log for accessibility and corruption, as well as the archive logs, if available. The Redo Integrity Check reports failures such as archive log or redo corruption.
-
Undo Segment Integrity Check—This check finds logical undo corruptions. After locating an undo corruption, this check uses PMON and SMON to try to recover the corrupted transaction. If this recovery fails, then Health Monitor stores information about the corruption in V$CORRUPT_XID_LIST. Most undo corruptions can be resolved by forcing a commit.
-
Transaction Integrity Check—This check is identical to the Undo Segment Integrity Check except that it checks only one specific transaction.
-
Dictionary Integrity Check—This check examines the integrity of core dictionary objects, such as tab$ and col$. It performs the following operations:
-
Verifies the contents of dictionary entries for each dictionary object.
-
Performs a cross-row level check, which verifies that logical constraints on rows in the dictionary are enforced.
-
Performs an object relationship check, which verifies that parent-child relationships between dictionary objects are enforced.
The Dictionary Integrity Check operates on the following dictionary objects:
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$, and ecol$.
-
Running Health Checks Manually
Health Monitor provides two ways to run health checks manually:
-
By using the DBMS_HM PL/SQL package
-
By using the Enterprise Manager interface, found on the Checkers subpage of the Advisor Central page
Running Health Checks Using the DBMS_HM PL/SQL Package
The DBMS_HM procedure for running a health check is called RUN_CHECK. To call RUN_CHECK, supply the name of the check and a name for the run, as follows:
BEGIN DBMS_HM.RUN_CHECK('Dictionary Integrity Check', 'my_run'); END; /
To obtain a list of health check names, run the following query:
SELECT name FROM v$hm_check WHERE internal_check='N'; NAME ---------------------------------------------------------------- DB Structure Integrity Check Data Block Integrity Check Redo Integrity Check Transaction Integrity Check Undo Segment Integrity Check Dictionary Integrity Check
Most health checks accept input parameters. You can view parameter names and descriptions with the V$HM_CHECK_PARAM view. Some parameters are mandatory while others are optional. If optional parameters are omitted, defaults are used. The following query displays parameter information for all health checks:
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;
Input parameters are passed in the input_params argument as name/value pairs separated by semicolons (;). The following example illustrates how to pass the transaction ID as a parameter to the Transaction Integrity Check:
BEGIN DBMS_HM.RUN_CHECK ( check_name => 'Transaction Integrity Check', run_name => 'my_run', input_params => 'TXN_ID=7.33.2'); END; /
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29477587/viewspace-1255371/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 11g health monitor健康監控Oracle
- Health Monitor簡介
- Oracle EBS Applications 11i Health Check(健康檢查11項)OracleAPP
- 【健康檢查】How to Perform a Health Check on the Database (Doc ID 122669.1)ORMDatabase
- 11g_Health_Monitor
- Oracle 11g Health MonitorOracle
- Java後端分散式系統的服務健康檢查:Spring Boot HealthJava後端分散式Spring Boot
- 【Azure 應用服務】App Service 執行狀況健康檢查功能簡介 (Health check)APP
- 11g New Feature: Health monitor
- EntityFramework Core健康檢查Framework
- SOFABoot 健康檢查能力分析boot
- Oracle SCN健康狀態檢查Oracle
- 資料庫健康檢查(轉)資料庫
- MySQL資料庫健康檢查--MySQL巡檢MySql資料庫
- .Net Core基礎的健康檢查
- Docker 容器的健康狀態檢查Docker
- 解決pod健康檢查問題
- 構建api gateway之 健康檢查APIGateway
- redis健康檢查與故障轉移Redis
- Kubernetes應用健康檢查
- Oracle ERP系統健康檢查Oracle
- Nginx負載均衡之健康檢查Nginx負載
- 利用RDA對Oracle做健康檢查Oracle
- ORAchk-資料庫健康檢查資料庫
- IMS Health:2015年全球醫療健康類 APP 調查報告APP
- 11g New Feature: Health monitor (Doc ID 466920.1)
- MSSQL資料庫健康檢查--SQL Server巡檢SQL資料庫Server
- 系統高可用之健康檢查和健康度量那些事
- StartUp Health:健康行業年中投資報告行業
- 如何給mac硬體做健康檢查Mac
- 教你如何mac硬體做健康檢查Mac
- 在.NET Core 中實現健康檢查
- 漫談Oracle資料庫健康檢查Oracle資料庫
- DB健康檢查使用RDA收集資料
- Oracle資料庫健康檢查常用SQLOracle資料庫SQL
- Kubernetes-POD的健康檢查
- Battery Health 3 for Mac(電池健康管理工具)BATMac
- [20190306]11g health monitor.txt