如何实现Alwayson+replication的高可用性

本文将介绍如何实现Alwayson + replication ,通过AlwaysOn实现Publication database的高可用性,使Publication database在failover 之后事务复制可以正常运行。

拓扑如下:

Publisher primary

Denali1

Publication database

tranPubDB

Publication ">name

tranPublicationTest

Publisher secondary

Denali3

Distributor

Denali2

AlwaysOn Availability Group name

Liwei

Listener

liweion

首先配置AlwaysOn Availability Group

登陆Denali1对tranPubDB进行完全备份: backup database tranPubDB to disk='tranpubdb.bak' with init 右键点击AlwaysOn High Availability

选择TranPubDb,如果之前不进行备份,
Status会显示‘Full backup is required’的提示。 指定Replicas:添加priamry 和secondary。

添加Listener。Listener将会用于后续的操作。

选择初始化数据的方式。

验证。

AlwaysOn的配置就结束了。

接下来配置事务复制

(1,2,3步的配置和普通的事务复制完全一致,详细步骤请您参考http://www.sql-server-performance.com/2010/transactional-replication-2008-r2/)

连接Denali2: 将Denali2配置为distributor . 在Denali2里指定Denali1和Denali3为发布服务器 连接Denali3:指定Denali2为分发服务器 连接Denali1: 指定Denali2为分发服务器. 创建发布 连接Denali2, 在分发数据库下执行下面的语句. 执行下面的语句之后,logreader就可以通过Listener连接到正在工作的primary server了。请注意,这一步是实现Publication database高可用性的关键步骤。

EXEC sys.sp_redirect_publisher

@original_publisher = 'Denali1',

@publisher_db = 'tranPubDB',

@redirected_publisher =
'liweion';----将之前创建的listener带入到这个参数

配置步骤就全部完成了,之后您可以任意添加订阅,当failover发生之后,事务复制也可以正常工作。

如何配制Subscription database +AlwaysON

(需要说明的是:当subscription database 的availability group发生failover后,replication是无法自动工作的,我们需要一些手工操作)

当前拓扑如下

Publisher

Denali1

Publication database

tranPubDB

Publication name

tranPublicationTest

Distributor

Denali2

Subscriber  primary

Denali4

Subscriber  secondary

Denali5

Subscription database

subDB

假设subscriber的Availability group发生了failover,此时distrubiton
agent是无法工作的。 切换之后,Denali5成为
新的primary。 连接到发布服务器Denali1,进入发布数据库tranPubDB,将发布设置为运行从备份初始化: EXEC sp_changepublication @publication = 'tranPublicationTest',

@property = 'allow_
initialize_from_backup', @value = 'true'; 连接到新的Denali5. 进入订阅数据库: 得到当前订阅的LSN: SELECT transaction_timestamp, * FROM

MSreplication_subscriptions; 清除订阅数据库的原数据:EXEC sp_subscription_cleanup @publisher = 'Denali1',

@publisher_db = 'tranPubDB' 连接到发布服务器,将新的primary server的数据库指定为订阅:

EXEC sp_addsubscription -- past the LSN before executing

@publication = 'tranPublicationTest',

@subscriber = 'Denali5',

@destination_db = 'subDB',

@subscription_Type = 'Push',

@sync_Type = 'initialize from LSN',

@subscriptionlsn = 0x00000023000000E60003000000000000, ----这个值就是我们在2
a)步骤得到的transaction_timestamp

@article = 'all',

@update_mode = 'read only',

@subscriber_type = 0;

执行完这步之后,事务复制就可以正常工作了。

时间: 2024-09-18 19:29:09

如何实现Alwayson+replication的高可用性的相关文章

MySQL5.7之Group Replication

英文原文:http://mysqlhighavailability.com/mysql-group-replication-hello-world/ 对英文熟悉的可以去看看原文,会更准确一些,渣翻译没有采用直译,所以带入了部分个人经验和理解,可能会有不当甚至是错误的地方,欢迎指出: 接受转载,但是请注明英文原文链接和本文链接: -----------------------------------------------------------------------------------正文

IBM公司已在台湾发布了新版Informix数据库

IBM旗下两大数据库软件产品线之一的Informix,现在推出了原开发代号为Cheetah的新版本Informix Dynamic Server(IDS) 11.IBM表示,新版本再度提升了Informix向来强调的高可用性特点,在既有的企业备份(Enterprise Replication)与高可用性备援(High Availability Data Replication, HDR)外,新增可全球部署的多据点备援服务器功能,让远程与近端的多个数据库服务器,能随时由任一节点进行容错转移(fai

亲密接触Redis-第一天

引言 nosql,大规模分布式缓存遍天下,Internet的时代在中国由其走得前沿,这一切归功于我国特色的电商.因此nosql.大数据技术在中国应用的比国外还要前沿.从这一章开始我们将开始进入到真正的SOA.PAAS.SAAS.互联网的领域,因此每一篇我都会加入一小段业务的基础知识,让大家在学习技术的同时也可以了解一些业务,这边的业务不是指的business logic不是让大家去做业务人员,而是为大家带来IDEA,"没有做不到只有想不到",阿里支付宝为什么发了...不是技术,而是它的

微软发布一些重大的更新到Windows Azure

今天上午,我们发布了一些重大的更新到Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure.这些新功能包括: SQL Server支持:Windows Azure虚拟机支持一般可用性(包括高可用性和灾难恢复) 通知中心:Windows Azure通知中心的一般可用性版本(Windows 8.Windows Phone.iOS和Android的广播推送) AutoScale:基于计划的AutoScale规则和更 丰富

SQL Server 2012 AlwaysOn高可用性组部署总结及截图下载 - 曾垂鑫的技术专栏 - 51CTO技术博客

本次本人做的测试截图已经上传到51CTO下载中心,如果有需要查看原图的,可以访问下面的链接下载: 51CTO文档下载地址 我觉得以后产品的测试部署就直接给大家上截图了,需要注意的我会在博客里面说出来,就不搞成系列了,没啥意思.截图中包含的内容如下. ------------------------------------------分割线----------------------------------------------- 本次部署所需要的虚拟机数量和IP地址规划如下表. -------

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)_win服务器

两年前的<SQL Server 2008 R2数据库镜像部署>,今天"再续前缘"-- 微软新一代数据库产品SQL Server 2012已经面世一段时间了,不管从功能上讲还是性能上的体现,较之其早期产品都有了很大提升.特别是其引入高可用性组(AlwaysOn Group, AG)这一概念和功能,大大增强和提高了SQL Server的可用性,在之前的镜像数据库的基础上有了质的变化.  SQL Server 2012高可用性组在实现过程中较之早起的SQL Server故障转移群

阿里云上轻松实现SQL Server AlwaysOn高可用性

使用MS SQL Server的用户,如何在阿里云上实现改造,成为云上Alwayson的高可用架构呢?还有早期已经在线下实现Alwayson高可用性架构,那么在不想改造,并且云上暂时不提供alwayson高可用性架构的服务和产品的情况下,那如何平迁到云上呢? 2017年12月19日,火爆京城运维圈的 Tech Insight 的 <企业级数据库最佳实战> 论坛上,来自阿里云服务团队的解决方案架构师正博,为大家分享了一个最佳实践的细节. 最佳实践的架构如下图: 该案例为某地产公司云上运行架构.另

浅谈SQL Server中的高可用性(1) 高可用性概览

自从SQL Server 2005以来,微软已经提供了多种高可用性技术来减少宕机时间和增加对业务数据的保护,而随着SQL Server 2008,SQL Server 2008 R2,SQL Server 2012的不断发布,SQL Server中已经存在了满足不同场景的多种高可用性技术. 在文章开始之前,我首先简单概述一下以什么来决定使用哪一种高可用性技术. 依靠什么来决定使用哪一种高可用性技术? 很多企业都需要他们的全部或部分数据高可用,比如说在线购物网站,在线商品数据库必7*24小时在线,

Oracle Stream Replication技术简介

Stream 是Oracle 的消息队列(也叫Oracle Advanced Queue)技术的一种扩展应用. Oracle 的消息队列是通过发布/订阅的方式来解决事件管理.流复制(Stream replication)只是基于它的一个数据共享技术,也可以被用作一个可灵活定制的高可用性方案. 它可以实现两个数据库之间数据库级,schema级,Table级的数据同步,并且这种同步可以是双向的. Oracle Stream也是通过数据冗余来提高可用性,这一点和Data Guard 类型. Oracl