-- v6 设备级采集模式:达梦数据库升级后验证 -- 本脚本只读。所有检查通过后才允许启动新版 syslog-serve JAR。 -- 1. 预期 1 行:VARCHAR2(16)、NULLABLE=N、DATA_DEFAULT 包含 BOTH。 SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE, DATA_DEFAULT FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'DEVICE_DEVICE' AND COLUMN_NAME = 'COLLECTION_MODE'; -- 2. 预期 1 行:CONSTRAINT_TYPE=C、STATUS=ENABLED。 SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, STATUS FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'DEVICE_DEVICE' AND CONSTRAINT_NAME = 'CK_DEVICE_COLLECTION_MODE'; -- 3. 预期 INVALID_MODE_TOTAL=0。 SELECT COUNT(*) AS INVALID_MODE_TOTAL FROM DEVICE_DEVICE WHERE COLLECTION_MODE IS NULL OR COLLECTION_MODE NOT IN ('SYSLOG_ONLY', 'API_ONLY', 'BOTH'); -- 4. 首次升级且尚未调用管理 API 时,预期只有 BOTH,数量与预检 DEVICE_TOTAL 一致。 SELECT COLLECTION_MODE, COUNT(*) AS DEVICE_TOTAL FROM DEVICE_DEVICE GROUP BY COLLECTION_MODE ORDER BY COLLECTION_MODE; -- 验证脚本不创建测试设备,也不绑定任何现场 device_id。 -- 5. 预期 1 行:LOOKBACK_SECONDS、NULLABLE=N、DATA_DEFAULT 为 0。 SELECT COLUMN_NAME, DATA_TYPE, NULLABLE, DATA_DEFAULT FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'DEVICE_COLLECT_API_CONFIG' AND COLUMN_NAME = 'LOOKBACK_SECONDS'; -- 6. 仅统计已有任务分布,不要求全部为 0;升级脚本不会覆盖已有任务的显式配置。 SELECT LOOKBACK_SECONDS, COUNT(*) AS TASK_TOTAL FROM DEVICE_COLLECT_API_CONFIG GROUP BY LOOKBACK_SECONDS ORDER BY LOOKBACK_SECONDS; -- 7. 预期 1 行且 SEARCH_CONDITION 包含 PAGE_SIZE BETWEEN 1 AND 50000。 SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, STATUS, SEARCH_CONDITION FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'DEVICE_COLLECT_API_CONFIG' AND CONSTRAINT_NAME = 'CK_DC_API_CFG_PAGE'; -- 8. 预期 1 行且 SEARCH_CONDITION 包含 MAX_RESPONSE_BYTES BETWEEN 1024 AND 536870912。 SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, STATUS, SEARCH_CONDITION FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'DEVICE_COLLECT_API_CONFIG' AND CONSTRAINT_NAME = 'CK_DC_API_CFG_RESP';