mssql資料庫系統崩潰後的一般處理步驟與方法

2022-09-25 07:21:11 字數 4003 閱讀 6949

mssql資料庫系統崩潰後的一般處理步驟 

情況描述:

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. 如果成功, 則修復各使用者資料庫中的孤立使用者

恢復www.cppcns.com過程會涉及到的一些具體處理

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 databas程式設計客棧e 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&nbswww.cppcns.comp;disk = 'c:\你的差異備份檔案名' 

with norecovery

3. 按時間先後, 恢復差異備份後(如果沒有差異備份,則是完全備份)的所有日誌備份

企業管理器--右鍵"資料庫"--所有任務--還原資料庫

--"還原為資料庫庫"中選擇資料庫名:test

--還原選擇"從裝置"--選擇裝置--新增--新增你的備份檔案

--確定,回到資料庫還原的介面

--"還原備份集",選擇"事務日誌"

--"恢復完成狀態"

如果是恢復最後乙個日誌檔案,選擇"使資料庫可以繼續執行,但無法還原其它事務日誌"

否則選擇"使資料庫不再執行,但能還原其它事務日誌"

--確定

--或用sql語句:

restore databasewww.cppcns.com 資料庫名

from disk = 'c:\你的日誌檔名' 

with recovery

3. 解決孤立使用者:

1. 檢視某個資料庫的孤立使用者:

use 庫名

exec sp_change_users_login 'report'

2. 自動修復某個孤立使用者:

use 庫名

exec sp_change_users_login 'auto_fix', '孤立使用者名稱', null, '密碼'  

--密碼指使用者對應的登入不存在時, 系統自動建立登入, 為登入分配的密碼

本文標題: mssql資料庫系統崩潰後的一般處理步驟與方法

本文位址: /shujuku/mssql/35359.html

ms sql資料庫系統表

名稱 位址 說明 master.dbo.sysaltfiles 主資料庫 儲存資料庫的檔案 master.dbo.syscharsets 主資料庫 字符集與排序順序 master.dbo.sysconfigures 主資料庫 配置選項 master.dbo.syscurconfigs 主資料庫 當前...

資料庫系統mysql MySQL資料庫系統

1 mysql的特點 1 多執行緒 多使用者 2 基於c s 客戶端 伺服器 架構 3 簡單易用 查詢速度快 4 安全可靠 2 mysql編譯安裝 代表鍵盤上tab鍵 1 準備工作 解除安裝使用rpm方式安裝的mysql rpm e mysql nodeps 安裝cmake包 cd media ta...

資料庫系統 資料庫 資料庫管理系統 資料庫系統

繼續寫資料庫系統的文章,第二篇 資料庫 資料庫管理系統 資料庫系統。本文主要談談這三者之間的關係。下方,摘自老師的ppt,非原創。資料庫管理系統 從系統角度看資料庫管理系統 資料庫系統 資料庫指的是長期儲存在計算機內有組織的,大量的,相關聯的,可共享的資料集合。資料應當是有組織的,不應該是雜亂無章的...