一、概述
SQL Server提供了“分離/附加”數據庫、“備份/還原”數據庫、復制數據庫等多種數據庫的備份和恢復方法。這裡介紹一種學習中常用的“分離/附加”方法,類似於大家熟悉的“文件拷貝”方法,即把數據庫文件(.MDF)和對應的日志文件(.LDF)拷貝到其它磁盤上作備份,然後把這兩個文件再拷貝到任何需要這個數據庫的系統之中。比如,在實驗教學過程中,同學們常常想把自己在學校實驗室計算機中創建的數據庫搬遷到自己的計算機中而不想重新創建該數據庫,就可以使用這種簡單的方法。但由於數據庫管理系統的特殊性,需要利用SQL Server提供的工具才能完成以上工作,而直接的文件拷貝是行不通的。
這個方法涉及到SQL Server分離數據庫和附加數據庫這兩個互逆操作工具。
1、分離數據庫就是將某個數據庫(如student_Mis)從SQL Server數據庫列表中刪除,使其不再被SQL Server管理和使用,但該數據庫的文件(.MDF)和對應的日志文件(.LDF)完好無損。分離成功後,我們就可以把該數據庫文件(.MDF)和對應的日志文件(.LDF)拷貝到其它磁盤中作為備份保存。
2、附加數據庫就是將一個備份磁盤中的數據庫文件(.MDF)和對應的日志文件(.LDF)拷貝到需要的計算機,並將其添加到某個SQL Server數據庫服務器中,由該服務器來管理和使用這個數據庫。
二、分離數據庫
1. 在啟動SSMS並連接到數據庫服務器後,在對象資源管理器中展開服務器節點。在數據庫對象下找到需要分離的數據庫名稱,這裡以student_Mis數據庫為例。右鍵單擊student_Mis數據庫,在彈出的快捷菜單中選擇屬性。
2. 在“數據庫屬性”窗口左邊“選擇頁”下面區域中選定“選項”對象,然後右邊區域的“其它選項”列表中找到“狀態”項,單擊“限制訪問”文本框,在其下拉列表中選擇“SINGLE_USER”。
3. 在上圖中單擊“確定”按鈕後將出現一個消息框,通知我們此操作將關閉所有與這個數據庫的連接,是否繼續這個操作(如下圖)。注意:在大型數據庫系統中,隨意斷開數據庫的其它連接是一個危險的動作,因為我們無法知道連接到數據庫上的應用程序正在做什麼,也許被斷開的是一個正在對數據復雜更新操作、且已經運行較長時間的事務。
4. 單擊“是”按鈕後,數據庫名稱後面增加顯示“單個用戶”(如下圖)。右鍵單擊該數據庫名稱,在快捷菜單中選擇“任務”的二級菜單項“分離”。出現下圖所示的“分離數據庫”窗口。
5. 在下圖的分離數據庫窗口中列出了我們要分離的數據庫名稱。請選中“更新統計信息”復選框。若“消息”列中沒有顯示存在活動連接,則“狀態”列顯示為“就緒”;否則顯示“未就緒”,此時必須勾選“刪除連接”列的復選框。
6. 分離數據庫參數設置完成後,單擊底部的”確定”按鈕,就完成了所選數據庫的分離操作。這時在對象資源管理器的數據庫對象列表中就見不到剛才被分離的數據庫名稱student_Mis了(如下圖)。
三、附加數據庫
1. 將需要附加的數據庫文件和日志文件拷貝到某個已經創建好的文件夾中。出於教學目的,我們將該文件拷貝到安裝SQL Server時所生成的目錄DATA文件夾中。
2. 在下圖窗口中,右擊數據庫對象,並在快捷菜單中選擇“附加”命令,打開“附加數據庫”窗口。
3. 在“附加數據庫”窗口中,單擊頁面中間的“添加”按鈕,打開定位數據庫文件的窗口,在此窗口中定位剛才拷貝到SQL Server的DATA文件夾中的數據庫文件目錄(數據文件不一定要放在“DATA”目錄中),選擇要附加的數據庫文件(後綴.MDF,如下圖)。
4. 單擊“確定”按鈕就完成了附加數據庫文件的設置工作。這時,在附加數據庫窗口中列出了需要附加數據庫的信息(如下圖)。如果需要修改附加後的數據庫名稱,則修改“附加為”文本框中的數據庫名稱。我們這裡均采用默認值,因此,單擊確定按鈕,完成數據庫的附加任務。
完成以上操作,我們在SSMS的對象資源管理器中就可以看到剛剛附加的數據庫student_Mis (如下圖)。
以上操作可以看出,如果要將某個數據庫遷移到同一台計算機的不同SQL Server實例中或其它計算機的SQL Server系統中,分離和附加數據庫的方法是很有用的。