本人新手,求问大牛解决方案:
应用环境:3W元左右服务器一台,硬盘大概是500G。使用Sqlserver2008R2数据库,windows server 2003系统。
问题说明:本例运行在脱离网络的小型储能工作站中,用来存储实时数据使用。 现数据库中有6张表,其中4张表均在180-260个字段左右,另外两张为2字段200行固定。
现字段较多的4张表均需要每1秒存储1条记录,那么问题出现了,以这个速度存将会出现大量数据(每天每张表记录86400行,那么连续运行1个月后4张表的记录总和为10368000),照这个速度下去,程序连续运行几个月至1年,不知道500G够不够用,不够用的话在不增加硬盘的前提下应该怎么处理?压缩数据?我现在已经用了行压缩,不知道是否可行?如果实在不行考虑定期删除久于1个月的数据,如果实现?
------解决方案--------------------
历史数据要求保存多久的记录?如果只要求保留最近一个月的就比较简单了。做一个定时作业,每天或者每个周删除前面的所有记录。 定时作业的方法在网上有很多,在这里就不贴了,楼主可以自己去查查。
------解决方案--------------------
如果特殊意外发生,系统允许一定量的数据丢失,那么建议先把数据库的恢复模式设置为simple。不允许就需要对数据库做备份或者日志备份。这样可减少日志文件的不停增长,从而节省部分空间。
然后考虑处理掉历史数据。历史数据如果重要,可以考虑迁移走。如果不重要,直接删除
------解决方案--------------------
每次“分离”的操作,都以单独的一次备份来替代,假设你每天打算分离一次并附加,你就换成每天备份一次,然后把备份文件还原到你本身打算附加的服务器上。sqlserver本身提供了备份还原功能,用分离附加这种暴力方式总有一天你会选择放弃SQL Server的,我的文章还没出来,你自己百度一下如何备份还原sqlserver吧。
------解决方案--------------------
只要有服务,可以不用SSMS,SSMS只是微软提供的客户端操作工具,SQLCMD也可以用来写SQL脚本的。你可以看看联机丛书中的BACKUP命令,上面有说如何备份到目标目录中,你的程序可以直接调用写好的语句即可
------解决方案--------------------
按照你的计算,如果管理合理,500G能用个半年甚至一年,先做好空间管理和监控,算一下数据库到达250G的时候用了多久,假设你真的能存一年,那一年之后,把数据备份成一个bak文件,然后清空上面的用户数据