❶ 如何還原master資料庫
master 資料庫已經進行了備份,但還原的時候提示:
當試圖還原master 資料庫時,必須以單用戶模式使用restore database.
restore database 操作異常終止.
1、可以在命令行模式下輸入 sqlservr -c -f -m 或者輸入 sqlservr -m 其中:
-c 可以縮短啟動時間,SQL Server 不作為Windows NT 的服務啟動 -f 用最小
配置啟動SQL Server -m 單用戶模式啟動SQL Server
2、可以在控制面板-服務-MSSQLServer 的啟動參數中輸入-c -f -m 或者輸入-m,點擊開始3、還有一種更靈活的啟動方法:用存在注冊表裡的啟動參數啟動 在MSSQLServer 項下添
加項SingleUser,具體內容如下所示:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\SingleUser\ParametersSQLArg0REG_SZ : -dC:\MSSQL7\DATA\MASTER.DATSQLArg1REG_SZ : -eC:\MSSQL7\LOG\ERRORLOG
SQLArg2 :
REG_SZ : -lC:\MSSQL7\DATA\MASTLOG.DATSQLArg3REG_SZ : -m 在命令行下輸入SQLServr -c -s
❷ 如何通過 sql 2008 備份的資料庫恢復
1.
左下角點擊開始,程序,Microsoft
SQL
Server
2008
R2
,找到SQL
Server
Management
Studio,進入企業管理器。
2
選擇伺服器\實例名,登錄名選擇sa,輸入sa登錄密碼,點擊連接。
3
進入企業管理器界面,滑鼠右鍵單擊「資料庫」,選擇「新建資料庫」。
4
輸入資料庫名稱,例如123材料,然後點擊確定。然後在企業管理器里就會發現多出了一個資料庫「123材料」
5
滑鼠右鍵點擊
「123材料」這個資料庫,選擇「任務」—「還原」—「資料庫」
6
進入還原資料庫頁面,選擇「源設備」,然後點擊後面的三個小圓點。
7
點擊「添加」。
8
選擇要恢復的BAK文件。
9
點擊下面的「選擇用於還原的備份集」,把還原下面的方框全部勾選,,然後點擊左側的「選項」
10
在選項的設置里,把「覆蓋現有資料庫」前面的方框勾選,然後點擊下面的「確定」
11
成功完成資料庫的還原,大功告成!
❸ master庫損壞如何恢復
遇到損壞或者錯誤的master資料庫是最難解決情況之一。
Master資料庫包含了SQL Server需要的關鍵信息。如果master資料庫出錯,那麼SQL Server就不能啟動。要在這種情況下還原master資料庫,可以按照下面這些步驟來從災難中恢復過來:
1. 使用\PRogram Files\Microsoft SQL Server\80\Tools\Binn目錄下的rebuidm.exe文件重建master資料庫。重建master資料庫可以使資料庫文件完整無缺。為以防萬一,經常把數據和日誌文件備份到一個單獨的目錄是個不錯的主意。
2. 使用-m參數啟動SQL Server,這樣可以以單用戶模式重新啟動SQL Server。
3. 從最近一次已知最好的備份來還原master資料庫。
4. 核實master資料庫是不是已經成功還原:確認所有資料庫都已恢復正常運行。從最近一次已知最好的備份來還原msdb資料庫。
5. 以普通模式停止和啟動SQL Server。
6. 向生產用戶開放資料庫。
如果這樣做沒有效,那麼重建master資料庫然後附加這個資料庫。master資料庫出現問題,那麼伺服器上所有的資料庫都會出現問題。
總的來說,恢復時要完成的第一個步驟就是安裝一個新的master資料庫,使伺服器至少能夠啟動。
❹ 怎麼用sql語句備份恢復sql2008資料庫
1.代碼如下,如果不行,請使用下列方法進行腳本創建。
RESTOREDATABASE[QPAccountsDB]FROMDISK=N'D:DBQPAccountsDB.BAK'WITHFILE=1,
MOVEN'QPAccountsDB'TON'D:DataBaseQPAccountsDB.mdf',
MOVEN'QPAccountsDB_log'TON'D:DataBaseQPAccountsDB_log.ldf',NOUNLOAD,REPLACE,STATS=10
GO
RESTOREDATABASE[QPGameMatchDB]FROMDISK=N'D:DBQPGameMatchDB.BAK'WITHFILE=1,
MOVEN'QPGameMatchDB'TON'D:DataBaseQPGameMatchDB.mdf',
MOVEN'QPGameMatchDB_log'TON'D:DataBaseQPGameMatchDB_log.ldf',NOUNLOAD,REPLACE,STATS=10
GO
2.請登陸SQL 2008資料庫,先進行恢復操作,選擇需要還原的資料庫,點擊創建腳本即可生成腳本
❺ 如何重新生成master 資料庫
當Master資料庫損壞了,無法打開實例,我們必需重建Master資料庫 Master損壞後,試圖啟動服務的時候會報錯,無法啟動
重建Master資料庫前提條件:
1. 曾備份過Master資料庫
2. 混合模式下
3. 啟用了sa賬戶
4. sql server 2005 安裝盤
Master資料庫文件損壞,不能啟動實例
(實驗模擬可改其資料庫名字(必需停止服務)達到損壞它的目的。例如:master1.mdf):
接下來我們開始重建恢復的步驟:
1. 先輸入命令行重建Master資料庫
2. 在cmd命令提示符下,進入到這個目錄
C:\>cd "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn"
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn>start /wait d:\setup.exe /qn INSTANCENAME="MSSQLSERVER" REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=163.com
重建的時間可能會長些,請耐心的等待下…… 註:
D:\setup.exe 制定安裝盤的盤符位置
INSTANCENAME:指定實例名(默認實例則用mssqlserver表示) REINSTALL:指定引擎
SAPWD:重新設置sa的強密碼(一般企業都是啟用強密碼策略的/4選3) Setup.exe:指定光碟1中的根目錄下的文件
/qn 開關用於取消所有安裝程序對話框和錯誤消息。如果指定 /qn 開關,則所有安裝程序消息(包括錯誤消息)都將寫入安裝程序日誌文件。有關日誌文件的詳細信息,請參閱如何查看 SQL Server 2005 安裝日誌文件。
指定 /qb 開關將顯示基本的安裝程序對話框。還會顯示錯誤消息。
3.C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn>sqlservr.exe -c –m
輸入命令行進單用戶模式,還原整個資料庫的Master資料庫,剛才只是重建了一個新的資料庫,並不是我們原來的那個,所以要進行還原回備份時的狀態
4.啟動SSMS——用sa登錄——斷開連接(這步很關鍵,千萬要記住)——新建查詢(sa)——還原master資料庫 輸入以下語句:
use master go
restore database master from disk='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\master.bak' with replace
(注: 'C:\Program Files\Microsoft SQL
Server\MSSQL.1\MSSQL\Backup\master.bak'為你備份文件的路徑)
完成恢復,啟動服務,打開SSMS
❻ 如何恢復master資料庫
在網上搜索了一下,發現了一篇介紹比較詳細的,而且也確實解決了這一問題(我在VM上測試過可以),特將其全文轉貼如下:
關於系統資料庫的恢復總結如下:
在SQL Server資料庫中,系統信息存儲在系統資料庫中,主要的系統資料庫包括:
master-從整體上控制用戶資料庫和SQL Server操作,在創建了任何用戶定義的對象後,都要備份它
model-為新資料庫提供模版和原型
msdb-包含了有關作業、報警及操作員等信息
如果包含系統資料庫的介質變了,那麼必須重建系統資料庫,如果你仍然可以啟動SQL Server服務,則可以通過RESTORE語句從系統資料庫的備份中恢復資料庫。
如果master壞了,不能啟動系統,可以按照下面步驟進行恢復
1.重建系統資料庫 運行c:/mssql7/binn/rebuildm.exe,按照提示進行即可,
過程中需要系統資料庫樣本的路徑,可在安裝光碟中找到;
2 重建系統資料庫後,啟動SQL Server服務,用系統資料庫的備份恢復資料庫
就行了通常恢復順序為master->msdb->model
在恢復master的備份時要注意:必須在單用戶(single user)模式下進行
a.進入單用戶模式的方法:
1.在命令行模式下輸入sqlservr -c -f -m或者輸入sqlservr -m
其中:-c 可以縮短啟動時間,SQL Server 不作為Windows NT的服務啟動
-f 用最小配置啟動SQL Server
-m 單用戶模式啟動SQL Server
2.可以在控制面板-服務-MSSQLServer的啟動參數中輸入-c -f -m或者輸入-m,點擊開始
3.進行master資料庫的恢復
a.直接進入查詢分析器,有個提示不要理會它
輸入恢復語句進行資料庫恢復:
RESTORE DATABASE master from disk='c:/具體的備份文件名'
b.或者用這個,在命令提示符下輸入,注意大小寫
使用"windows身份驗證"的,輸入:isql /E
使用"sql server和windows身份驗證"的,輸入:isql /U"用戶名" /P"密碼"
然後在出現的提示符下輸入(注意1>,2>是提示符):
❼ 請問只有master.mdf,沒有備份文件的情況下,怎麼恢復master資料庫,sql server 2008 r2.
sql server 2005 & 2008 master與msdb資料庫的備份與恢復,master與msdb資料庫的備份與普通資料庫一樣,本文主要描述master與msdb資料庫的恢復的一些個人積累。 恢復master與msdb資料庫關鍵在於以單用戶模式啟動,其它並沒有太大的區別。 由於系統資料庫對Sql Server來說尤其重要,為了確保SQL SERVER系統的正常運行,除了日常備份用戶的資料庫之外,我們還需要備份系統資料庫,如對Master,Model,Msdb(TempDB不需備份)進行完整備份 1、還原Master資料庫 如果系統配置丟失或Master出現問題,可以進入單用戶模式進行還原;如果出現下列情況,必須重新生成損壞的 master 資料庫: A. master 資料庫的當前備份不可用。 B. 存在 master 資料庫備份,但由於 Microsoft SQL Server 實例無法啟動,因此無法還原該備份。 1、重新生成 master 資料庫: 注意: 在 SQL Server 2005 中已廢止 Rebuildm.exe 程序。若要重新生成 master 資料庫,請使用 setup.exe。 1、 Start /wait setup.exe /qn INSTANCENAME= REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD= 例:start /wait e:“setup.exe /qn INSTANCENAME=mssqlserver REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=abc123@!@ 註:INSTANCENAME:指定實例名,默認實例則用mssqlserver表示 REINSTALL:指定引擎 SAPWD:強密碼 Setup.exe:指定光碟1中的根目錄下的文件 /qn 開關用於取消所有安裝程序對話框和錯誤消息。如果指定 /qn 開關,則所有安裝程序消息(包括錯誤消息)都將寫入安裝程序日誌文件。有關日誌文件的詳細信息,請參閱如何查看 SQL Server 2005 安裝日誌文件。 指定 /qb 開關將顯示基本的安裝程序對話框。還會顯示錯誤消息。 2、 還原Master備份(在恢復master的備份時要注意:必須在單用戶(single user)模式下進行 ) a.進入單用戶模式的方法: 1.在命令行模式下輸入sqlservr -c -f -m或者輸入sqlservr -m 其中:-c 可以縮短啟動時間,SQL Server 不作為Windows NT的服務啟動 -f 用最小配置啟動SQL Server -m 單用戶模式啟動SQL Server 2.系統默認沒有設置PATH,先進入CMD,進入“C:“Program Files“Microsoft SQL Server“MSSQL.1“MSSQL“Binn”,執行SQLSERVR.EXE –M 打開SSMS工具,先斷開連接,再新建查詢,執行以下命名還原 USE master GO RESTORE DATABASE master FROM disk=‘c:“master.bak‘ GO 開始實驗了~~~ MASTER重新生成 為了模擬MASTER資料庫壞了,我們就刪除MASTER資料庫(要停止SQL SERVER服務才能刪除)在我的電腦,C:“ PROGRAM FILES“MICROSOFT SQL SERVER“MSSQL.1“MSSQL“DATE 中刪除MASTER.MDF 重新生成MASTER 1.首先在CMD中輸入 start /wait setup.exe /qn INSTANCENAME= REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD= 其中的 SETUP.EXE為啟動光碟的路徑,我這里的是 E:“SETUP.EXE /QN 我這里的為默認實例所以其中的用 MSSQLSERVER代替 最後的為密碼我設密碼為abc123@!@,所以就用abc123@!@代替 若沒有返回錯誤,我們就可以到我的電腦中C:“ PROGRAM FILES“MICROSOFT SQL SERVER“MSSQL.1“DATE上面又有MASTER.MDF了 接下來進入目錄 單用戶模式 啟動SSMS工具,新建查詢 輸入命令 啟動服務(MSSQL SERVER) 打開SSMS 連接到資料庫後就可以發現資料庫中的數據又回來了 以下是我在命令行下搞的命令,我用記事本的方式全部復制下來了,為了不傳附件,我就直接粘貼到下面了 Microsoft Windows [版本 5.2.3790] (C) 版權所有 1985-2003 Microsoft Corp. C:“Documents and Settings“Administrator>start /wait e:“setup.exe /qn INSTANCENAME=mssqlserver REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=abc123@!@ C:“Documents and Settings“Administrator>cd C:“Program Files“Microsoft SQL Server“MSSQL.1“MSSQL“Binn C:“Program Files“Microsoft SQL Server“MSSQL.1“MSSQL“Binn>sqlservr.exe -m 2008-04-18 15:47:46.56 Server Authentication mode is MIXED. 2008-04-18 15:47:46.59 Server Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1) 2008-04-18 15:47:46.59 Server (c) 2005 Microsoft Corporation. 2008-04-18 15:47:46.59 Server All rights reserved. 2008-04-18 15:47:46.59 Server Server process ID is 3984. 2008-04-18 15:47:46.59 Server Logging SQL Server messages in file ‘C:“Program Files“Microsoft SQL Server“MSSQL.1“MSSQL“LOG“ERRORLOG‘. 2008-04-18 15:47:46.59 Server This instance of SQL Server last reported using a process ID of 764 at 2008-4-18 15:46:40 (local) 2008-4-18 7:46:40 (UTC). This is an informational message only; no user action is required. 2008-04-18 15:47:46.60 Server Registry startup parameters: 2008-04-18 15:47:46.60 Server -d C:“Program Files“Microsoft SQL Server“MSSQL.1“MSSQL“DATA“master.mdf 2008-04-18 15:47:46.60 Server -e C:“Program Files“Microsoft SQL Server“MSSQL.1“MSSQL“LOG“ERRORLOG 2008-04-18 15:47:46.60 Server -l C:“Program Files“Microsoft SQL Server“MSSQL.1“MSSQL“DATA“mastlog.ldf 2008-04-18 15:47:46.62 Server Command Line Startup Parameters: 2008-04-18 15:47:46.62 Server -m2008-04-18 15:47:46.64 伺服器 SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required. 2008-04-18 15:47:46.67 伺服器 Detected 1 CPUs. This is an informational message; no user action is required. 2008-04-18 15:47:46.78 伺服器 Using dynamic lock allocation. Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node. This is an informational message only. No user action is required. 2008-04-18 15:47:46.84 伺服器 Attempting to initialize Microsoft Distributed Transaction Coordinator (MS DTC). This is an informational message only. No user action is required. 2008-04-18 15:47:47.95 伺服器 Attempting to recover in-doubt distributed transactions involving Microsoft Distributed Transaction oordinator (MS DTC). This is an informational message only. No user action is required. 2008-04-18 15:47:47.96 伺服器 Database Mirroring Transport is disabled in the endpoint configuration. 2008-04-18 15:47:47.96 spid5s Warning ****************** 2008-04-18 15:47:47.96 spid5s SQL Server started in single-user mode. This an informational message only. No user action is required. 2008-04-18 15:47:47.99 spid5s Starting up database ‘master‘. 2008-04-18 15:47:48.17 spid5s Recovery is writing a checkpoint in database ‘master‘ (1). This is an informational message only. No user action is required. 2008-04-18 15:47:48.28 spid5s SQL Trace ID 1 was started by login "sa". 2008-04-18 15:47:48.32 spid5s Starting up database ssqlsystemresource‘. 2008-04-18 15:47:48.76 spid5s Server name is ‘VM01‘. This is an informational message only. No user action is required. 2008-04-18 15:47:48.78 spid8s Starting up database ‘model‘. 2008-04-18 15:47:49.20 伺服器 A self-generated certificate was successfully loaded for encryption. 2008-04-18 15:47:49.23 伺服器 Server is listening on [ ‘any‘ 1433]. 2008-04-18 15:47:49.24 伺服器 Server local connection provider is ready to accept connection on [ ““.“pipe“SQLLocal“MSSQLSERVER ]. 2008-04-18 15:47:49.24 伺服器 Server local connection provider is ready to accept connection on [ ““.“pipe“sql“query ]. 2008-04-18 15:47:49.28 伺服器 Server is listening on [ 127.0.0.1 1434]. 2008-04-18 15:47:49.28 伺服器 Dedicated admin connection support was established for listening locally on port 1434. 2008-04-18 15:47:49.29 伺服器 The SQL Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service. Error: 0x54b. Failure to register an SPN may cause integrated authentication to fall back to NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies. 2008-04-18 15:47:49.31 伺服器 SQL Server is now ready for client connections. This is an informational message; no user action is required. 2008-04-18 15:47:49.40 spid5s Starting up database ‘msdb‘. 2008-04-18 15:47:49.68 spid8s Clearing tempdb database. 2008-04-18 15:47:49.93 spid5s Recovery of any in-doubt distributed transactions involving Microsoft Distributed Transaction Coordinator (MS DTC) has completed. This is an informational message only. No user action is required. 2008-04-18 15:47:50.57 spid8s Starting up database ‘tempdb‘. 2008-04-18 15:47:50.76 spid5s Recovery is complete. This is an informational message only. No user action is required. 2008-04-18 15:56:22.34 spid51 SQL Trace was stopped e to server shutdown. Trace ID = ‘1‘. This is an informational message only; no user action is required. 2008-04-18 15:56:22.40 伺服器 The SQL Network Interface library could not deregister the Service Principal Name (SPN) for the SQL Server service. Error: 0x54b. Administrator should deregister this SPN manually to avoid client authentication errors. C:“Program Files“Microsoft SQL Server“MSSQL.1“MSSQL“Binn> 打開SSMS工具,先斷開連接,再新建查詢,執行以下命名還原 USE master GO RESTORE DATABASE master FROM disk=‘C:“Program Files“Microsoft SQL Server“MSSQL.1 “MSSQL“Backup“master.bak‘ GO 資料庫中的顯示的消息應為: 已為資料庫 ‘master‘,文件 ‘master‘ (位於文件 1 上)處理了 376 頁。 已為資料庫 ‘master‘,文件 ‘mastlog‘ (位於文件 1 上)處理了 6 頁。 已成功地還原了 master 資料庫。正在關閉 SQL Server。 SQL Server 正在終止此進程。 則表示master資料庫還原成功,啟動服務後進入SSMS即可看到master資料庫了 恢復master資料庫 方法一:(操作步驟) 1停止MSSQLSERVER服務 2命令行輸入: net start "SQL Server (MSSQLSERVER)" /m 正常情況下顯示如下信息: SQL Server (MSSQLSERVER) 服務正在啟動 .. SQL Server (MSSQLSERVER) 服務已經啟動成功。 3命令行輸入: sqlcmd 1>USE master; 2>GO 此時顯示: 已將資料庫上下文更改為 'master'。 1>RESTORE DATABASE master FROM DISK='資料庫備份文件路徑'; 2>GO 如果恢復成功,顯示如下信息: 已為資料庫 'master',文件 'master' (位於文件 1 上)處理了 376 頁。 已為資料庫 'master',文件 'mastlog' (位於文件 1 上)處理了 3 頁。 已成功地還原了 master 資料庫。正在關閉 SQL Server。 SQL Server 正在終止此進程。 失敗則顯示: 消息 3154,級別 16,狀態 4,伺服器 HC,第 1 行 備份集中的資料庫備份與現有的 'master' 資料庫不同。 消息 3013,級別 16,狀態 1,伺服器 HC,第 1 行 RESTORE DATABASE 正在異常終止。 此時需要在恢復語句後面加上:WITH REPLACE。如: 1>RESTORE DATABASE master FROM DISK=資料庫備份文件路徑' WITH REPLACE; 2>GO 4重啟MSSQLSERVER服務 方法二:(與方法一差不多) 1打開“SQL Server 配置管理器”,單擊“SQL Server 服務” 2在右窗格中,右鍵單擊“SQL Server (<實例名>)”,再單擊“屬性” 3在“高級”選項卡的“啟動參數”框中,鍵入以分號“;”分隔的參數。(例如,若要以單用戶模式啟動,在現有啟動選項之前插入“-m;”,單擊“確定”,此時,彈出警告框,單擊“確定”即可) 4重新啟動資料庫引擎 5(同方法一中步驟3) 6成功恢復master資料庫後,若要以正常的多用戶模式重新啟動伺服器實例,必須先從“啟動參數”框中刪除剛才輸入的“-m;”,然後重新啟動SQL Server服務 恢復msdb資料庫 在msdb資料庫里存儲較多的是SQL Agent里的內容,如作業、調度、操作員、警告等信息,同時還存放SQL Server Integration Service(SSIS)相關信息。其恢復過程與普通資料庫恢復過程大同小異,不同點就是需要在單用戶模式啟動下進行恢復。 1打開SQL Server Management Studio,連接到相關的資料庫伺服器 2右鍵單擊msdb資料庫,單擊“屬性”打開資料庫屬性窗口,單擊“選項”,在右邊的“狀態”/“限制訪問”指定“SINGLE_USER”,然後單擊“確定”即以單用戶模式啟動,此時msdb顯示為“msdb(單個用戶)” 3(同恢復普通資料庫一樣...) 4恢復完畢後,別忘了將“限制訪問”改加以前的狀態“MULTI_USER”
❽ 如何還原 master 資料庫 (Transact
若要還原master的完整資料庫備份,請使用以下 RESTORE DATABASE Transact-SQL 語句: RESTORE DATABASE master FROM <backup_device WITH REPLACE; 即使存在同名的資料庫,REPLACE 選項也會還原指定資料庫。現有的資料庫(如果存在)被刪除。在單用戶模式下,建議您在 sqlcmd 實用工具 中輸入 RESTORE DATABASE 語句。有關詳細信息,請參閱 使用 sqlcmd 實用工具。 重要提示:還原master以後,SQL Server 實例關閉並終止sqlcmd進程。有關詳細信息,請參閱
❾ SQLServer2008資料庫怎樣備份還原和數據恢復
在完整恢復模式或大容量日誌恢復模式下,必須先備份活動事務日誌(稱為日誌尾部),然後才能在SQLServerManagementStudio中還原資料庫。有關詳細信息,請參閱如何備份事務日誌(SQLServerManagementStudio)。若要還原已加密的資料庫,您必須有權訪問用於加密資料庫的證書或非對稱密鑰。如果沒有證書或非對稱密鑰,資料庫將無法還原。
認識資料庫備份和事務日誌備份
資料庫備份與日誌備份是資料庫維護的日常工作,備份的目的是在於當資料庫出現故障或者遭到破壞時可以根據備份的資料庫及事務日誌文件還原到最近的時間點將損失降到最低點。
資料庫備份
資料庫備份可以手動備份和語句備份
一.手動備份資料庫
1.滑鼠右鍵選擇你要進行備份的資料庫-任務-備份
可以在常規選項頁面你可以選擇備份類型是進行完整資料庫備份還是差異資料庫備份
2.點擊添加選項,選擇資料庫文件的存放路徑
注意文件名記得加後綴.bak,便於恢復時的查找
3.你還可以在選項頁面是追加到現有的備份集,還是覆蓋所有的現有備份集,還可以選擇備份驗證完整性(建議選擇),還可以選擇是否壓縮備份等。
二.語句備份資料庫
use master goBACKUP DATABASE [test] TO DISK = N'D:Microsoft sql serverMSSQL10.MSSQLSERVERMSSQLBackup est.bak' WITH NOFORMAT, NOINIT, NAME = N'test-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10GO
資料庫日誌備份
首先需要注意,資料庫日誌的備份是基於資料庫完整備份,也就是說你備份資料庫日誌之前你首先要先對資料庫進行一次完整的備份,因為之間會涉及到堅持到檢查點 lsn, 這也是本文接下來要講的重點。
一.手動備份資料庫日誌
1.右鍵資料庫-任務-備份-選擇備份類型(事務日誌)
2.點添加,添加日誌文件備份存儲路徑
3.同資料庫完整備份一樣,你也可以選擇覆蓋現有備份集或者追加到現有備份集,這里現在覆蓋現有備份集、驗證完整性,然後確認備份
二.語句備份資料庫事務日誌
BACKUP LOG [test] TO DISK = N'D: est.trn' WITH NOFORMAT, INIT, NAME = N'test-事務日誌 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10GO
資料庫還原
右鍵資料庫-還原資料庫-添加需要進行還原的資料庫文件路徑
在還原源選項中你可以選擇『源資料庫』,『源設備』。1.選擇源資料庫工具會自動顯示該資料庫之前的一些備份,然後直接選擇需要還原的資料庫備份集。
2.選擇源設備點擊後面的...,添加需要還原的資料庫文件
2.點擊確認還原資料庫
資料庫恢復
資料庫恢復的前提是1.一個完整的資料庫備份2.包含這個完整資料庫備份的事務日誌備份3.完整備份之間也可以存在數個差異備份
對於資料庫維護空間始終是一個比較頭疼的問題,特別是對於大型資料庫而言,每天的日誌文件增長是龐大的,很多資料庫管理員會定時對資料庫日誌文件進行收縮,但是經常收縮會存在收縮完日誌文件還是不能減少,這是因為存在很多活動的日誌無法收縮可以用
DBCC LOGINFO('資料庫名稱')
我們看到
status=0的日誌,代表已經備份到磁碟的日誌文件;而
status=2的日誌還沒有備份。當我們收縮日誌文件時,收縮掉的空
間其實就是
status=0的空間,如果日誌物理文件無法減小,這里一
定能看到非常多status=2的記錄
解決辦法:1.可以分離要收縮的資料庫,然後手動刪除日誌文件,然後附加資料庫,資料庫就會產生一個很小的日誌文件(不推薦使用這種方法)
2.右鍵要出來的資料庫選擇「屬性」-"選項",將恢復模式改成"簡單",然後利用收縮工具可以講日誌文件收縮到很小,收縮完記得講恢復模式改成"完整"
也可以用語句進行處理(dbname是你要進行收縮的資料庫名,dbname_log是你要進行收縮的資料庫的邏輯日誌名稱)
USE [master]
GO ALTER DATABASE [dbname] SET recovery SIMPLE WITH NO_WAIT GO
ALTER DATABASE [dbname] SET RECOVERY SIMPLE --簡單模式
GO
USE [dbname]
GO
DBCC SHRINKFILE (N'dbname_log' , 11, TRUNCATEONLY) GO
USE [master]
GO
ALTER DATABASE [dbname] SET RECOVERY FULL WITH NO_WAIT ALTER DATABASE [dbname] SET RECOVERY FULL
對於第一種方法不贊同使用,首先對於資料庫的分離與附加有時候會破壞資料庫,造成資料庫無法還原,還有就是對於在線資料庫也不允許進行分離操作。
對於第二種方法是slq2008收縮日誌文件的一種方法,但是此方法也不能使用過於頻繁,因為進行資料庫恢復模式的更改會截斷事務日誌文件,這樣的話當時利用事務日誌文件進行恢復的時候檢查點不能包含資料庫文件,而且當你要對事務日誌進行備份的時候會重新提示你需要對資料庫進行完整備份。
舉個例子:比如你昨天晚上進行了一次完整備份,然後同時你也進行了一次日誌備份(提前日誌未被截斷),然後你每個小時進行過一次差異備份,最近的差異備份時間點是14點,如果此時資料庫錯誤修改了數據,你可以立馬備份一個日誌文件將資料庫恢復到日誌備份開始到日誌備份終點前的任意時間點 。
如果此時你進行了修改資料庫模式,截斷日誌進行了收縮,那麼你的數據只能恢復到昨天晚上備份的那個日誌備份時間前的任意時間點,也就是今天所做的資料庫更改無法再恢復了,因為日誌文件已經被截斷了,不知道這樣解釋是否明白
因為日誌文件的檢查點(lsn)是連續的,每一次日誌備份都是在上一次備份的基礎上lsn往後增加的,lsn的范圍也包括了資料庫文件的lsn,也只有日誌文件的lsn包括了資料庫文件的lsn,才能將資料庫文件進行回滾。
上圖中總共有三個備份文件,一個完整備份、一個差異備份、一個日誌備份,大家可以注意觀察完整備份的第一個lsn與最後一個lsn,和檢查點
第二個差異備份文件的的第一個lsn與最後一個lsn,和檢查點,最後的日誌備份的第一個lsn和最後一個lsn包含了前面兩個備份文件的lsn,這種情況資料庫就可以恢復到日誌文件備份前的任意時間點,如果日誌文件沒有包含資料庫文件的最後一個lsn也就無法恢復了。