SqlServer双机热备技术实践笔记

原文:https://www.cnblogs.com/bluedoctor/p/5197586.html

SqlServer双机热备,大体上可以通过发布订阅,日志传送,数据库镜像来实现。

1,发布--订阅

是最早最简单的方案,但需要注意发布的时候,发布进程必须对快照目录有访问权限,这个问题可以从“查看快照代理状态”看到相关提示。

在查看代理日志的时候,有可能发现代理未运行,错误提示:进程无法在“WIN-XXX”上执行“sp_replcmds”。

此时应该执行下面的命令:

USE [发布的数据库]
EXEC sp_changedbowner 'sa';

这里要求在配置代理安全性的时候,日志读取器代理--安全设置--连接到发布服务器,使用 sa 账号登陆

2,日志传送

可以参考下面的资料:   SQL Server 双机热备1(based on log shipping)   http://blog.csdn.net/isoftk/article/details/1914175   采用日志传送的方式实现

3,数据库镜像

使用数据库镜像,可以做到数据库高可用,具体参考下面几篇文章:

1),windows_server2008+SQL_server2008双机热备实例   http://www.doc88.com/p-2052060058186.html   采用故障转移群集实现

2),数据库镜像概述   https://msdn.microsoft.com/zh-cn/library/ms189852(v=SQL.90).aspx   采用镜像实现备份

3),数据库镜像部署   http://www.doc88.com/p-690922020761.html   http://liulike.blog.51cto.com/1355103/339183

注意:如果不使用Windows域账号,在开始镜像的时候,绝大多数情况下都会出现 1418号错误,按照网上有关方法操作,也难以成功。

4,使用SqlServer 2012的 AlwaysOn 功能

AlwaysOn功能是最新的SQLSERVER高可用技术(HA),它实际上还是依赖于数据库镜像,详细请参考下面资料:   http://wenku.baidu.com/link?url=BX-Io-x-3n-SGmQELT14iTuJoW_6sv9VveGvUE4yu2cHvSdhmU8lGVTki2_F2xIGmO-Dt7QWYaWBS8sokscOEhDVkQienmhrLMEkzuAsQMK&qq-pf-to=pcqq.group

5,双机热备的数据访问

如果成功实现了双机热备,做到了HA,当主数据库服务器宕机后,有人会说,两个数据库,IP地址都不一样,怎么写连接代码呢?难道出现故障后要手动更改代码吗?

有2种方案:

1)用zookeeper监测,主机挂掉,自动会切换到备用机上。应用程序访问zookeeper提供的虚拟地址。

2)其实使用ADO.NET或者SQL Native Client能够自动连接到故障转移后的伙伴,连接字符串如下所示: ConnectionString="DataSource= A;Failover Partner=B;Initial Catalog=AdventureWorks;Integrated Security=true;" DataSource= A; 这样设置之后,客户端就可以自动切换数据库了

方案 2)请详细参考 http://www.cnblogs.com/lhws/p/3772110.html

posted @ 2018-03-29 10:37  Perfectionist  阅读(3191)  评论(0编辑  收藏  举报