| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1130 人关注过本帖
标题:数据库备份与恢复
只看楼主 加入收藏
wangwubing
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-4-17
收藏
 问题点数:0 回复次数:6 
数据库备份与恢复
如何备份和恢复数据库,在中,我的数据库是sql server2000.
搜索更多相关主题的帖子: 数据库 
2010-05-13 19:23
yjjpp230
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2007-7-3
收藏
得分:0 
在企业管理器右击,备份数据库就行了
2010-05-14 09:28
wangwubing
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-4-17
收藏
得分:0 
我说的是怎么用代码实现啊!
2010-05-14 13:00
zhang2010
Rank: 2
等 级:论坛游民
帖 子:10
专家分:11
注 册:2010-4-18
收藏
得分:0 
这个不难,我有现成的代码,需要就联系我,邮箱nnn12300@。。。
2010-05-25 14:55
o嘟嘟o
Rank: 1
来 自:河北
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-5-25
收藏
得分:0 
有简单的 干嘛用麻烦的
2010-05-25 17:45
mystery1000
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-10-12
收藏
得分:0 
我做过。 我用的是

前提是我知道当前数据库放在哪里,以及有一个没有记录的数据库表。
1.关闭其它使用数据库的进程。 process.kill
2.先分离数据库  sp_detach_db
3.备份数据库到别处(用剪切)file.copy and file.delete
4.拷贝干净的数据库至当前使用文件夹。 copy
5.附加数据库。 ...
2010-10-12 08:48
mystery1000
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-10-12
收藏
得分:0 
Imports System.Data.OleDb.OleDbCommand
Imports System.Data.OleDb.OleDbConnection
Imports System.Data.OleDb.OleDbDataAdapter
Imports System.Data.OleDb.OleDbDataReader
Imports System.Data.OleDb.OleDbParameter
Imports System.Diagnostics '进程
Imports System.Data.SqlClient

Public Class attachMapDb '卸离Map数据库用 ,同时还加入2个database 文件
    Dim masterstring As String = "Provider=SQLOLEDB;Persist Security Info=False;Data Source=HSMAP;Initial Catalog=master;User ID=user1;Password=user1;"

    Dim masterconn As New OleDb.OleDbConnection(masterstring)

    Dim HSmappath As String = "C:\hs\Map\Hsmap.exe"
    Dim sqlstr As String = "sp_detach_db aoi" '卸离Map数据库用
    Dim DATABASEPATH As String = "C:\HS\Database" '正在使用的数据库文件夹
    Dim databaseusingPath_mdf As String = "C:\HS\Database\AOI_Data.MDF" '正在使用的数据库地址
    Dim databaseusingPath_ldf As String = "C:\HS\Database\AOI_Log.LDF" '正在使用的数据库地址
 
    Public Sub mainY() '主流程
        killMapProgram() '关闭相关进程,
        If executeDB(sqlstr) Then '卸离Map数据库
            copydatabaseFile() '更换文件
            fujiaDB() '附加数据库
            startHSMap() '启动程式
        End If

    End Sub
    Public Sub fujiaDB() '附加数据库
        Try
            Dim sqlBuilder As New System.Data.SqlClient.SqlConnectionStringBuilder
            sqlBuilder.AttachDBFilename = databaseusingPath_mdf
            sqlBuilder.DataSource = "dongG\sqlexpress"
            sqlBuilder.IntegratedSecurity = True
            sqlBuilder.UserInstance = False
            sqlBuilder.InitialCatalog = "aoi"
            Using cn As New SqlConnection(sqlBuilder.ConnectionString)
                cn.Open()
                cn.Close()
            End Using
        Catch ex As Exception
            writeLog("附加AOI新数据库失败")
        End Try
    End Sub

    Public Sub killMapProgram() '1
        Dim p As New System.Diagnostics.Process
        For Each p In Process.GetProcesses()
            If p.ProcessName.ToUpper() = "HSMAP" Then
                p.Kill()
                SyncLock GetType(attachMapDb)
                    writeLog("HSMap已关闭!")
                End SyncLock
            End If
        Next
    End Sub
    Public Sub startHSMap() '重开进程
        Try
            Shell(HSmappath, AppWinStyle.NormalFocus, False)
        Catch ex As Exception
            writeLog("启动HSmap程式失败!")
        End Try
    End Sub
    Public Function executeDB(ByVal sqlstr As String) As Boolean '非查询命令,用主数据库master挂载。
        Try
            masterconn.Open()
            Dim command As New OleDb.OleDbCommand(sqlstr, masterconn)
            command.ExecuteNonQuery()
            executeDB = True
            masterconn.Close()
        Catch ex As Exception
            masterconn.Close()
            executeDB = False
            writeLog("分离数据库错误!")
        End Try
    End Function
   
    Public Sub copydatabaseFile() ' 剪切文件
        Try
            Dim BACKUPDATADATE As String = Application.StartupPath & "\backup\" & nowtoNum(Now) '定义个新文件夹用来备份
            If (BACKUPDATADATE) = False Then (BACKUPDATADATE) '如果没有就创建
            Dim appth As String = Application.StartupPath & "\MapDb" '干净的数据库文件夹  
            If (appth) = True Then
                Dim sr() As String = (appth) ' 取得小的数据库文件夹内的文件
                Dim RD() As String = (DATABASEPATH) '计算正在使用的数据库文件夹的文件名
                For I As Integer = 0 To RD.Length - 1
                    Dim RDSUBSTR As String = RD(I).Substring(RD(I).LastIndexOf("\"))
                    (RD(I), BACKUPDATADATE & "\" & RDSUBSTR) '拷贝当前使用的数据库文件夹的文件到备份文件夹中去。
                    (RD(I)) '删除
                    (sr(0), RD(I)) 'copy 到 正在用的文件位置以备使用。
                Next
            Else
                writeLog("没发现干净的数据库文件夹!")
            End If

        Catch ex As Exception
            writeLog("剪切文件错误!")
        End Try
    End Sub
   
End Class
2010-10-12 08:54
快速回复:数据库备份与恢复
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017639 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved