日期:2014-04-15  浏览次数:20595 次

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

我那个哥们是从别人那拷了一个数据库的数据文件 (c:\mssql7\data  目录下的文件)www.come on babyiTbulo.comZDD1E

最初我是用的:www.come on babyiTbulo.comZDD1E

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

后来采用了www.come on babyiTbulo.comZDD1E

系统存储过程:
sp_attach_db  //  附加数据库文件到服务器www.come on babyiTbulo.comZDD1E


sp_attach_db_single_file  //  附加数据库的单个文件到服务器www.come on babyiTbulo.comZDD1E


 www.come on babyiTbulo.comZDD1E

www.come on babyiTbulo.comZDD1E

具体的sql 语句就是:www.come on babyiTbulo.comZDD1E

例如:
EXEC sp_attach_single_file_db 'pubs', 'e:\data\pubs.mdf'www.come on babyiTbulo.comZDD1E

sp_attach_db @dbname="conmis2000",@filename1="d:\1\conmis2000_data.mdf",@filename2=" d:\1\conmis2000_log.ldf"www.come on babyiTbulo.comZDD1E


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

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

用日志恢复:
restore log {data_name|@database_name_var}
from 
with [norecovery\recovery\standby_undo_file_name]
[,][stopat={data_time|@data_time_var}
www.come on babyiTbulo.comZDD1E

www.come on babyiTbulo.comZDD1E


例如:库名为database1 日志为database1_log 要求恢复2000/6/15 1:00前的数据:
restroe log database1
from database_log
with recovery,stopat='jun 15,2000 1:00 am'
www.come on babyiTbulo.comZDD1E

www.come on babyiTbulo.comZDD1E


参考书有:<SQL SERVER7.0 系统管理和应用开发指南>(清华大学出版社)
 www.come on babyiTbulo.comZDD1E