工作组模式下SQL Server 2008 R2 数据库镜像
生產環境要上鏡像,自己又做了一遍測試,總結記錄一下。
目的:實現關鍵數據庫的熱備和故障自動切換。
環境:Win2008_R2_X64,SQLServer2008_R2_X64,WorkGroup網絡模式。
數據庫:people
主機:192.168.1.3
鏡像機:192.168.1.110
見證機:192.168.1.111
準備工作:
方法:SSMS選中實例?右鍵?Facets(方面)?在Facet列表選中"Surface area configuration"?設定"RemoteDacEnabled"為true。 ???
方法:開始?控制面板?Windows防火墻?高級設置?入站規則?新增規則 ???
主機備份:
USE master
GO
BACKUP DATABASE [people] TO DISK = N'D:\people.bak'
WITH FORMAT, INIT, NAME = N'people-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10;
GO
BACKUP LOG [people] TO DISK = N'D:\people.bak'
WITH NOFORMAT, NOINIT, NAME = N'people-Transaction Log Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10;
GO
鏡像恢復:
USE master
GO
RESTORE DATABASE [people] FROM DISK = N'F:\people.bak'
WITH FILE = 1,
NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE LOG [people] FROM DISK = N'F:\people.bak'
WITH FILE = 2, NORECOVERY, NOUNLOAD, STATS = 10
GO
實施,以下步驟按編號順序執行:
1. 主機上執行:USE master
GO
--創建證書,并備份
CREATE MASTER KEY ENCRYPTION BY PASSWORD=N'joe123';
CREATE CERTIFICATE Cert_JOEPC
WITH SUBJECT=N'JOEPC Certificate',START_DATE='20120405',EXPIRY_DATE='20990405';
BACKUP CERTIFICATE Cert_JOEPC TO FILE=N'C:\Cert_JOEPC.cer';
GO
--創建鏡像端口
CREATE ENDPOINT EP_JOEPC_Mirr
STATE=STARTED
AS TCP
(
LISTENER_PORT=5022,
LISTENER_IP=ALL
)
FOR DATABASE_MIRRORING
(
AUTHENTICATION=CERTIFICATE Cert_JOEPC,
ENCRYPTION=REQUIRED ALGORITHM AES,
ROLE=PARTNER
)
?
???????????????? GO
2. 鏡像機上執行:USE master
GO
--創建證書,并備份
CREATE MASTER KEY ENCRYPTION BY PASSWORD=N'joe123';
CREATE CERTIFICATE Cert_110
WITH SUBJECT=N'Certificate 110',START_DATE='20120405',EXPIRY_DATE='20990405';
BACKUP CERTIFICATE Cert_110 TO FILE=N'C:\Cert_110.cer';
GO
--創建鏡像端口
CREATE ENDPOINT EP_110_Mirr
STATE=STARTED
AS TCP
(
LISTENER_PORT=5022,
LISTENER_IP=ALL
)
FOR DATABASE_MIRRORING
(
AUTHENTICATION=CERTIFICATE Cert_110,
ENCRYPTION=REQUIRED ALGORITHM AES,
ROLE=PARTNER
)
GO
?
3. 見證機上執行:USE master
go
--創建證書,并備份
CREATE MASTER KEY ENCRYPTION BY PASSWORD =N'joe123';
CREATE CERTIFICATE Cert_111
WITH SUBJECT=N'Certificate 111';
BACKUP CERTIFICATE Cert_111 TO FILE=N'C:\Cert_111.cer';
GO
--創建鏡像端口
CREATE ENDPOINT EP_111_Mirr
AS TCP
(
LISTENER_PORT=5022,
LISTENER_IP=ALL
)
FOR DATABASE_MIRRORING
(
AUTHENTICATION=CERTIFICATE Cert_111,
ENCRYPTION=REQUIRED ALGORITHM AES,
ROLE=WITNESS
)
?
????????????GO
4. 把上面三個步驟中備份的證書COPY到每臺機,確保每臺機都有此三個證書。
5. 主機上執行:
???????????? USE master
?????? GO
--為鏡像機訪問主機的鏡像端口而創建登錄和用戶,并授予連接權限
CREATE LOGIN Login_For_110 WITH PASSWORD=N'joe123';
CREATE USER User_For_110 FOR LOGIN Login_For_110;
CREATE CERTIFICATE Cert_For_110 AUTHORIZATION User_For_110 FROM FILE=N'C:\Cert_110.cer';
GRANT CONNECT ON ENDPOINT::EP_JOEPC_Mirr TO Login_For_110;
GO
--為見證機訪問主機的鏡像端口而創建登錄和用戶,并授予連接權限
CREATE LOGIN Login_For_111 WITH PASSWORD=N'joe123';
CREATE USER User_For_111 FOR LOGIN Login_For_111;
CREATE CERTIFICATE Cert_For_111 AUTHORIZATION User_For_111 FROM FILE=N'C:\Cert_111.cer';
GRANT CONNECT ON ENDPOINT::EP_JOEPC_Mirr TO Login_For_111;
?????? GO
6. 鏡像機上執行:USE master
GO
--為主機訪問鏡像機的鏡像端口而創建登錄和用戶,并授予連接權限
CREATE LOGIN Login_For_JOEPC WITH PASSWORD=N'joe123';
CREATE USER User_For_JOEPC FOR LOGIN Login_For_JOEPC;
CREATE CERTIFICATE Cert_For_JOEPC AUTHORIZATION User_For_JOEPC
FROM FILE =N'c:\Cert_JOEPC.cer';
GRANT CONNECT ON ENDPOINT::EP_110_Mirr TO Login_For_JOEPC;
GO
--為見證機訪問鏡像機的鏡像端口而創建登錄和用戶,并授予連接權限
CREATE LOGIN Login_For_111 WITH PASSWORD=N'joe123';
CREATE USER User_For_111 FOR LOGIN Login_For_111;
CREATE CERTIFICATE Cert_For_111 AUTHORIZATION User_For_111
FROM FILE =N'c:\Cert_111.cer';
GRANT CONNECT ON ENDPOINT::EP_110_Mirr TO Login_For_111;
GO
?
7. 見證機上執行:USE master
GO
--為主機訪問見證機的鏡像端口而創建登錄和用戶,并授予連接權限
CREATE LOGIN Login_For_JOEPC WITH PASSWORD=N'joe123';
CREATE USER User_For_JOEPC FOR LOGIN Login_For_JOEPC;
CREATE CERTIFICATE Cert_For_JOEPC AUTHORIZATION User_For_JOEPC FROM FILE=N'c:\Cert_JOEPC.cer';
GRANT CONNECT ON ENDPOINT::EP_111_Mirr TO Login_For_JOEPC;
GO
--為鏡像機訪問見證機的鏡像端口而創建登錄和用戶,并授予連接權限
CREATE LOGIN Login_For_110 WITH PASSWORD=N'joe123';
CREATE USER User_For_110 FOR LOGIN Login_For_110;
CREATE CERTIFICATE Cert_For_110 AUTHORIZATION User_For_JOEPC FROM FILE=N'c:\Cert_110.cer';
GRANT CONNECT ON ENDPOINT::EP_111_Mirr TO Login_For_110;
GO
8. 鏡像機上執行:??????ALTER DATABASE people SET PARTNER =N'TCP://192.168.1.3:5022';
9. 主機上執行:ALTER DATABASE [people] SET PARTNER=N'TCP://192.168.1.110:5022';
ALTER DATABASE [people] SET WITNESS=N'TCP://192.168.1.111:5022';
10. 完成以上步驟,正常情況,people數據庫鏡像就建立起來了。將會看到:主機:
鏡像機:
然后在主機上簡單地查詢一下見證機的狀態:我這里的見證機因為后來重新用GUI配置過,所以顯示為計算機名。
SELECT 'people' AS [DB_Name],mirroring_role_desc,
mirroring_partner_name,mirroring_witness_name,mirroring_witness_state_desc
FROM sys.database_mirroring
WHERE database_id=DB_ID(N'people')
總結:
?
轉載于:https://www.cnblogs.com/Joe-T/archive/2012/04/06/2434350.html
總結
以上是生活随笔為你收集整理的工作组模式下SQL Server 2008 R2 数据库镜像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 1874 畅通工程续
- 下一篇: windows mobile+webse