[Oracle19C 数据库管理] Automatic Diagnostic Repository ADR 与动态性能视图

Automatic Diagnostic Repository

ADR在系统层面跟踪和记录系统诊断数据。

ADR BASE: 由DIAGNOSTIC_DEST初始化参数指定, 默认存放在/u01/app/oracle.
ADR HOME: /diag//<db_id>/<instance_id>。 例如 /u01/app/oracle/diag/rdbms/orcl/ORCL。

实例启动时,如果环境变量$ORACLE_BASE设置了,DIAGNOTIC_DEST就是ORACLE_BASE的值。
如果环境变量$ORACLE_BASE没有设置,DIAGNOTIC_DEST就是ORACLE_HOME/log。

Alert Log

Alert log保存了实例和数据库的以下信息:

  • 任何非默认的初始化参数
  • 所有的内部错误,坏块和死锁dead lock。
  • 管理型操作,例如DDL操作, STARTUP, SHUTDOWN, ARCHIVE LOG, RECOVER等
  • Shared Server 与分发器的信息与错误。
  • 物化视图的动态刷新错误。

Alert Log位置1:
每一个数据库实例都有一个ALERT_.log文件,他存放在$ORACLE_BASE/diag/rdbms/<db_name>/trace目录中。

Alert Log位置2:
log.xml,存放在$ORACLE_BASE/diag/rdbms/<db_name>/alert目录中。

ALERT log会不断的增长,应该定期备份并删除。

adrci命令可以查看ADR的trace文件和alert log。

Trace文件

Trace文件包括:

  • 优化实例的信息文件
  • 错误信息。

每一个后台进程关联一个TRACE文件。当一个关键错误发生时,会立即给它分配一个事件代码,诊断信息连同事件代码被系统捕获,然后写入ADR。
ADR文件会根据文件保留的策略参数进行自动清理。

DDL日志文件

可以通过设置初始化参数 ENABLE_DDL_LOGGING为TRUE来进行ddl的捕获。

DDL日志存放在:

  • $ORACLE_BASE/diag/rdbms///log/ddl/log.xml中。
  • $ORACLE_BASE/diag/rdbms///log/ddl.LOG中。

动态性能视图

ADR文件清理机制

  • incident和alert log文件, 365天自动清理。
  • trace和core dumps文件,30天自动清理。
  • 系统先按照时间清理过期文件,如果清理后仍然大于目标的大小,会继续清理ADR直到达到目标。

动态性能视图

可以通过动态性能视图查询一下信息:

  • Session, File State和锁
  • process of jobs and tasks
  • Backup status, memory usage and allocation
  • System and Session parameters
  • SQL执行结果
  • 统计与指标

动态性能视图使用v$开头。由数据库在内存构建,不存在真实的表。
动态性能视图的所有者是sys用户。它所提供的信息依赖于数据库的状态(NOMOUNT, MOUNT, OPEN)。
可以在V$FIXED_TABLE中查询到所有视图的名字。
读一致性不能保证,因为数据是动态不断变化的。

数据字典

存放了数据库的元数据。包括了数据库中所有对象的名字和属性。任何对象的创建和修改都会引发数据字典的更新。数据字典的数据由数据库进行维护,
我们无法直接访问数据字典表,只能通过数据字典视图进行访问。

数据字典可以:

  • 查询用户、对象、约束、存储。
  • 数据库对象的结构或者定义更改后,Oracle数据库服务器进行数据字典的更新。
  • 任何用户可以查询数据库信息。
  • 数据字典的拥有者是sys用户。
  • 无法使用SQL进行更改。

DICTIONARY视图(同义词DICT)可以查询所有数据字典表和视图的名字和描述。
DICT_COLUMNS视图可以查看数据字典的列信息和定义。

CDB_ : CDB包含的所有PDB的所有对象的元数据。
DBA_ : PDB所有对象的元数据。
ALL_ : 用户可以访问的所有对象的元数据。 如果USER_A有权限访问一个表,即使所有者是USER_B,这个表也会出现在ALL_TABLES表中。
USER_: 当前用户所拥有的所有对象的元数据。

CDB_和DBA_视图只能被SYSDBA、有SELECT ANY DICTIONARY权限、SELECT_CATALOG_ROLE用户、或者直接给予视图访问权限的用户所查询。

posted on 2023-01-05 16:36  LeoZhangJing  阅读(143)  评论(0编辑  收藏  举报

导航