现在要将3台老平台半年的数据库的GPS轨迹记录表迁移到新平台数据库,老平台存储为每天一张表,单表数据量在1000W左右。
现在的问题是,老平台还在运行中,源数据库占用非常高,用MSSQL自带的数据导入导出功能都会导致系统写入队列暴增,从而影响整个系统。
没办法,我自己写了一个小工具,一点一点的读出写入另一个数据库,虽然时间长点,但也能实现,目前已完成2台迁移,但剩下的一台数据库服务器性能非常差,即使用这种方式,都会影响系统。
能不能把数据备份到其他的存储,放在性能比较好的地方,来操作性能比较不错的机器呢。
我也想到用数据库备份的方式,但数据库备份好像不可以选表,如果把整个数据库备份太大了,超过10G,能不能把一个10G的文件拷贝出来都是一个问题。
有这个时间和精力的话,我都觉得停机一会儿,把数据库放到好点的服务器上靠谱些,你们总不至于24小时不能停的吧?
要不然就只能时间更长更长,比如每小时拉一条数据之类的,呵呵。
7x24h运行,周末和每天上午10点左右,下午2-6点是高峰期,晚上比白天还忙,而且数据量也不小,停一会儿数据都拷不出来。
@Adming: 看了一下你的业务:GPS轨迹记录表。
这样的业务,也就是说可以基本没有查询旧记录的需求(可能我不熟悉业务,考虑的不对),
你完全可以把新的记录全部导向到一台新的服务器上,这台服务器就可以只做查询(甚至都没有查询?),
这样压力就小了,然后你如果需要查询,再把这些就记录导入到新服务器上。
理论上来说,停止查询一两个小时应该问题不大。写入不影响。
或者说,像这种大量垃圾数据的,报表应该也是后期生成的,这些都可以适当延期、暂停。
@爱编程的大叔: 是的,新平台就是这样做的,但目前是过渡阶段,老平台还处于主力军角色,但老平台数据库基本表,报表,GPS轨迹记录表都在一个数据库下。