經常跟資料庫打交道,附加或聯機或還原資料庫的途徑很多,這其中處理時碰到的問題也很多,個人在經歷前面所述的情況時發現了問題的煩惱性,以及解決問題的分析重要性,每個人分享自己碰到的問題,分享交流自己的經驗心得,那麼整個學習氛圍就會變得更加“和諧”,幫助別人也是總結自己的狀態。
方法/步驟
之所以要附加或聯機或還原資料庫,因為之前的操作:分離或離線或備份資料庫,才有了後來的行為,當然目的只有一個就是為了將資料庫加到資料庫管理工具中,好讓資料庫能被管理,能被使用。
附加資料庫,緣於前面的分離資料庫,就是將資料庫完完全全從資料庫管理工具中“拿”下來,分離資料庫之後,資料庫就是單獨的檔案,沒有任何關係,通過附加資料庫就是再將資料庫加到資料庫管理工具上。
聯機資料庫跟附加資料庫差不多,唯一的區別是聯機資料庫是由於之前的離線資料庫操作,離線資料庫僅僅是斷開與資料庫的連線,“聯絡”還在的,只是資料庫斷開了與資料庫管理的連線而已。
還原資料庫是之前備份過資料庫,這個備份資料庫是不是完完全全的備份資料庫,而是生成新的“資料庫”檔案,只有通過資料庫還原才能讓資料庫重新生成並連線到資料庫管理工具,從而進行管理資料庫。
上述針對同一個資料庫,速度最快的操作依次是聯機資料庫、附加資料庫、還原資料庫行為是最慢的,還原資料庫需要經歷還原資料庫檔案的過程,聯機資料庫只需要進行一個連線資料庫的過程。
但是問題往往有許多,通過分離或者離線資料庫後,複製到新的空間,但又不想將資料庫對應的日誌檔案也附加到新的空間(這種情況往往針對大型資料庫檔案比較常見),但是單單附加或聯機資料庫主資料檔案又無法操作成功,揪心懊惱的事情就發生了。
其實非常簡單,新建一個需要附加資料庫的同名數據庫,然後將目標資料庫主資料檔案覆蓋新建的資料庫主資料檔案,之後在資料庫管理工具檢視資料庫即可。還沒完,此時的資料庫旁邊一般會出現兩個字:質疑或者置疑。
莫慌,針對此問題莫著急,至少說明你的資料庫已經成功附加或聯機到資料庫管理工具上了,也說明你的資料庫主資料檔案是完整的。接下來就是處理這個比較常見的問題。
執行以下程式碼段就可以完全附加或聯機資料庫了。
alter database 資料庫名 set emergency
--將資料庫設定為緊急狀態。
alter database 資料庫名 set single_user
--將資料庫設定為單使用者狀態。
--接下來不是將資料庫設定為多使用者狀態。
dbcc checkdb('資料庫名',repair_allow_data_loss)
--檢查並新建資料庫日誌檔案。(這個過程速度依主資料庫檔案大小而定)
alter database 資料庫名 set multi_user
--將資料庫設定為多使用者狀態。
注意事項
替換方式“附加”資料庫對大型檔案比較快速。
有時候處理資料庫問題需要耐心等待,處理比較耗系統資源。