文档介绍:IN 历史数据归档:
实时归档
与控制系统交互的任务的数据表,会实时归档到带有IA_前缀的表中。IN会使用多个状态来标识,每个任务的完成情况。当所有的状态都为完成状态,在任务执行完成的最后代码,加入当前任务归档功能。而正式表只存当前未开始执行任务。
注:尽量不要附加代码去执行,减少并发表的死锁。IN处理数据都是以批次,规定一次只能执行多少条数据性能最优。
指定时间归档
对于一些订单数据,库存交易记录,系统日志,这类表存放几天才会对性能有影响。因此,IN会使用作业来归档,指定时间来归档。这类数据会归档到带有AR_前缀的表中。当需要执行历史数据查询,IN会中这些带有AR_表中去取,这样即使频繁的执行查询也不会影响正式表的性能。
历史数据归档
带有AR_前缀的表当累积到一定时间,也会将其清除,因为磁盘空间有限。这部分IN目前没有实现,需手动清理。缺少是数据库自动收缩,释放磁盘空间。
IN实现方式
IN所有的数据处理都是采用windows 服务的方式实现。将所有的SQL放到存储过程中。通过服务来调用。窗体中设置时间参数。
如果有多台服务器,windows 服务一般只能开启一台。
对于服务执行使用的一些参数,一般情况下设置完要重启服务。
IN在界面有SQL编辑器,所以的数据归档的受影响的条件可以在界面中设置。表与表之间会有很多的主外健关系,所以在归档时要一起归档。
带有IA_及AR_表的表结构与正式表一模一样,区别在于历史归档的表不会有自动增长值。当异常时,可以立即从归档数据中导回。
IN的数据库结构特点:
业务数据、基础数据及配置相关的表都独立开。一般情况下,主从表数据,会一并显示在从表中,实时归档在取数据时可以减少关联。
这种架构,数据备份就显得特别简单。只需备份一个配置原始数据库存到不同的地方,另外建一个数据库每天只需备份一些库存、货位数据即可。灾难发生时立即恢复,快又有效。在一定程度上也减少操作,也减少备份带来的磁盘开销。
注:备份这部分功能IN也没有,后续我们打算自己开发一个。