LogansCodingLife 2014-07-18 09:20
浏览 4633

sqlserver数据库,按照指定日期将表中对应时间段内的记录备份出去。

业务需求:

数据库自2009年起有5年的数据量。

数据库只保存近两年的数据。比如 2012-01—01 ~ 2014-01-01

首先将 2010-01-01 ~ 2012-01-01 的数据保存到大文件夹里【比如 D:\2010年及2011年数据】,以月份命名各个文件夹【每个文件夹里有当月的所有表,表中有当月的记录】
后将 2010-01-01 ~ 2012-01-01 的数据从数据库中删除

然后每一个月的最后一天【例:2014-01-31 24:00:00 点一过,也就是2014-02-01 00:00:01时刻】,
将近两年的第一个月的信息【也就是:2012-01-01 ~ 2012-01-31 的信息备份到本地文件,命名格式『2012年1月备份信息』】。
然后将这个月的信息【2012年1月】从数据库中删除.
从而实现数据库中只保存近二年的数据。

月底自动触发脚本【ssis,dts,维护计划?】。

碰到的问题:

碰到了一个棘手的问题:

这样的备份方式需要所有的表有一个日期,这样才好分别哪些记录是2010年1月的,哪些记录是2010年2月的,从而进行备份以及删除。

---解决方法1:

首先,前些时候的数据手工备份,留下二年的数据。
因为所有的记录都在同一张表里,如果没有日期这个东西加以区别,只能人工进行判断那些数据是指定月份的。

然后,添加一个日期操作表【根据实际情况要做修改】
id tableName recordId opTime
操作Id 被操作的表名 被操作的记录 操作时间

以后根据这个表来进行指定日期的数据备份。

---解决方法2:

根据数据库日志文件进行判断,将日志文件通过某种方法转换成sql可查询的格式,根据日志,截取表名称及插入的记录和时间,根据日期进行对相应的表记录进行备份。

---更好的解决方法3: ????

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试
    • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
    • ¥15 教务系统账号被盗号如何追溯设备
    • ¥20 delta降尺度方法,未来数据怎么降尺度
    • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
    • ¥15 再不同版本的系统上,TCP传输速度不一致
    • ¥15 高德地图点聚合中Marker的位置无法实时更新
    • ¥15 DIFY API Endpoint 问题。
    • ¥20 sub地址DHCP问题