SQL Server 2005 与VS2005编程语言C# winform实现数据库备份与恢复。

2025-01-02 13:47:55
推荐回答(2个)
回答1:

net stop mssqlserver
这就是停止服务区,另外。。如果是还原数据库而且是定时的话,建议用 SQL自带的 服务去做,简单设置下就行了。
.NET里面执行如下:
VB.NET的
Dim proc As System.Diagnostics.Process
proc = System.Diagnostics.Process.Start("net stop mssqlserver")
proc.WaitForExit()
proc.Close()

c#的如下:
System.Diagnostics.Process proc;
proc = System.Diagnostics.Process.Start("net stop mssqlserver");
proc.WaitForExit();
proc.Close();

我记得好像是不能有访问来着,服务暂停了,你立刻在启用下,然后就开始执行还原嘛。
Dim proc As System.Diagnostics.Process
proc = System.Diagnostics.Process.Start("net stop mssqlserver")
proc.WaitForExit()
proc = System.Diagnostics.Process.Start("net start mssqlserver")
proc.Close()
然后这里执行你还原的脚本就好了。

补充下,如果你不会暂停我这里有批处理文档
“启动SQL SERVER.bat”:

@echo.服务启动......
@echo off
@sc start MSSQLSERVER
@sc start SQLSERVERAGENT
@sc start MSSQLServerOLAPService
@sc start msftesql
@sc start MsDtsServer
@sc start SQLWriter
@echo off
@echo.启动完毕!
@pause

“停止SQL SERVER.bat”:

@echo.服务停止......
@echo off
@sc stop SQLSERVERAGENT
@sc stop MSSQLServerOLAPService
@sc stop msftesql
@sc stop MsDtsServer
@sc stop SQLWriter
@sc stop MSSQLSERVER
@echo off
@echo.停止完毕!
@pause

自己试试吧。这样收获更多。

回答2:

停掉数据库服务器。

将刚才生成的数据库的日志文件*_log.ldf删除,用要恢复的数据库mdf(*.mdf)文件覆盖刚才生成的数据库数据文件*.mdf。

启动数据库服务器。

restore database DemoDB from disk='c:\a.bak' --c:\a.bak是备份文件名 with move 'demodb_data01' to '...\demodb_data01.mdf' --将要恢复到文件 ,move ..... ,move 'demodb_log' to '...\demodb_log.ldf'
--------------------------------------------------------------------------------