我用ASP.NET(VB.NET,SQL SERBER2000)做了一个基于web的管理系统,要想实现远程数据库备份和还原,应该怎么做呢 ?

解决方案 »

  1.   

    前提是SQL Server和WEB服务器要在一台服务器上,用SQL-DMO可以实现,具体的网上有资料
      

  2.   

    sql语句里就有备件和还原功能的,就是添加修改数据一样简单,具体我记不清,你自己找书。
      

  3.   

    如果用的是 accsee 库
    直接拷贝一份到别的目录就可以了
    呵呵SQL Server 的话帮你顶
      

  4.   

    http://www.knowsky.com/5671.html
    这里应该对你有帮助
      

  5.   

    Imports System.Configuration
    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