-- v6 设备级采集模式:达梦数据库升级前检查 -- 本脚本只读。必须先完成检查,再执行 02-device-collection-mode-upgrade.sql。 -- 新版 syslog-serve JAR 启动前必须完成字段升级和验证。 -- 1. 确认当前用户和 DEVICE_DEVICE 表存在。 SELECT USER AS CURRENT_SCHEMA FROM DUAL; SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME = 'DEVICE_DEVICE'; -- 2. 记录升级前设备总数、有效设备数,供升级后核对。 SELECT COUNT(*) AS DEVICE_TOTAL FROM DEVICE_DEVICE; SELECT COUNT(*) AS ACTIVE_DEVICE_TOTAL FROM DEVICE_DEVICE WHERE DELETED_AT IS NULL AND (DEL_FLAG IS NULL OR DEL_FLAG = '0'); -- 3. 目标字段应不存在。首次升级时预期返回 0 行;若已有记录,停止执行升级脚本并先核实。 SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE, DATA_DEFAULT FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'DEVICE_DEVICE' AND COLUMN_NAME = 'COLLECTION_MODE'; -- 4. 约束名应未被占用。首次升级时预期返回 0 行。 SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, STATUS FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'CK_DEVICE_COLLECTION_MODE'; -- 5. 执行 DDL 前必须完成 DEVICE_DEVICE 可恢复备份,并确认没有未结束的长事务或表锁。 -- 数据库脚本不得写死现场 device_id;具体设备模式在新版 JAR 启动后通过管理 API 设置。 -- 6. API 拉取配置表及 LOOKBACK_SECONDS 必须存在。记录当前默认值;旧版通常为 300,新版目标为 0。 -- 这里只修改后续新记录的默认值,不覆盖已有任务显式配置。 SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME = 'DEVICE_COLLECT_API_CONFIG'; SELECT COLUMN_NAME, DATA_TYPE, NULLABLE, DATA_DEFAULT FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'DEVICE_COLLECT_API_CONFIG' AND COLUMN_NAME = 'LOOKBACK_SECONDS'; -- 7. 记录 API 拉取单窗口条数约束。旧版应存在 CK_DC_API_CFG_PAGE,范围上限通常为 10000; -- 新版需要放宽为 50000,供微步 5 秒窗口使用。 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. 记录响应字节约束。旧版上限通常为 268435456;新版微步按 50000 条 × 10 KiB -- 取整使用 512 MiB,需要将上限放宽为 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';