目的
本文旨在从数据库管理方面,提供将SQL Server大数据表归档的解决方案。可以作为新业务上线时进行方案设计的参考。
归档方案选型
方案一:
方案介绍
BCP导出数据到本地目录目录后,遍历目录文件BCP导入到临时表,再循环删除源表数据。通过Insert into … Left Join …通过主键关联临时表和归档表排除存在的数据。(或通过2008及后续版本的Merge语句,不存在插入,存在更新)
方案优缺点
优点:BCP性能好、通过SP容易控制逻辑、维护简单
缺点:逻辑略繁琐
方案二:
方案介绍
BCP导出数据到远程目录后循环删除源表数据,遍历目录文件BCP导入到临时表,再通过Insert into … Left Join …通过主键关联临时表和归档表排除存在的数据。(或通过2008及后续版本的Merge语句,不存在插入,存在更新)
方案优缺点
优点:BCP性能好、通过SP容易控制逻辑、维护简单
缺点:逻辑略繁琐,两台主机需要能UNC共享访问
方案三:
方案介绍
BCP导出数据到本地目录后FTP到远程目录,再循环删除源表数据,遍历目录文件BCP导入到临时表,再通过Insert into … Left Join …通过主键关联临时表和归档表排除存在的数据。(或通过2008及后续版本的Merge语句,不存在插入,存在更新)
方案优缺点
优点:BCP性能好、通过SP容易控制逻辑、维护简单
缺点:逻辑略繁琐,远程要架设FTP服务器
方案四:
方案介绍
BCP导出数据到远程目录后循环删除源表数据,遍历目录文件SSIS数据导入和更新。
方案优缺点
优点:BCP性能好
缺点:字段变更后SSIS包需同步修改,SSIS包维护麻烦,两台主机需要能UNC共享访问
方案五:
方案介绍
BCP导出数据到本地目录后FTP到远程目录,循环删除源表数据,再遍历目录文件SSIS数据导入和更新。
方案优缺点
优点:BCP性能好
缺点:字段变更好,SSIS包需同步修改,SSIS包维护麻烦,远程要架设FTP服务器
方案六:
方案介绍
数据插入到另一个临时归档库后循环删除源表数据,再将临时归档表复制到远程。
方案优缺点
优点:逻辑简单
缺点:需要另建一个临时归档库、增加了负载
方案七:
方案介绍
数据通过Linkedserver插入远程归档表后循环删除。
方案优缺点
优点:逻辑简单
缺点:LinkedServer远程性能问题
方案八:
方案介绍
切换分区到临时表,数据再通过LinkedServer插入远程归档表。
方案优缺点
优点:数据归档方便
缺点:只针对分区表
方案九:
方案介绍
SSIS将数据插入或更新到归档表后循环删除源表。
方案优缺点
优点:逻辑集成
缺点:维护成本高,定位问题麻烦
方案十:
方案介绍
开源软件,如eyeArchive
方案优缺点
优点:开源软件
缺点:方法单一