wincc的数据库是wincc的核心之一,分为了报警归档,快速变量归档,慢速变量归档还有用户归档,前面三个是正常项目中都要使用到的,并且这三个数据库都是加密的数据库正常的SQL语句是不能访问的,只能通过特殊语句才能访问;用户归档只有在需要的时候才会用到这个数据库是不加密的,可以使用常规的SQL语句去访问。
我之前和另外一个同事一起做了一个生物安全防护三级项实验室的项目,甲方要求数据存储至少要保证疫苗保质期后两年,那个疫苗的保质期是半年,甲方直接要求我们要保存三年,当时要求比较高需要保存的数据也不少,并且存储周期直接要求到了500ms,我记得大概又有100多个数据,每天的数据量真的特别多。当时我只是一个新人没有什么话语权,我同事就直接把单个片段的存储大小设置的到100G时间为1个月,最大存储大小为8T时间为三年,当时我没觉得有什么不对,可以现在看来是正傻。
去年应为实验室需要二次审查,于是业主又花钱把我们请回去坐镇,以防出现什么情况好及时处理。我到现场后就先检查了一下我们的项目,项目是正常的,晚上我想把项目再归档一次于是我就和甲方沟通后把wincc运行系统关闭了,结果这一关闭直接等了一个多小时,好几次我都想强制关机了,但为了数据的安全我还是放弃了。我一看硬盘8T的硬盘都一大半都没了,这才运行不到两年,现在都这样了以后估计更恐怖了。这就是之前归档设置埋下的隐患,单个判断大小太大会导致打开和关闭运行系统时间明显加长。
我最近两次的项目解决办法是单个分段时间缩短,缩小单个分段的大小,这样可以明显减少开启和关闭的时间。但这样还是有问题,wincc的归档单段数量不能超过200个,如果超过了会自动删除最早的归档,即使设置所有分段的时长和大。
为了解决这个问题,我又使用了备份归档的功能,我在归档的的属性里把激活备份功能启用,并设置了一个备份路径,wincc的归档备份文件是可以一直存在的不会被wincc自动删除的,于是这也解决了上面的归档片段只能存在200个的问题,但不能解决存储时间的问题,想要查看这200段之前的数据只能再wincc中手动操作。至于备份文件不会自动删除的问题,我选择把这写成手册交给业主IT人员,让他们定期把硬盘中的数据拷走,这个本来就是他们的工作,我这样做反而让他们方便很多。
最近一直在研究有没有什么办法可以不通过原来的项目来打开这些归档的文件,毕竟如果需要查历史数据一个一个的去连接这些备份数据库也挺麻烦的,不知道大家有没有什么好办法。