序
以下的資料庫鏡像架構大致上就是
應用程式==data==>主體伺服器==data==>鏡像伺服器
環境
兩台一樣環境的伺服器
- Windows Server 2003 R2
- Microsoft SQL Server 2008 R2
- Microsoft SQL Server Management Studio 10.0.1600.22
SQL Server服務啟動帳號設定
- 在windows服務(services.msc) 列表中,找到SQL Server,右鍵選內容或雙擊
- 後選擇登入頁,在此帳戶中這裡配置登錄用戶和密碼,這個地方建議兩台伺服器都配置一組一樣的帳號,並將此帳戶加到SQL Server的管理帳戶,後續的鏡像會用這組帳號繼續設定
- SQL Server Agent 啟動帳號也一樣設置
主體伺服器備份
- 在主體伺服器用windows帳戶登入Management Studio工具,這個動作是為了後續使用語法產生SQL檔時才不會有權限錯誤
- 產生資料庫建立語法
以物件總管詳細資料選取需要鏡像的資料庫,並產生Create語法(選檔案即可產生.sql檔)
- 匯出每個資料庫的備份檔
backup database [DataBaseName1] to disk='D:\dbbackup\[DataBaseName1].bak' with init
GO
backup database [DataBaseName2] to disk='D:\dbbackup\[DataBaseName2].bak' with init
GO - 匯出每個資料庫的記錄檔
BACKUP LOG [DataBaseName1] TO DISK = 'D:\dbbackup\[DataBaseName1].log'
GO
BACKUP LOG [DataBaseName2] TO DISK = 'D:\dbbackup\[DataBaseName2].log'
GO
還原資料到鏡像伺服器
- 將上一步驟產生的檔案(含*.sql、*.bak、*.log)所在dbbackup資料夾複製到鏡像資料庫
- 在鏡像伺服器用windows帳戶登入Management Studio工具
- 建立資料庫:以Management Studio開啟建立資料庫用的sql檔並執行,即可產生與主體伺服器相同名稱的資料庫
- 還原資料
restore database [DataBaseName1] from disk='D:\backupz\[DataBaseName1].bak' with replace,norecovery
GO
restore database [DataBaseName2] from disk='D:\backupz\[DataBaseName2].bak' with replace,norecovery
GO - 還原記錄檔
RESTORE LOG [DataBaseName1] FROM DISK = 'D:\backupz\[DataBaseName1].log' WITH FILE=1, NORECOVERY
GO
RESTORE LOG [DataBaseName2] FROM DISK = 'D:\backupz\[DataBaseName2].log' WITH FILE=1, NORECOVERY
GO - 成功後會看到建立起來的資料庫名稱後面會出現(正在還原...)的狀態
於主體伺服器啟動鏡像服務
-
在主體伺服器的資料庫上點右鍵,選屬性,並選擇[鏡像]頁籤。接著點選[設定安全性]鈕就會開啟[設定資料庫鏡像安全性精靈]
-
於見證伺服器選擇頁選擇否,不使用見證伺服器
- 第一次使用鏡像設定會選擇本機的鏡像服務Port與鏡像端點名稱,此處採用預設值即可
- 設定鏡像伺服器的連線資訊
- 服務帳戶不用設定
- 完成後就會進行設定,第一次設定時會自動產生服務端點,這時就會啟動服務的Port
- 完成後會詢問是否要啟動鏡像,選擇不要啟動鏡像。這時如果直接啟動如果連線網域名稱錯誤就會失敗(而且還不給設定…)
- 接著就可以在伺服器網路位址確認鏡像伺服器的連線資訊
需注意的是他有個奇怪的驗證,就是預設他會把鏡像伺服器的電腦名稱帶到鏡像的位址,但他的預設格式是[電腦名稱.網域名稱],沒有網域名稱時就必須在電腦名稱後面加一個句點.,否則你就會看到下面的錯誤
- 啟動成功後如下圖
- 重覆此上述動作把所有資料庫的鏡像都啟動
沒有留言:
張貼留言