[转]备份与恢复备份妙技[]

来源:互联网 发布:腾讯视频客户端mac版 编辑:程序博客网 时间:2024/06/05 02:52
我见过很多的朋友,在作备份时直接就是

  backup database dbname to disk='e:/db.bak'

  恢复备份

  restore database dbname from disk='e:/db.bck'

  with move 'dbname' to 'c:/dbname.mdf',

  move 'dbname_log' to 'c:/dbname_log.ldf'

  看似做了备份,但却存在隐患,这个隐患的根本在于你对备份太过信赖,你认为只要做了备份就万事大吉了。实际不然,以上两条语句并没有对你的数据库作验证。其结果是,数据库已经存在问题了,你将已有问题的数据备份,由于没有验证,因此,在备份时不会出现任何的错误提示,当你需要恢复备份时,亦没对此备份作验证,恢复备份时亦没有错误提示,后果大家可想而知。本人就曾经吃过这亏!

  在MSSQL 2005,已经有了一个验证的参数,使用很简单:

  backup database dbname to disk='e:/db.bak' with checksum

  加上一个checksum就可以解决问题,很方便,就是个习惯问题。

  同样在恢复时,你也不要着急,先用

  restore verifyonly from disk='e:/db.bak' with checksum

  检验一下再说。

  补充:

  当然,with checksum 仅仅是对MSSQL2005有效的,这是MSSQL2005的

  一个改进吧,若是MSSQL2000怎么办呢,你可以在备份前是先运行一下

  dbcc checkdb 看看数据是否完整可靠。