資料庫必須打sp2更新檔
1).在主體的host裡面加入鏡像的ip,伺服器名
2).在鏡像的host裡面加入主體的ip,伺服器名
實作互通,ping 主機名和ip
主體ip 鏡像計算機名
鏡像ip 主體計算機名
3). sql 的啟動方式,必須已相同的使用者名和權限啟動。必須啟動5022端口
主庫和鏡像庫建立相同的系統賬号(賬号和密碼必須一樣),加入Administrators組,sqlserver服務和agent服務都用這個賬号啟動
主庫和鏡像庫都是這麼做,
(在我的電腦右鍵管理添加新使用者,隸屬于Administrator(添加,進階,立即查找,Administrators,确定),然後在在我的電腦右鍵-管理-服務應用程式--服務--
sql server 服務--右鍵屬性--登入--此賬戶--浏覽--進階--立即查找--添加自定義帳戶--确定,然後重新開機sql server 服務)
4)主庫一定是完整類型的資料庫(鏡像基于日志)
備份一定要用腳本
資料庫備份腳本(*注:一定要語句備份,生成單獨的資料庫以及日志備份*)
BACKUP database 庫名 to disk = 'e:\庫名.bak'
BACKUP log 庫名 to disk = 'e:\庫名log.bak'
還原手動還原
先還原資料庫NORECOVERY狀态,然後在還原事務日志, NORECOVERY狀态。
restore database 庫名
from disk = 'e:\庫名.bak' with NORECOVERY,replace,
move '庫名' to 'E:\data\MSSQL.1\MSSQL\DATA\庫名.mdf',
move '庫名_log' to 'E:\data\MSSQL.1\MSSQL\DATA\庫名_log.ldf';
restore log 庫名 from disk = 'e:\庫名log.bak' with NORECOVERY;
5、主體 端點建立
檢查是否存在端點:
SELECT * FROM sys.database_mirroring_endpoints
--删除鏡像端點:DROP ENDPOINT 庫名
Create endpoint 庫名
AS TCP (listener_port = 5022)
for database_mirroring (role = partner,encryption = supported);
go
alter endpoint 庫名 state = started
6、鏡像 端點建立
先7後8
7、鏡像啟動資料庫(注:執行7,8兩步驟前必須在主伺服器和鏡像伺服器中配置host主機名,如果host修改後仍無效,注意修改SQL啟動方式,有兩個:SQLSERVER以及SQLAGENT)
ALTER DATABASE 庫名
set partner = N'TCP://主體計算機名:5022'
出錯:預設情況下,資料庫鏡像是被禁用的
解決方法: 将資料庫打到SP2 更新檔
8、主體啟動資料庫
set partner = N'TCP://鏡像計算機名:5022'
9、事物安全性設定 (主體庫中設定)
ALTER DATABASE 庫名 set safety off
-- 3. 見證伺服器上執行的操作
-- a. 删除端點
DROP ENDPOINT em_local_account
GO