74 lines
2.8 KiB
SQL
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;
|