备份一段时间内的数据(参与有分)

djf_1985 2013-01-06 09:41:55
请教一个问题,例如数据库中有几年的学生相关资料,怎么才能把2011年度入学的学生相关表中资料全部备份呢?不需要备份全部的数据。
相应的,还原的时候也只还原2011年度的数据,其它年度(2010、2012等)数据不受影。
谢谢啦!
...全文
351 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
KevinLiu 2013-01-17
  • 打赏
  • 举报
回复
归档备份,单表不行,除非BPC备份数据
  • 打赏
  • 举报
回复
你可以新建一个表 这个表存放在指定的文件上 然后把你需要的数据放入这个表 最后备份这个文件就好了
xyc880813 2013-01-17
  • 打赏
  • 举报
回复
将不同年份的数据放入不同的文件组 然后单独备份文件组
FelixOu 2013-01-08
  • 打赏
  • 举报
回复
我觉得如果没档过的话还是老实full backup咯.第三方软件好危险的.
發糞塗牆 2013-01-07
  • 打赏
  • 举报
回复
你用sa进去看的吗?msde没用过。但是正常版本如果用sa是肯定看得到的。
djf_1985 2013-01-07
  • 打赏
  • 举报
回复
引用 12 楼 DBA_Huangzj 的回复:
那也不是不可以实现,你的表里面前提要有时间列,然后在你选择要备份的年份时,就直接读取这部分数据。后面的步骤是我个人猜测:先把这部分数据插入一个新 库,然后备份这个新库,还原的时候也是,先还原一个新库,然后再把表同步过去你的目标库,但是具体是怎么实现的你可以用profiler来跟踪一下
我也感觉他可能是通过这样的办法做的,但看他数据库里面连function和存储过程都没有一个,我想应该通过存储过程或者脚本做,实际没发现,这软件使用的是MSDE2000,没profiler,明天安装下来看看
發糞塗牆 2013-01-06
  • 打赏
  • 举报
回复
那也不是不可以实现,你的表里面前提要有时间列,然后在你选择要备份的年份时,就直接读取这部分数据。后面的步骤是我个人猜测:先把这部分数据插入一个新 库,然后备份这个新库,还原的时候也是,先还原一个新库,然后再把表同步过去你的目标库,但是具体是怎么实现的你可以用profiler来跟踪一下
djf_1985 2013-01-06
  • 打赏
  • 举报
回复
引用 10 楼 DBA_Huangzj 的回复:
你没那么多数据,完整备份出来的当然不多拉,我说的智能是指不能说选某一年,然后就仅仅把这部分备份出来。如果是2000,那么可能需要分表了。然后你要在查询分析器里面把这些表以文件方式导出来也好,插入别的库也好,或者插到当前库的一个表里面。我相信你那个软件做不到你的期望,不然你也没必要来这里提问。如果你确定它可以做到,那你打开sql profiler,然后执行备份,看看它调用了什么存储过程或者运行了哪些……
有很多数据哦,2011年前有很多数据,2013年也有,我只是让2012年只有4条数据,结果备份出来的就是很少的一部分了。只备份了2012年的,我并且通过这个软件提供的还原功能验证了,也只还原4条数据,没有进行完整备份啦!
發糞塗牆 2013-01-06
  • 打赏
  • 举报
回复
你没那么多数据,完整备份出来的当然不多拉,我说的智能是指不能说选某一年,然后就仅仅把这部分备份出来。如果是2000,那么可能需要分表了。然后你要在查询分析器里面把这些表以文件方式导出来也好,插入别的库也好,或者插到当前库的一个表里面。我相信你那个软件做不到你的期望,不然你也没必要来这里提问。如果你确定它可以做到,那你打开sql profiler,然后执行备份,看看它调用了什么存储过程或者运行了哪些语句。
djf_1985 2013-01-06
  • 打赏
  • 举报
回复
引用 7 楼 DBA_Huangzj 的回复:
bak一般是完整备份,不过无论你怎么备份,都不能用第三方软件直接备份,那些软件基本上只有完整、差异或者日志备份,没那么智能
别人就是在自己做的软件上做的备份哦,使用的数据库版本是2000,可以按年或者按月备份数据。 我知道你说的完整、差异或者日志备份,但看别人写的,好像真比较智能,我测试了下,如果一年只有四条数据,他备份出来的.bak文件都很小,打开看,里面的东西也不多,有点像直接把各表中的这几条数据转储来似的。 所以请教各位
Mr_Nice 2013-01-06
  • 打赏
  • 举报
回复
引用 楼主 djf_1985 的回复:
请教一个问题,例如数据库中有几年的学生相关资料,怎么才能把2011年度入学的学生相关表中资料全部备份呢?不需要备份全部的数据。 相应的,还原的时候也只还原2011年度的数据,其它年度(2010、2012等)数据不受影。 谢谢啦!
严格来说,lz的这个需求,需要先做数据归档。 归档方法有很多,比较常见的可以使用分区 split出去,也可以分表(比如按照年度处理),规整些的使用ssis进行数据整合,处理到数据仓库中,等等 归档后的数据,无论是做单独的备份,还是进行报表的发布,将会更加便利。
發糞塗牆 2013-01-06
  • 打赏
  • 举报
回复
bak一般是完整备份,不过无论你怎么备份,都不能用第三方软件直接备份,那些软件基本上只有完整、差异或者日志备份,没那么智能
發糞塗牆 2013-01-06
  • 打赏
  • 举报
回复
bak要是能直接看,那就没安全性了。2008有文件组备份的。
djf_1985 2013-01-06
  • 打赏
  • 举报
回复
引用 4 楼 DBA_Huangzj 的回复:
你可以考虑把每年的数据存放到单独的表里面,比如学生资料总共有3个表组成,那每个表根据getdate()来动态生成一年的表,如学生成绩_2011、学生成绩_2012这样,那你整表备份还原即可。或者考虑使用文件组功能,每个表对应放到一个新的文件里面,高版本的SQLServer可以备份还原单个文件。
我看见别人软件做的,备份出来一个.bak文件,不怎么是怎么弄的,用记事本打开,是乱码。 好像是数据,但因为是乱码,看不出他导出了什么东西的。 .bak打开后就是下面一些乱码(只贴了开头部分) "SD 2011-01-01 2011-01-31a TG! 稈?蚕? _ g 噎c?胂般 ? ?幎雖?嶖 _ | ?等骪? Dw=  " I ?幎雖?嶖 _ 2 + € N u m   - € N a m e   # € S e x   - € B i r t h d a y x / € B l o o d T y p e   x / € T e l e p h o n e   x 1 € C r e a t e T i m e + € A d d r e s s 2   x ) € I d T y p e   x ) € I d C o d e   x /20110106094544317 test female ? "
發糞塗牆 2013-01-06
  • 打赏
  • 举报
回复
你可以考虑把每年的数据存放到单独的表里面,比如学生资料总共有3个表组成,那每个表根据getdate()来动态生成一年的表,如学生成绩_2011、学生成绩_2012这样,那你整表备份还原即可。或者考虑使用文件组功能,每个表对应放到一个新的文件里面,高版本的SQLServer可以备份还原单个文件。
老气横邱 2013-01-06
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/110131493
应该值得参考!
szm341 2013-01-06
  • 打赏
  • 举报
回复
抢个沙发~ 这个只能单独备份表数据了,用备份机制备份的话只能全库备份 就用select * into 表_bak from 表 where year(col)=2011
shadowdudu 2013-01-06
  • 打赏
  • 举报
回复
这个不会,我笨我想的方法是把数据导出到别的库备份-- !!

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧