1. sql如何恢復數據(sql怎麼恢復數據)
方法:
第一步:選擇需要還原的資料庫,滑鼠右鍵,選擇任務下的還原;
第二步:選擇「源設備」,點擊後面的文件選擇「...」;
第三升段步:添加需要還卜敏原的資料庫,還原的資料庫文件後綴為備份文件(bak);
第四步:選中添加進來的還原吵弊譽文件,找到左上角上的「選擇項」,勾選第一項(覆蓋現有資料庫),點擊確定就可以了。
注意事項
1、一定要記得覆蓋現有資料庫;
2、執行資料庫操作的時候,請斷開當前資料庫的任何使用(例如查詢,資料庫的連接使用)。
2. 怎樣修復已經損壞的SQL資料庫
1.停止SQL Server的服務,備份 Server安裝目錄下的\data子目錄
下故障資料庫的兩個文件,一個數據文件hbposv6_branch_data.mdf,
一個hbposv6_branch_log.ldf(也有可能非此命名),同時查看磁碟
空間是否有足夠的空間;
2.啟動SQL Server服務(如已停止),創建一個新的資料庫,命名為
原來資料庫的名字。
3.停止SQL Server
4.把老資料庫的MDF文件(hbposv6_branch_data.mdf)替換
新資料庫的相應的MDF文件,
並把LDF文件(hbposv6_branch_log.ldg)刪除。
5.重新啟動SQL Server服務,然後運行如下命令:
Use Master
go
sp_configure 'allow updates', 1
reconfigure with override
go
begin tran
update sysdatabases set status = 32768 where name = 'hbposv6_branch'
--Verify one row is updated before committing
commit tran
go
6.停止SQL然後重新啟動SQL Server服務,然後運行如下命令
(更換日誌文件路徑地址):
use master
go
DBCC TRACEON(3604)
DBCC REBUILD_LOG
('hbposv6_branch',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_log.ldf')
--在這里,請輸入你的資料庫的路徑
go
7.停止SQL然後重新啟動SQL Server服務,然後運行:
use master
go
update sysdatabases set status = 8 where name = 'hbposv6_branch'
go
sp_configure 'allow updates', 0
reconfigure with override
go
8.運行dbcc checkdb(db_name) 檢查資料庫的完整性
9.修復數庫
--請在查詢分析器中執行下列語句.執行前斷開其它
所有資料庫連接,最好是斷開網線
--如果不是該資料庫名,請將資料庫
--hbposv6_branch
--改為要修復的資料庫
USE master
Go
--單用戶模式
EXEC sp_dboption 'hbposv6_branch', 'single user', 'TRUE'
go
--資料庫檢查
DBCC CHECKDB ('hbposv6_branch')
Go
--如果返回結果出現了紅色的提示文字,說明資料庫中存在錯誤,需要修復
--資料庫修復
DBCC CHECKDB ('hbposv6_branch','repair_rebuild')
Go
--再次資料庫檢查,如果返回結果中沒有了紅色的提示文字,
說明修復成功;
DBCC CHECKDB ('hbposv6_branch')
Go
--否則意味著還需要更高級別的修復;嘗試將上面修復語句的
'repair_rebuild'換為'repair_allow_data_loss'再試,
之後再次檢查資料庫。
--如果還有錯誤未修復,請把這些信息以文字的方式發給我們
--退出前請一定要執行以下語句返回到多用戶模式
EXEC sp_dboption 'hbposv6_branch', 'single user','FALSE'
go
註:都要把 dbname 替換成真實的資料庫名字。
3. SQLServer2000資料庫崩潰後的補救措施
SQL Server 2000資料庫崩潰後的補救措施:
案例描述:
SQL Server 2000資料庫崩潰後,重裝資料庫前的准備:
1.三個系統庫(master,msdb,model)的完全備份:
2.兩個用戶資料庫(user01,user02)的備份(周日的完全備份+除周日外每天的差異備份):
三個系統資料庫是早期備份的,之間沒有更新過帳號信息,沒有增減過饕檔鵲取?
兩個用戶資料庫在上周日晚做過完陪信全備份(user01.bak和user02.bak)
需求:一次性恢復到用戶資料庫最後一個備份前的狀態。
下文中,我們將介紹一下常規的恢復過程:
1. 備份可用的數據, 包含所有系統資料庫和用戶資料庫的數據文件和日誌文件(*.mdf/ldf/ndf)
2. 卸載原來的安裝
3. 系統表查找和刪除所有的MSSQLServer項
4. 磁碟上刪除安裝SQL SErver產生的所有文件
5. 重新安裝SQL Server,所需安裝的補丁的版本要求保持與備份系統資料庫時安裝的補丁版本一致
6. 單用戶模式下恢復master資料庫
7. 恢復其他系統資料庫
8. 恢復用戶資料庫
此外,我們還可以嘗試用下面的方法:
假如你的時間芹櫻比較充裕,而且想盡量恢復數據到最近的時間點, 可以在上述步驟中做以下的嘗試:
1. 首先,將第6,7兩個步驟改為:
a. 停止MSSQL服務
b. 用步驟1備份的系統資料庫的數據文件和日誌文件替換安裝後生成的系統資料庫的對應文件
c. 建立與SQL Server系統崩潰之前一樣的用戶資料庫的存放目錄, 並且把用戶資料庫文件按原來的位置存放
d. 啟動MSSQL服務
e. 如果MSSQL服嫌亂叢務成功, 在企業管理看看用戶資料庫有沒有置疑, 如果沒有置疑, 則其他操作都不用做了, 數據已經恢復
注意事項:
在具體操作以上的步驟b之前, 先備份准備覆蓋的文件。
2. 如果步驟1的嘗試不成功, 則再做下面的嘗試, 把步驟8修改為下面的:
a. 停止MSSQL服務
b. 用備份的文件還原被覆蓋的文件
c. 嘗試用附加的方式恢復用戶資料庫
d. 如果成功, 則修復各用戶資料庫中的孤立用戶
恢復過程會涉及到的一些具體處理 1. 恢復系統資料庫:
在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. 在命令行模式下輸入:sqlservr -c -f -m或者輸入sqlservr -m
其中:-c 可以縮短啟動時間,SQL Server 不作為Windows NT的服務啟動
-f 用最小配置啟動SQL Server
-m 單用戶模式啟動SQL Server
b. 可以在控制面板-服務-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>是提示符):
1>RESTORE DATABASE master from disk='c:\具體的備份文件名'
2>GO
2. 還原資料庫的具體步驟:
(1) 恢復最近一次的完整備份
企業管理器--右鍵"資料庫"--所有任務--還原資料庫
--"還原為資料庫庫"中輸入還原後的資料庫名,設為:test
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件
--確定,回到資料庫還原的界面
--"還原備份集",選擇"資料庫--完全"
--選項--將"移至物理文件名"中的物理文件名修改為你的數據文件要存放的文件名
--如果要還原的資料庫已經存在,選擇"在現有資料庫上強制還原"
--"恢復完成狀態",選擇"使資料庫不再運行,但能還原其它事務日誌"
--確定 --或用SQL語句:
RESTORE DATABASE 資料庫名
FROM DISK = 'c:\你的完全備份文件名'
WITH NORECOVERY
(2)恢復完全備份後, 最近一次的差異備份(如果有的話)
企業管理器--右鍵"資料庫"--所有任務--還原資料庫
--"還原為資料庫庫"中選擇資料庫名:test
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件
--確定,回到資料庫還原的界面
--"還原備份集",選擇"資料庫--差異"
--"恢復完成狀態",選擇"使資料庫不再運行,但能還原其它事務日誌"
--確定
--或用SQL語句:
--或用SQL語句:
RESTORE DATABASE 資料庫名
FROM DISK = 'c:\你的差異備份文件名'
WITH NORECOVERY
(3)按時間先後, 恢復差異備份後(如果沒有差異備份,則是完全備份)的所有日誌備份
企業管理器--右鍵"資料庫"--所有任務--還原資料庫
--"還原為資料庫庫"中選擇資料庫名:test
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件
--確定,回到資料庫還原的界面
--"還原備份集",選擇"事務日誌"
--"恢復完成狀態"
如果是恢復最後一個日誌文件,選擇"使資料庫可以繼續運行,但無法還原其它事務日誌"
否則選擇"使資料庫不再運行,但能還原其它事務日誌"
--確定
--或者使用SQL語句:
RESTORE DATABASE 資料庫名
FROM DISK = 'c:\你的日誌文件名'
WITH RECOVERY
3. 解決孤立用戶:
(1) 查看某個資料庫的孤立用戶:
USE 庫名
EXEC sp_change_users_login 'Report'
(2)自動修復某個孤立的用戶:
USE 庫名
EXEC sp_change_users_login 'Auto_Fix', '孤立用戶名', NULL, '密碼'
--假如密碼指示用戶對應的登錄不存在時, 系統自動建立登錄, 為登錄分配密碼。