SQL 2008 镜像配置




SQL 2008 配置有证书镜像的步聚共有四步:




1.      配置出站连接: 创建主秘钥、证书和端点,备份证书并拷贝到另一台服务器




2.      配置入站连接: 分配登陆用户、赋予登陆用户 connect 本机端点的权限




3.      创建镜像数据: 备主数据库,还原镜像数据库




4.      配置镜像伙伴关系: 顺序:镜像 ---- 主体




5.      测试镜像: 切换镜像




测试环境:




             主数据库服务器:     192.168.10.91




             镜像数据库服务器:   192.168.10.95







以下是测试的详细脚本:




============================================================================




一.配置出站: 配置完证书后,分别互存到各数据库服务器的对应路径,注意端口



============================================================================




配置 HOST_91 出站




 



 


1. USE master;  
2. CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mo%123';  
3. GO  
4. CREATE
5. WITH SUBJECT = 'HOST_91 certificate for database mirroring';  
6. GO  
7. CREATE
8.    STATE = STARTED  
9. AS
10.       LISTENER_PORT=7024  
11. ALL
12.    )   
13. FOR
14.       AUTHENTICATION = CERTIFICATE HOST_91_cert  
15.       , ENCRYPTION = REQUIRED ALGORITHM AES  
16. ALL
17.    );  
18. GO  
19. BACKUP CERTIFICATE HOST_91_cert TO FILE = 'C:\HOST_91_cert.cer';  
20. GO



配置 HOST_95 出站




 



 



1. USE master;  
2.    
3. CREATE MASTER KEY ENCRYPTION BY PASSWORD
4. GO  
5.    
6. CREATE
7. WITH SUBJECT = 'HOST_95 certificate for database mirroring';  
8. GO  
9.    
10. CREATE
11.    STATE = STARTED  
12. AS
13.       LISTENER_PORT=7024  
14. ALL
15.    )   
16. FOR
17.       AUTHENTICATION = CERTIFICATE HOST_95_cert  
18.       , ENCRYPTION = REQUIRED ALGORITHM AES  
19. ALL
20.    );  
21. GO  
22.    
23. BACKUP CERTIFICATE HOST_95_cert TO FILE = 'C:\HOST_95_cert.cer';  
24. GO

 



=============================================================================




二.入站镜像连接配置服务器: 注意证书的路径,登录账户的命名




=============================================================================







HOST_91 的入站配置:




 



 


1. USE master;  
2. CREATE
3. WITH PASSWORD = 'mo%123';                   
4. GO  
5. USE master;  
6. CREATE USER HOST_95_USER FOR
7. GO  
8. CREATE
9. AUTHORIZATION
10. FROM FILE = 'C:\HOST_95_cert.cer';  
11. GO  
12. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO
13. GO



==============================================================




HOST_95 的入站配置:




 



1. USE master;  
2. CREATE
3. WITH PASSWORD = 'mo%123';  
4. GO  
5. USE master;  
6. CREATE USER HOST_91_USER FOR
7. GO  
8. CREATE
9. AUTHORIZATION
10. FROM FILE = 'C:\HOST_91_cert.cer';  
11. GO  
12. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO
13. GO

====================================================================




三.配置数据库: 备份包括数据库和日志




=====================================================================




备份主数据库 HOST_91




1. USE master;  
2. GO  
3. ALTER DATABASE
4. SET RECOVERY FULL;  
5. GO  
6. BACKUP DATABASE
7. TO DISK = 'e:\livechat.bak'
8. WITH
9. GO  
10. BACKUP LOG  livechat  
11. TO DISK = 'e:\livechat_log.bak'
12. GO  


还原镜像数据库 HOST_95



 


1. RESTORE DATABASE
2. FROM DISK = 'C:\livechat.bak'
3. WITH
4. GO  
5. RESTORE LOG  livechat  
6. FROM DISK = 'C:\livechat_log.bak'
7. WITH
8. GO

 

这里经常会出问题,经常性的被恢复的服务器上是没有数据库的,通过恢复必须使用强制覆盖(REPLACE)形式的恢复,可是镜像要求的是NORECOVERY,因此覆盖恢复之后必须先备份下日志,BACKUP LOG livechat TO DISK = 'e:\livechat _log_Again.bak'    WITH NORECOVERY
,然后执行上面的两个Restore,数据文件和日志都必须恢复。然后才能执行SET PARTNER镜像。

===========================================================================




四.配置镜像: 顺序:镜像 ---- 主体



===========================================================================




先执行 HOST_95 服务器:




1. ALTER DATABASE
2. SET PARTNER = 'TCP://192.168.10.91:7024';  
3. GO  
再执行 
   HO

ST_91 服务器:




1. ALTER DATABASE
2. SET PARTNER = 'TCP://192.168.10.95:7024';  
3. GO



====================================================================



五.测试镜像: 在主数据库上执行以下代码可以强制将镜像数据库启用为主数据库,可以查看数据同步的完整性。




=============================================================================




主数据库HOST_91 执行 :




1. USE master;   
2. ALTER DATABASE
3. SET
4. GO



 



    总结:以上是在没有验证服务器的情况下,两台数据库做的镜像,经测试在强制切换后数据完整,符合镜像数据的要求。




 

删除数据库镜像



  1. 在数据库镜像会话期间,连接到主体服务器实例,然后在对象资源管理器中,单击服务器名称以展开服务器树。
  2. 展开“数据库”并选择数据库。
  3. 右键单击数据库,选择“任务”,再单击“镜像”。这样便可打开“数据库属性”对话框的“镜像”页。
  4. “选择页”窗格中,单击“镜像”
  5. 若要删除镜像,请单击“删除镜像”。此时,将显示一个提示,要求您进行确认。如果单击“是”,会话将停止,并从数据库中删除镜像。
    有关删除镜像的影响的详细信息,请参阅删除数据库镜像
  6. 或者,可以恢复以前的镜像数据库。在作为镜像服务器的服务器实例上,使用以下 Transact-SQL 语句:

    other 



    RESTORE DATABASE <database_name> WITH RECOVERY;



重要提示

如果恢复此数据库,则两个同名的不同数据库处于联机状态。因此,必须确保客户端仅可访问其中一个数据库,通常为最新的主体数据库。



 


转载于:https://blog.51cto.com/cnming/558734