[Oracle19C 数据库管理] Automatic Diagnostic Repository ADR 与动态性能视图
Automatic Diagnostic Repository
ADR在系统层面跟踪和记录系统诊断数据。
ADR BASE: 由DIAGNOSTIC_DEST初始化参数指定, 默认存放在/u01/app/oracle.
ADR HOME:
实例启动时,如果环境变量$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_
Alert Log位置2:
log.xml,存放在$ORACLE_BASE/diag/rdbms/<db_name>
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 阅读(160) 评论(0) 编辑 收藏 举报