关于数据备份方法的讨论 --By 萧月禾(300分)

  • 主题发起人 萧月禾
  • 开始时间
我做的一个系统是这样的:
每月建一个新库,如2002年2月建DB200202。
因为每月的数据太多,只好这样,这样也有好处:
每月清除一次数据,错误减少了许多,缺点:
跨月查询时有很多不便
 
ado savetofile loadfromfile 我觉得简单!
初学者的陋见[:D]
 
关于增量备份大家能不能介绍一下经验?
 
我做过一个备份函数,直接使用SQL语句进行备份,可以针对所有数据底库
但是没有办法直接读出关键字,需要手工填写关键字。
 
to ypluo: 请问你的函数是用于备份整个数据库还是根据自定义数据范围备份部分数据?[:)]
 
我给函数提供的接口如下:back(dbf,key,where,filename);
dbf:数据库
key:关键字
where:select的where语句
filename:备份文件名
 
萧大侠最近可好?

从数据安全的角度出发,完全备份是必须要做的,为降低开销,可每隔一段时间做一次完全
备份两次完全备份之间用增量备份。如果不使用数据库的备份/恢复功能,而仅用SQL语句备
份部分表中的部分数据,一旦数据库损坏,你将如何恢复? 个人认为,用SQL语句作简单备
份是不太负责任的做法。
另外,数据库增长得太大后,必有一些历史数据是很少使用的,这时可用归档系统将这些数
据库归档, 其实你提出的这个问题更像一个归档问题而不象是备份问题。
 
to ypluo: 请问假如要按条件恢复该如何恢复呢?比如按条件备份,某张表中某id字段
从id>1 to id <10 和 id >= 10 to id < 20 各备份一次,还原时选择
还原id > 5 to id < 15的记录,那该如何做?

to Allen: 备份分2种,一种是整个数据库备份,一种是按条件备份,比如选择备份部分
表,或表中部分记录等。也可以采用所谓的“增量备份”的方法,在备份了整个数据库后,
以后增加的数据再另行备份。
每次备份整个数据库没有必要,因为数据库的结构和一些基础数据、代码等通常是不会变
的。另外归档是另一回事,备份时不必把数据从数据库中删除,随时都需要使用这些数据。
备份是为防止数据丢失。不知道你有没有这方面的建议,还请指点一下。
 
某张表中某id字段
从id>1 to id <10 和 id >= 10 to id < 20 各备份一次,还原时选择
还原id > 5 to id < 15的记录,那该如何做?

分两次还原.
 
强烈关注!
 
强烈关注!认真学习!
 
我在给大型企业实施的经验是不完全进行整个数据库的备份。
因为企业里许多部门,各个部门都有自己的相关表,但是,如果这个备份数据库,还原是会造成某些部门的数据丢失。
另,还要在系统当中设计复杂的权限,进行整个备份的管理。
我的设计思路是这个样子的:
只给做一个常规的整体数据库备份,进行完整的数据库备份,其他部门日常备份,做数据表的备份。
各个部门在做备份时,在SQL SERVER中,生成自己部门的新数据库,然后,进行表的备份操作。操作完毕后,对新库进行日志文件清除,
然后备份,然后程序利用一个叫“BACKFILE”的压缩组件,对文件压缩,转储到服务器其他位置,进行双重处理,防止SQL损坏,文件丢失。
你说的第二个方案,完全可以实现。可以首先只备份数据库表结构,然后把新数据按照客户指定条件,插进去旧可以了。
如果说还要以前数据,就整体备份表。
 
萧月禾:
按条件备份的虽然数据量少,但这并不是可靠的方法,我们之所以做备份,就是希望能尽可
能地恢复数据。姑且不说恢复数据时的主外键冲突问题。假设数据库损坏,你无法保证只是
你做了备份的那些表损坏了(就算只是表损坏,如果主键字段损坏怎么恢复数据?),如果
数据的约束规则损坏了怎么办?更为严重的是,如果数据库“物理”损坏,又当如何?

数据库系统提供的增量/差量/日志备份功能功能已经减少了很多开销。而且远比备份只表中
的某些记录可靠(数据库毕竟都是大软件公司的产品,对数据安全的考虑远比我们周到。而且
在数据库应用系统中,与数据安全性相比,备份效率是次要的),它能在数据库严重损坏时正
确恢复数据。每次备份整个数据库当然是不必要的,但必须每隔一定时间备份整个数据库,结
合增量/差量备份,并用日志备份ROLL FORWARD,就能够在灾难性的损坏最大限度的恢复数据。

建议你还是用数据库提供的备份功能吧,如果客户一定要求按条件“备份”,那就给他做个
样子好了[:)]
 
to Allen:
有些细节问题还想向你请教,能否给个email?[:)]

my email: cczhlxu@21cn.com
 
agree Allen!!
 
allen_sn@263.net
 
我同意816的做法,只是有一点不一样,
整个数据库的备份是必须的,而按条件备份与用户的权限挂钩太复杂了,
因为目前对于用户权限的控制是集中在ACTIONLIST上面的,如果再与数据库的操作
挂起来,就更加麻烦了,但是如果换成与相应模块的业务规则挂钩起来.就简单多了
也就是说,在你进行系统分析时,在你分析的各个类中,就必须有各自相应的
备份和恢复的方法了.

以上只是我的想法,,没做过这方面的东西..:)
 
看得我头昏眼花,这到底是在说SQL SERVER还是再说用DELPHI备份数据库
晓月同志,告诉我们要每天让系统自动汇总一次数据,怎么用触发器啊
 
这是ERP中工作流中的一个小部分.
现在也还在研究,
 
顶部