有很多的朋友,在作数据库信息备份时直接就是
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 看看数据是否完整可靠。