恢复数据库的内容的方法技巧

恢复数据库的内容的方法技巧

昨天帮一个朋友恢复了sql server 7.0 数据库。现在把过程写出来,大家一起分享:

我那个哥们是从别人那拷了一个数据库的数据文件 (c:/mssql7/data 目录下的文件)

最初我是用的:

在一台好的机器上重新安装SQLServer,建立相同的数据库设备(大小),和数据库
停掉SQLServer,用拷贝出来的数据库文件覆盖刚建立的数据库文件,再重新启动
SQLServer。但一直不可以。我猜关键是无法建立相同的数据库设备(大小)。

后来采用了

系统存储过程:
sp_attach_db // 附加数据库文件到服务器


sp_attach_db_single_file // 附加数据库的单个文件到服务器

 

 

具体的sql 语句就是:

例如:
EXECsp_attach_single_file_db'pubs','e:/data/pubs.mdf'

sp_attach_db@dbname="conmis2000",@filename1="d:/1/conmis2000_data.mdf",@filename2=" d:/1/conmis2000_log.ldf"


如何附加数据库文件到服务器(即:通过*.mdf *ldf 文件修复数据库)

另外查找资料时看到也可以通过日志恢复以前的数据。不知那位哥们看看是不是可以

用日志恢复:
restorelog{data_name|@database_name_var}
from
with[norecovery/recovery/standby_undo_file_name]
[,][stopat={data_time|@data_time_var}

 


例如:库名为database1日志为database1_log要求恢复2000/6/151:00前的数据:
restroelogdatabase1
fromdatabase_log
withrecovery,stopat='jun15,20001:00am'

 


参考书有:<SQLSERVER7.0系统管理和应用开发指南>(清华大学出版社)