當前位置:首頁 » 編程語言 » sqlserver資料庫備份與還原

sqlserver資料庫備份與還原

發布時間: 2022-03-12 11:55:51

1. sqlserver資料庫幾種備份方法

資料庫備份可以分為4個備份類型。

l 全備份:創建備份完成時資料庫內存在的數據的副本。

l 差異備份:只記錄自上次資料庫備份後發生更改的數據。差異資料庫備份比資料庫備份小,而且備份速度快,因此可以更經常地備份,經常備份將減少丟失數據的危險。

l 日誌備份:是自上次備份事務日誌後對資料庫執行的所有事務的一系列記錄。可以使用事務日誌備份將資料庫恢復到特定的即時點(如輸入多餘數據前的那一點)或恢復到故障點。

l 文件組備份:可以備份和還原資料庫中的個別文件。可以只還原已損壞的文件,而不用還原資料庫的其餘部分,從而加快了恢復速度。

不同的備份類型適用的范圍也不同。全備份,可以只用一步操作完成數據的全部備份,但執行時間比較長。差異備份和日誌備份,都不能獨立作為一個備份集來使用,需要進行一次全備份。文件備份必須與事務日誌備份一起使用,所以文件備份只適用於完全恢復模型和大容量日誌記錄恢復模型。

每一種備份類型都有不足之處,要針對需要選擇備份類型,或者使用幾種備份方式的配合來完成資料庫的備份。

經常使用備份方式組合有以下幾種:

l 全備份+差異備份:以一周為周期,星期日進行全備份,星期一到星期六每天進行差異備份。

l 全備份+日誌備份:以一周為周期,星期日進行全備份,星期一到星期六每天進行日誌備份。

l 文件組備份+日誌備份:備份周期取決於資料庫的大小和能力,每周期分別進行一部分數據文件備份,每天進行日誌備份。

2. 資料庫備份與還原功能的實現

傳統方法用SQL Server作資料庫後台時,一般採用手工的方式利用SQL Server自身提供的可視化工具或SQL語言進行數據的備份還原功能(余正濤等,2003),但是由於SQL Server 的復雜性,操作比較繁瑣,就使得普通用戶對數據的備份與還原有一定的困難,並且容易造成錯誤,可能造成數據丟失等災難性的後果。考慮到系統完整性和可靠性,可在VB 6.0環境下實現SQL Server資料庫的備份與還原工作。

(一)實現思路

為了通過程序實現資料庫備份與還原工作,必須在VB環境下引用SQLDMO,SQLDMO(SQL Distributed Management Objects,SQL 分布式管理對象)封裝了Microsoft SQL Server資料庫中的對象。SQLDMO是Microsoft SQL Server中企業管理器所使用的應用程序介面(包括備份和恢復),允許用支持自動化或COM 的語言編寫應用程序。SQLDMO 對象來自SQLDMO.dll,SQLDMO.dll 是隨 SQL Server 2000 一起發布的。並通過CreateObject("SQLD MO.SQLServer")函數創建新對象,使用SQLServ er.Connect函數經密碼校驗可連接伺服器,再創建備份核心對象SQLDMO.Backup,同時指定備份文件等參數即可實現資料庫備份與還原。具體的備份處理流程如圖8-10所示。

特別注意SQL Server 2000 所安裝的硬碟分區格式是否是NTFS格式,NTFS是最適合安裝SQL Serv⁃er的文件系統。它比FAT文件系統更穩定且更容易恢復。而且它還包括一些安全選項,例如文件和目錄ACL,以及文件加密(EFS)。如果是Fat32格式建議將它改成NTFS格式,因為Fat32支持最大文件為4G,資料庫超過4G通常會提示日誌文件太大之類的錯誤。

圖8-10 資料庫備份處理流程圖

(二)關鍵代碼

'************資料庫備份操作*************

Set gSQLServer=getSQLServer(ServerName,UserName,password)

Private Function BackUpData(gDatabaseName As String,gBkupRstrFileName As String,Server⁃Name As String,UserName As String,password As String)As String

On Error GoTo ErrHandler:

Dim oBackup As SQLDMO.Backup

Dim gSQLServer As SQLDMO.SQLServer

Set tprg=New CProgress

tprg.Title ="正在執行資料庫備份......"

ServerName為伺服器名稱;serName為用戶名;password為超級密碼

'連接伺服器

Set oBackup=New SQLDMO.Backup

Set oBackupEvent=oBackup

gDatabaseName為所要備份數據名稱;gBkupRstrFileName為備份文件名

oBackup.Database=gDatabaseName

oBackup.Files=gBkupRstrFileName

已存在gBkupRstrFileName備份文件名,則覆蓋

If Len(Dir(gBkupRstrFileName))>0 Then

Kill(gBkupRstrFileName)

End If

oBackup.PercentCompleteNotification=1

Screen.MousePointer=vbHourglass

oBackup.SQLBackup gSQLServer

DoEvents

Screen.MousePointer=vbDefault

'清空內存、關閉連接

Set oBackupEvent=Nothing

Set oBackup=Nothing

gSQLServer.Close

Set gSQLServer=Nothing

Set tprg=Nothing

Exit Function

ErrHandler:

m_str狀態=Err.Description

Resume Next

Set tprg=Nothing

End Function

'************資料庫還原操作*************

Private Function RestoreData(gDatabaseName As String,gBkupRstrFileName As String,Server⁃Name As String,UserName As String,password As String)As String

On Error GoTo ErrHandler:

Dim oRestore As SQLDMO.Restore

Dim msg As String

Dim Response As String

Set tprg=New CProgress

tprg.Title ="正在執行資料庫還原......"

Dim gSQLServer As SQLDMO.SQLServer

'ServerName為伺服器名稱;serName為用戶名;password為超級密碼

'連接伺服器

Set gSQLServer=getSQLServer(ServerName,UserName,password)

Set oRestore=New SQLDMO.Restore

Set oRestoreEvent=oRestore

'gDatabaseName為所要還原數據名稱;gBkupRstrFileName為還原文件名

oRestore.Database=gDatabaseName

oRestore.Files=gBkupRstrFileName

Screen.MousePointer=vbHourglass

oRestore.PercentCompleteNotification=1

oRestore.SQLRestore gSQLServer

Screen.MousePointer=vbDefault

'清空內存、關閉連接

Set oRestoreEvent=Nothing

Set oRestore=Nothing

gSQLServer.Close

Set gSQLServer=Nothing

Set tprg=Nothing

Exit Function

ErrHandler:

m_str狀態=Err.Description

Resume Next

Set tprg=Nothing

End Function

'************顯示備份進度*************

'************顯示還原進度*************

End Sub

Private Sub oBackupEvent_PercentComplete(ByVal Message As String,ByVal Percent As Long)

DoEvents

tprg.Value=Percent

End Sub

Private Sub oRestoreEvent_PercentComplete(ByVal Message As String,ByVal Percent As Long)

DoEvents

tprg.Value=Percent

3. SqlServer資料庫備份的資料庫可以還原到MySQL資料庫嗎

SQL語句備份和恢復
SQL Server:
備份命令:
BACKUP DATABASE test
TO disk = 'c:\test'
WITH FORMAT,
NAME = 'Full Backup of MyNwind'

4. 如何設置將SQL SERVER2012資料庫備份還原到SQL SERVER2008上

我試過了,貌似不行 ,即使把2012的資料庫兼容模式降到2008或者更低,低版本的SQLServer也沒法解析2012的資料庫的備份

只有高版本sqlserver識別低版本的資料庫文件\備份

當然如果你不要表內數據或者數據少
你可以生成資料庫腳本到 2008去用這個腳本創建整個資料庫架構,然後再手動將需要的數據導入

5. 重裝系統後SQLserver備份的資料庫怎麼還原

你是在資料庫上備份的,還是直接復制了mdf文件?要是直接復制了mdf文件就打開企業管理器,在資料庫上右鍵→所有任務→附加資料庫要是在資料庫上直接選所有任務備份的資料庫,就打開企業管理器,在資料庫上右鍵→所有任務→還原資料庫</a>

6. 請問sqlserver資料庫恢復怎麼辦,從一台機器上備份資料庫傳到另一台機器上 還原資料庫總是出錯,

你可能機器上裝有多實例,05實例及08實例,而你一直用ssms啟動的05實例
查看一下配置管理器,看看sqlserver(xxx)這樣的服務有幾個,不計express版的那些
然後嘗試用.\括弧中的名稱,例如sqlserver(mssql)-》登錄時伺服器名用.\mssql
登錄後查看版本

7. SqlServer2005怎樣備份,還原

你好,SqlServer2005備份和還原方式可以通過以下兩種方式解決:
1、手動的話直接在SQL Server管理器里選中要備份的資料庫,按滑鼠右鍵,選所有任務->備份資料庫就可以了,還原也是這樣操作
2、如果需要專業備份服務的話,可以用多備份來備份SqlServer資料庫,實現全自動操作,不擔心數據會丟失

熱點內容
怎麼調用伺服器資料庫 發布:2025-01-15 13:06:25 瀏覽:655
人人網設置訪問許可權 發布:2025-01-15 13:02:06 瀏覽:562
崩壞學園2腳本 發布:2025-01-15 12:58:43 瀏覽:458
我的世界伺服器等級如何升 發布:2025-01-15 12:45:55 瀏覽:689
c語言程序填空題 發布:2025-01-15 12:45:53 瀏覽:545
怎麼配置氯化鈉濃度 發布:2025-01-15 12:34:06 瀏覽:206
4000除以125簡便演算法 發布:2025-01-15 12:27:41 瀏覽:464
源碼商用 發布:2025-01-15 12:26:54 瀏覽:75
價錢演算法 發布:2025-01-15 12:26:03 瀏覽:401
蘋果手機安卓功能在哪裡 發布:2025-01-15 12:21:34 瀏覽:787