使用證書配置的鏡像基本安裝微軟次序做就可以了
http://msdn.microsoft.com/zh-cn/library/ms191140.aspx
備份還原首先要轉換成完全備份模式沒什么好多說的
1 USE master;2 GO3 ALTER DATABASE 4 SET RECOVERY FULL;5 GO
直接備份數據庫不能直接寫C盤,目錄自己建
1 BACKUP DATABASE [AdventureWorks2012] 2 TO DISK = 'C:/HOSTA/AdventureWorks2012.bak' 3 WITH FORMAT4 GO
同樣還原也需要指定,注意一定要使用WITH NORECOVERY
1 USE [master]2 RESTORE DATABASE [AdventureWorks2012] 3 FROM DISK = N'C:/HOSTB/AdventureWorks2012.bak' 4 WITH NORECOVERY, 5 MOVE N'AdventureWorks2012_Data' TO N'C:/PRogram Files/Microsoft SQL Server/MSSQL11.SQL2/MSSQL/DATA/AdventureWorks2012_Data.mdf', 6 MOVE N'AdventureWorks2012_Log' TO N'C:/Program Files/Microsoft SQL Server/MSSQL11.SQL2/MSSQL/DATA/AdventureWorks2012_log.ldf'7 GO
證書創建和對倒部分其實就一步步做就可以了,注意端口號,路徑用剛才的路徑就成。密碼偷懶也可以不改,原則上機器用的密碼不要設置過期日期
HOSTA上
1 USE master; 2 CREATE MASTER KEY ENCRYPTION BY PASSWord = '<1_Strong_Password!>'; 3 GO 4 USE master; 5 CREATE CERTIFICATE HOST_A_cert 6 WITH SUBJECT = 'HOST_A certificate'; 7 GO 8 CREATE ENDPOINT Endpoint_Mirroring 9 STATE = STARTED10 AS TCP (11 LISTENER_PORT=702412 , LISTENER_ip = ALL13 ) 14 FOR DATABASE_MIRRORING ( 15 AUTHENTICATION = CERTIFICATE HOST_A_cert16 , ENCRYPTION = REQUIRED ALGORITHM AES17 , ROLE = ALL18 );19 GO20 BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:/HOSTA/HOST_A_cert.cer';21 GO
HOSTB上
1 USE master; 2 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>'; 3 GO 4 CREATE CERTIFICATE HOST_B_cert 5 WITH SUBJECT = 'HOST_B certificate for database mirroring'; 6 GO 7 CREATE ENDPOINT Endpoint_Mirroring 8 STATE = STARTED 9 AS TCP (10 LISTENER_PORT=702411 , LISTENER_IP = ALL12 ) 13 FOR DATABASE_MIRRORING ( 14 AUTHENTICATION = CERTIFICATE HOST_B_cert15 , ENCRYPTION = REQUIRED ALGORITHM AES16 , ROLE = ALL17 );18 GO19 BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:/HOSTB/HOST_B_cert.cer';20 GO
HOSTA上的證書copy到HOSTB上,HOSTB上的證書copy到HOSTA上,隨后創建用戶導入證書
HOSTA
1 USE master; 2 CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#'; 3 GO 4 CREATE USER HOST_B_user FOR LOGIN HOST_B_login; 5 GO 6 CREATE CERTIFICATE HOST_B_cert 7 AUTHORIZATION HOST_B_user 8 FROM FILE = 'C:/HOSTA/HOST_B_cert.cer' 9 GO10 GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];11 GO
HOSTB
1 USE master; 2 CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2'; 3 GO 4 CREATE USER 5 FOR LOGIN HOST_A_login; 6 GO 7 CREATE CERTIFICATE HOST_A_cert 8 AUTHORIZATION HOST_A_user 9 FROM FILE = 'C:/HOSTB/HOST_A_cert.cer'10 GO11 GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];12 GO
在HOSTB上首先運行, 可以使用IP地址或者主機名
1 --At HOST_B, set server instance on HOST_A as partner (principal server):2 ALTER DATABASE [AdventureWorks2012]3 SET PARTNER = 'TCP://192.168.100.101:7024';4 GO
隨后在HOSTA上運行
1 --At HOST_A, set server instance on HOST_B as partner (mirror server).2 ALTER DATABASE [AdventureWorks2012]3 SET PARTNER = 'TCP://192.168.100.102:7024';4 GO
主庫上應該顯示為,主體已同步,備庫上顯示為正在恢復。
強制關閉HOSTA,在HOSTB使用以下語句進行切換,需要等待幾秒。數據庫顯示為主體已斷開連接
1 USE master;2 alter database [AdventureWorks2012] set partner FORCE_SERVICE_ALLOW_DATA_LOSS;
http://msdn.microsoft.com/zh-cn/library/bb522476.aspx
此時恢復HOSTA,數據庫狀態為鏡像,掛起/正在還原。。。在HOSTB中操作
1 USE master;2 alter database [AdventureWorks2012] set partner resume;
這樣HOSTB 就成為了主體,假如要將HOSTA在設置為主體,在HOSTB上的運行一下語句,切換為HOSTA為主題
1 USE master;2 alter database [AdventureWorks2012] set partner resume;
Reference
http://msdn.microsoft.com/zh-cn/library/ms189852(v=sql.110).aspx
http://msdn.microsoft.com/zh-cn/library/ms189053.aspx
http://msdn.microsoft.com/zh-cn/library/ms189921.aspx
http://www.mssqltips.com/sqlservertip/2464/configure-sql-server-database-mirroring-using-ssms/
新聞熱點
疑難解答