
以下是对 Oracle 19C ASM 中 V$ASM_AUDIT_LAST_ARCH_TS 动态性能视图 的深度解析,涵盖作用、使用场景、字段含义、相关视图、基表、原理及常用 SQL 查询:
1. 核心作用
V$ASM_AUDIT_LAST_ARCH_TS 记录 ASM 审计事件最后一次被归档的时间戳,主要功能包括:
- 追踪审计事件归档操作的完成时间
- 确保审计数据的连续性(防止事件丢失)
- 提供审计归档周期的基准时间点
- 支持增量审计数据提取(ETL场景)
📌 定位:
ASM 审计系统的"归档书签",标记最后成功归档的时间点,确保下次归档从此时间点继续。
2. 使用场景
- 审计归档监控:验证归档作业是否按时执行
- 数据连续性检查:确保审计事件无间隙归档
- 增量数据抽取:ETL 系统获取上次归档后的新事件
- 合规性审计:证明审计记录完整归档
- 故障恢复:归档中断后定位恢复起点
- 性能分析:计算归档执行频率和持续时间
3. 字段含义
该视图结构简洁但关键,通常包含以下列:
| 列名 | 数据类型 | 说明 |
|---|---|---|
GROUP_NUMBER | NUMBER | 关联的磁盘组编号(0 表示实例级归档) |
LAST_ARCH_TIMESTAMP | TIMESTAMP(6) | 最后一次成功归档的时间戳(精确到微秒) |
ARCH_TYPE | VARCHAR2(16) | 归档类型:AUTO(自动)MANUAL(手动)INITIAL(初始归档) |
ARCH_DESTINATION | VARCHAR2(4000) | 归档目标位置(如文件路径或数据库链接) |
STATUS | VARCHAR2(16) | 最后一次归档状态:SUCCESSPARTIALFAILED |
4. 相关视图与基表
相关视图
| 视图 | 说明 |
|---|---|
V$ASM_AUDIT | 当前有效的审计事件 |
V$ASM_AUDIT_CLEAN_EVENTS | 已清理的审计事件 |
V$ASM_AUDIT_CONFIG_PARAMS | 审计配置参数(含归档设置) |
GV$ASM_AUDIT_LAST_ARCH_TS | RAC 环境的全局视图(所有节点) |
基表(X$表)
X$KFFAUDARCH:V$ASM_AUDIT_LAST_ARCH_TS的底层内存结构-- 查看基表结构(仅供研究) SELECT * FROM X$KFFAUDARCH WHERE kffaudarch_grp = 1; -- 磁盘组1的归档记录
5. 核心原理
审计归档机制
关键工作流程
-
触发条件:
- 时间驱动(默认每24小时)
- 事件数量阈值(默认10,000条)
- 手动触发(
ALTER SYSTEM ARCHIVE ASM AUDIT)
-
归档过程:
- 从
LAST_ARCH_TIMESTAMP开始选择新事件 - 写入目标位置(文件/数据库)
- 提交后更新
LAST_ARCH_TIMESTAMP = MAX(EVENT_TIMESTAMP)
- 从
-
故障处理:
- 失败时保留原
LAST_ARCH_TIMESTAMP - 部分成功时标记
STATUS='PARTIAL' - 下次归档从最后成功位置继续
- 失败时保留原
6. 常用 SQL 查询示例
(1) 查看所有磁盘组的归档状态
SELECT g.NAME AS diskgroup,
a.LAST_ARCH_TIMESTAMP,
a.ARCH_TYPE,
a.STATUS
FROM V$ASM_AUDIT_LAST_ARCH_TS a
LEFT JOIN V$ASM_DISKGROUP g
ON a.GROUP_NUMBER = g.GROUP_NUMBER;
(2) 检查归档延迟
SELECT GROUP_NUMBER,
LAST_ARCH_TIMESTAMP,
SYSTIMESTAMP - LAST_ARCH_TIMESTAMP AS delay_interval
FROM V$ASM_AUDIT_LAST_ARCH_TS
WHERE STATUS = 'SUCCESS'
AND SYSTIMESTAMP - LAST_ARCH_TIMESTAMP > INTERVAL '1' DAY; -- 超过1天未归档
(3) 手动触发归档
-- 归档所有磁盘组
ALTER SYSTEM ARCHIVE ASM AUDIT ALL;
-- 归档特定磁盘组
ALTER SYSTEM ARCHIVE ASM AUDIT DISKGROUP DATA;
(4) 验证归档连续性
SELECT
MAX(e.EVENT_TIMESTAMP) AS last_event_time,
a.LAST_ARCH_TIMESTAMP,
CASE
WHEN MAX(e.EVENT_TIMESTAMP) > a.LAST_ARCH_TIMESTAMP
THEN 'UNARCHIVED EVENTS EXIST'
ELSE 'UP TO DATE'
END AS status
FROM V$ASM_AUDIT e, V$ASM_AUDIT_LAST_ARCH_TS a
WHERE a.GROUP_NUMBER = 1 -- 磁盘组1
AND e.EVENT_TIMESTAMP > a.LAST_ARCH_TIMESTAMP;
(5) 修改归档配置
-- 设置归档目标(ASM参数)
ALTER SYSTEM SET "_asm_audit_archive_dest" = '/backup/asm_audit/' SCOPE=SPFILE;
-- 调整归档频率(分钟)
ALTER SYSTEM SET "_asm_audit_archive_interval" = 720 SCOPE=MEMORY; -- 12小时
总结
- 核心作用:记录ASM审计事件最后一次成功归档的时间戳
- 关键字段:
LAST_ARCH_TIMESTAMP:归档位置标记ARCH_TYPE:触发方式STATUS:执行结果
- 运维价值:
- 最佳实践:
- 定期监控
STATUS='PARTIAL'或'FAILED'状态 - 生产环境设置归档频率 ≤ 24小时
- 归档目标使用专用存储(与磁盘组分离)
- 定期监控
- 注意事项:
- RAC 环境中每个节点独立维护归档时间戳
- 归档操作会短暂增加 ASM 元数据 I/O 负载
- 时间戳存储在内存中,ASM 重启后重置为0(需重新归档)
⚠️ 关键警告:
如果LAST_ARCH_TIMESTAMP长期未更新:
- 检查
V$ASM_AUDIT_CONFIG_PARAMS归档配置- 验证目标存储空间和权限
- 手动触发归档并检查告警日志
欢迎关注我的公众号《IT小Chen》

被折叠的 条评论
为什么被折叠?



