Files
ai-security-xdr/haobang-security-dm/upgrade-doc/v1/database/04-verify.sql
T
王绍宏 00c0a1fb7f feat: 新增设备 API 拉取采集及配套处理能力
- 接入 NDRServer 告警和流量日志,支持凭据与任务管理
- 支持分页拉取、窗口拆分、调度优先级及 WAL 持久化后推进断点
- 增加迟到告警规则重放,优化多条泛化规则选择和事件时间处理
- 补充回归测试、数据库升级脚本及部署文档
2026-09-06 16:46:21 +08:00

74 lines
2.8 KiB
SQL

-- 将 BUSINESS_DATE、YYYYMMDD 替换为升级当天后执行。
-- 结果要求见每段注释;不符合时不要启动全部业务实例。
-- 1. 应返回 10 行。
SELECT table_name
FROM user_tables
WHERE table_name IN (
'SYSLOG_FAILURE_RECORD','SYSLOG_REPLAY_BATCH','SYSLOG_REPLAY_ITEM',
'ANALYSIS_CHECKPOINT','DEVICE_DAILY_STATS','NORMALIZE_RULE_DAILY_STATS',
'DEVICE_COLLECT_STATS','DEVICE_DAILY_STATS_DIRECT_SHADOW',
'NORMALIZE_RULE_DAILY_STATS_DIRECT_SHADOW','STATS_DIRECT_CONTROL'
)
ORDER BY table_name;
-- 2. POINT_TIME_NS 必须存在;其余升级字段也应全部列出。
SELECT table_name,column_name
FROM user_tab_columns
WHERE (table_name='SYSLOG_FAILURE_RECORD' AND column_name='POINT_TIME_NS')
OR (table_name IN ('SYSLOG_NORMAL_DATA','SYSLOG_NORMAL_ALARM') AND column_name='RULE_VERSION')
OR (table_name='ALARM' AND column_name IN ('RULE_ID','RULE_VERSION','WINDOW_START','GROUP_KEY_HASH'))
OR (table_name='ALARM_VISIT' AND column_name IN ('ALGORITHM_ID','ALGORITHM_VERSION','EVENT_ID','RESULT_TYPE'))
OR (table_name='DEVICE_DEVICE' AND column_name='TODAY_STATS_DATE')
ORDER BY table_name,column_name;
-- 3. 应返回 4 行且全部为 UNIQUE、VALID;前两个 PARTITIONED=YES,后两个为 NO。
SELECT index_name,table_name,uniqueness,partitioned,status
FROM user_indexes
WHERE index_name IN (
'UK_NORMAL_DATA_LOG_ID','UK_NORMAL_ALARM_LOG_ID',
'UK_ALARM_RULE_WINDOW_GROUP','UK_ALARM_VISIT_ALGORITHM_EVENT'
)
ORDER BY index_name;
-- 4. 三个物理事实表及三张统计表行数,用于现场留档。
SELECT 'SYSLOG_NORMAL_DATA_P_YYYYMMDD' AS item,COUNT(*) AS row_count
FROM syslog_normal_data_p_YYYYMMDD
UNION ALL
SELECT 'SYSLOG_NORMAL_ALARM_P_YYYYMMDD',COUNT(*)
FROM syslog_normal_alarm_p_YYYYMMDD
UNION ALL
SELECT 'SYSLOG_NON_NORMAL_MESSAGE_P_YYYYMMDD',COUNT(*)
FROM syslog_non_normal_message_p_YYYYMMDD
UNION ALL
SELECT 'DEVICE_DAILY_STATS',COUNT(*)
FROM device_daily_stats
WHERE stat_date=TO_DATE('BUSINESS_DATE','YYYY-MM-DD')
UNION ALL
SELECT 'NORMALIZE_RULE_DAILY_STATS',COUNT(*)
FROM normalize_rule_daily_stats
WHERE stat_date=TO_DATE('BUSINESS_DATE','YYYY-MM-DD')
UNION ALL
SELECT 'DEVICE_COLLECT_STATS',COUNT(*)
FROM device_collect_stats;
-- 5. 必须返回 SYSLOG_STATS / 0。
SELECT control_name,rebuild_required,updated_at
FROM stats_direct_control
WHERE control_name='SYSLOG_STATS';
-- 6. 以下两个查询都必须返回 0 行。
SELECT d.id
FROM device_device d
LEFT JOIN device_daily_stats s
ON s.device_id=d.id
AND s.stat_date=TO_DATE('BUSINESS_DATE','YYYY-MM-DD')
WHERE d.today_stats_date IS NULL
OR d.today_stats_date<>TO_DATE('BUSINESS_DATE','YYYY-MM-DD')
OR COALESCE(d.today_parse_count,0)<>COALESCE(s.parse_count,0)
OR COALESCE(d.today_non_log_count,0)<>COALESCE(s.non_log_count,0);
SELECT control_name
FROM stats_direct_control
WHERE control_name='SYSLOG_STATS' AND rebuild_required<>0;