Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database.
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 orMOUNT
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).
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 data files
listed in the control file. If the database is in
NOMOUNT
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 the
V$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$
andcol$
. 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.
-
Verifies the contents of dictionary entries for each dictionary object.
http://www.dba-oracle.com/oracle_database_health_check.htm
No comments:
Post a Comment