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
总结:以上是在没有验证服务器的情况下,两台数据库做的镜像,经测试在强制切换后数据完整,符合镜像数据的要求。
删除数据库镜像
- 在数据库镜像会话期间,连接到主体服务器实例,然后在对象资源管理器中,单击服务器名称以展开服务器树。
- 展开“数据库”并选择数据库。
- 右键单击数据库,选择“任务”,再单击“镜像”。这样便可打开“数据库属性”对话框的“镜像”页。
- 在“选择页”窗格中,单击“镜像”。
- 若要删除镜像,请单击“删除镜像”。此时,将显示一个提示,要求您进行确认。如果单击“是”,会话将停止,并从数据库中删除镜像。
有关删除镜像的影响的详细信息,请参阅删除数据库镜像。 - 或者,可以恢复以前的镜像数据库。在作为镜像服务器的服务器实例上,使用以下 Transact-SQL 语句:
other
RESTORE DATABASE <database_name> WITH RECOVERY;
重要提示 |
如果恢复此数据库,则两个同名的不同数据库处于联机状态。因此,必须确保客户端仅可访问其中一个数据库,通常为最新的主体数据库。 |
转载于:https://blog.51cto.com/cnming/558734