62 lines
2.6 KiB
SQL
62 lines
2.6 KiB
SQL
|
|
-- =============================================================================
|
|||
|
|
-- 脚本:06-fairness-late-replay-verify.sql
|
|||
|
|
-- 用途:验证公平调度和迟到告警重放的数据库升级结果。
|
|||
|
|
-- 性质:只读脚本,不会修改表结构和业务数据,可以重复执行。
|
|||
|
|
-- 执行时机:05 执行完成后、启动三个新版服务之前。
|
|||
|
|
--
|
|||
|
|
-- 成功标准:
|
|||
|
|
-- 1. 第 1 组包含 SCHEDULER_PRIORITY 字段和两张 ANALYSIS_* 表的字段;
|
|||
|
|
-- 2. 第 2 组所有约束的 STATUS 都是 ENABLED;
|
|||
|
|
-- 3. 第 3 组返回三个索引,STATUS 都是 VALID;
|
|||
|
|
-- 4. 第 4 组中 NDR_ALERT 优先级为 100,NDR_FLOW_LOG 优先级为 10;
|
|||
|
|
-- 5. 首次升级时,第 5、6 组可以返回 0 行,因为还没有产生迟到数据和重放任务。
|
|||
|
|
-- =============================================================================
|
|||
|
|
|
|||
|
|
-- 第 1 组:检查新增字段和两张新表的字段结构。
|
|||
|
|
SELECT table_name,column_name,data_type,nullable,data_default
|
|||
|
|
FROM user_tab_columns
|
|||
|
|
WHERE (table_name='DEVICE_COLLECT_API_CONFIG' AND column_name='SCHEDULER_PRIORITY')
|
|||
|
|
OR table_name IN ('ANALYSIS_LATE_ALARM_BUCKET','ANALYSIS_RULE_REPLAY_WINDOW')
|
|||
|
|
ORDER BY table_name,column_id;
|
|||
|
|
|
|||
|
|
-- 第 2 组:检查新增检查约束、主键、外键和唯一约束是否启用。
|
|||
|
|
SELECT table_name,constraint_name,constraint_type,status
|
|||
|
|
FROM user_constraints
|
|||
|
|
WHERE table_name IN (
|
|||
|
|
'DEVICE_COLLECT_API_CONFIG',
|
|||
|
|
'ANALYSIS_LATE_ALARM_BUCKET',
|
|||
|
|
'ANALYSIS_RULE_REPLAY_WINDOW'
|
|||
|
|
)
|
|||
|
|
AND (table_name<>'DEVICE_COLLECT_API_CONFIG'
|
|||
|
|
OR constraint_name='CK_DC_API_CFG_PRIORITY')
|
|||
|
|
ORDER BY table_name,constraint_name;
|
|||
|
|
|
|||
|
|
-- 第 3 组:检查三个新增索引是否有效。
|
|||
|
|
SELECT table_name,index_name,uniqueness,status
|
|||
|
|
FROM user_indexes
|
|||
|
|
WHERE index_name IN (
|
|||
|
|
'IDX_DC_API_CFG_PRIORITY_DUE',
|
|||
|
|
'IDX_ANALYSIS_LATE_BUCKET_DUE',
|
|||
|
|
'IDX_ANALYSIS_RULE_REPLAY_DUE'
|
|||
|
|
)
|
|||
|
|
ORDER BY index_name;
|
|||
|
|
|
|||
|
|
-- 第 4 组:核对现有 API 拉取任务的调度优先级和启停状态。
|
|||
|
|
SELECT collect_task_id,stream_key,scheduler_priority,enabled,next_run_at
|
|||
|
|
FROM device_collect_api_config
|
|||
|
|
ORDER BY scheduler_priority DESC,collect_task_id;
|
|||
|
|
|
|||
|
|
-- 第 5 组:按状态统计迟到告警分钟桶。刚升级完成时返回 0 行属于正常情况。
|
|||
|
|
SELECT status,COUNT(*) AS bucket_count
|
|||
|
|
FROM analysis_late_alarm_bucket
|
|||
|
|
GROUP BY status
|
|||
|
|
ORDER BY status;
|
|||
|
|
|
|||
|
|
-- 第 6 组:按状态统计规则重放窗口及输入、输出数量。
|
|||
|
|
-- 刚升级完成时返回 0 行属于正常情况;运行后可据此观察积压和处理结果。
|
|||
|
|
SELECT status,COUNT(*) AS replay_count,
|
|||
|
|
SUM(input_count) AS input_count,SUM(output_count) AS output_count
|
|||
|
|
FROM analysis_rule_replay_window
|
|||
|
|
GROUP BY status
|
|||
|
|
ORDER BY status;
|