我用ASP.NET(VB.NET,SQL SERBER2000)做了一个基于web的管理系统,要想实现远程数据库备份和还原,应该怎么做呢 ?
解决方案 »
- vs2010中Jquery智能提示问题??
- 如何在vs2005把aspx.cs封装成dll文件?
- 关于一张表数据插入到另一张表保持数据唯一,不重复
- “ASP.guanliyonghu_aspx”不包含“SqlDataSource1_Selecting”(是否缺少 using 指令或程序集引用?)
- GridView实现编辑功能出现捕获不到TextBox中修改后的值?什么原因?
- 关于DrawImage的问题。
- ACCESS数据表更新的问题?
- 前台跳转页面问题
- Response.Write 的问题(急需)
- 请教一个MVC5.0 关于路由的问题
- .net安装问题
- window.location.href=window.location.href这句话究竟什么意思?
直接拷贝一份到别的目录就可以了
呵呵SQL Server 的话帮你顶
这里应该对你有帮助
Imports Kyant.Air.BusinessRules
Namespace DbService
' /// <summary>
' /// DbOper类,主要实现对Microsoft SQL Server数据库的备份和恢复
' /// </summary>
Public Class DbOper
' /// <summary>
' /// DbOper类的构造函数
' /// </summary>
Public Shared Function DbBackup(ByVal OptID As Int32, ByRef Errmessage As String) As Boolean
Try
Dim ServerName As String = ConfigurationSettings.AppSettings("ServerName") '服务器名
Dim DBUser As String = ConfigurationSettings.AppSettings("DBUser") '用户名
Dim DBpassword As String = ConfigurationSettings.AppSettings("DBpassword") '密码
Dim DataBaseName As String = ConfigurationSettings.AppSettings("DataBaseName") '数据库名
Dim BackPath As String = ConfigurationSettings.AppSettings("BackPath")
'备份路径
Dim oBackup As New SQLDMO.BackupClass
Dim oSQLServer As New SQLDMO.SQLServerClass
oSQLServer.LoginSecure = False
''设置连接密码
oSQLServer.Connect(ServerName, DBUser, DBpassword)
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database
oBackup.Database = DataBaseName
oBackup.BackupSetDescription = "数据库(abcMonitor)备份"
oBackup.Files = BackPath + "AirMonitor" + Now.ToString("yyyyMMdd") + ".bak"
oBackup.BackupSetName = DataBaseName
oBackup.Initialize = True
oBackup.SQLBackup(oSQLServer)
Catch ex As Exception
'Throw
Errmessage = ex.Message
With New BROptLog
Dim OptLogresult As Boolean = .InsertOptlog(OptID, "备份数据库失败", "用户" & OptID & "备份数据库失败 详细信息:" & Errmessage)
End With End Try
With New BROptLog
Dim OptLogresult As Boolean = .InsertOptlog(OptID, "备份数据库", "用户" & OptID & "备份数据库成功")
End With
Return True
End Function Public Shared Function RestoreDB(ByVal strFileNameDate As String, ByVal OptID As Int32, ByRef Errmessage As String) As Boolean
Dim DataBaseName As String = ConfigurationSettings.AppSettings("DataBaseName")
Dim BackPath As String = ConfigurationSettings.AppSettings("BackPath")
Dim strfilename As String = BackPath + "abcMonitor" + strFileNameDate + ".bak" Dim ServerName As String = ConfigurationSettings.AppSettings("ServerName")
Dim DBUser As String = ConfigurationSettings.AppSettings("DBUser")
Dim DBpassword As String = ConfigurationSettings.AppSettings("DBpassword") Dim svr As New SQLDMO.SQLServerClass
Try
'服务器名,数据库用户名,数据库用户名密码
svr.Connect(ServerName, DBUser, DBpassword)
Dim qr As SQLDMO.QueryResults = svr.EnumProcesses(-1)
Dim iColPIDNum As Int32 = -1
Dim iColDbName As Int32 = -1
For i As Int32 = 1 To qr.Columns
Dim strName As String = qr.ColumnName(i)
If strName.ToUpper.Trim = "SPID" Then
iColPIDNum = i
ElseIf strName.ToUpper.Trim = "DBNAME" Then
iColDbName = i
End If
If iColPIDNum <> -1 And iColDbName <> -1 Then
Exit For
End If
Next For i As Int32 = 1 To qr.Rows
Dim lPID As Int16 = qr.GetColumnString(i, iColPIDNum)
Dim strDBName1 As String = qr.GetColumnString(i, iColDbName)
If strDBName1.ToUpper = DataBaseName.ToUpper Then
svr.KillProcess(lPID)
End If
Next Dim res As New SQLDMO.RestoreClass
res.Action = 0
res.Files = strfilename res.Database = DataBaseName
res.ReplaceDatabase = True
res.SQLRestore(svr)
Catch ex As Exception
Errmessage = ex.Message
With New BROptLog
Dim OptLogresult As Boolean = .InsertOptlog(OptID, "还原数据库失败", "用户" & OptID & "还原数据库失败 详细信息:" & Errmessage)
End With
Return False
Finally
svr.DisConnect()
End Try
With New BROptLog
Dim OptLogresult As Boolean = .InsertOptlog(OptID, "还原数据库", "用户" & OptID & "还原数据库成功")
End With
Return True
End Function
End Class
End Namespace