当前位置: 首页 > 服务器 > 数据库 > SQL Server > 如何实现Alwayson+replication的高可用性

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

2014-02-11 16:09 来源:风信网 作者:末信 人气指数: 我要评论

本文将介绍如何实现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

  1. 登陆Denali1对tranPubDB进行完全备份: backup database tranPubDB to disk='tranpubdb.bak' with init
  2. 右键点击AlwaysOn High Availability
  3. 选择TranPubDb,如果之前不进行备份,Status会显示‘Full backup is required’的提示。
  4. 指定Replicas:添加priamry 和secondary。
  5. 添加Listener。Listener将会用于后续的操作。
  6. 选择初始化数据的方式。
  7. 验证。

AlwaysOn的配置就结束了。

接下来配置事务复制

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

  1. 连接Denali2:
    1. 将Denali2配置为distributor .
    2. 在Denali2里指定Denali1和Denali3为发布服务器
  2. 连接Denali3:指定Denali2为分发服务器
  3. 连接Denali1:
    1. 指定Denali2为分发服务器.
    2. 创建发布
  4. 连接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

  1. 假设subscriber的Availability group发生了failover,此时distrubiton agent是无法工作的。
  2. 切换之后,Denali5成为新的primary。
  3. 连接到发布服务器Denali1,进入发布数据库tranPubDB,将发布设置为运行从备份初始化: EXEC sp_changepublication @publication = 'tranPublicationTest',
    @property = 'allow_initialize_from_backup', @value = 'true';
  4. 连接到新的Denali5. 进入订阅数据库:
    1. 得到当前订阅的LSN: SELECT transaction_timestamp, * FROM
      MSreplication_subscriptions;
    2. 清除订阅数据库的原数据:EXEC sp_subscription_cleanup @publisher = 'Denali1',
      @publisher_db = 'tranPubDB'
    3. 连接到发布服务器,将新的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;

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

大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点

小伙伴都在关注的热门词

芈月传 老司机玩法 萌乐网 黑科技 坐骑揭秘 三国令 铁血皇城 竞技场攻略 书剑恩仇录 披风玩法 装备强化攻略 野外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 哥们网 天书世界 奇珍商城 热血战歌 传奇宝藏抽奖 门徒 范伟打天下 打开方式 门徒获取玩法 三大萌宠简介 新手攻略 挂机系统简介 材料副本 大海战 鸵鸟 大黑 激情玩法 门徒战力提升 万世 强化属性 上古降魔 提升战力 装备攻略 九阴绝学 品质推荐 老干妈 激战来袭 大黑游戏 新服亮点 福利多多 画江山 资料片 玩家 九阴真经 江湖儿女 真实场景 现实 虚拟 随机副本 风色轨迹 听天由命 ppwan 神助攻 武林秘药 激活八大脉门 九天劫变 猎命格 天问 大型PVP 花千骨 激战更尽兴 网易mumu 手游玩家 安卓模拟器 安卓 单挑群战 武侠传说 女神 孙尚香专访 胸猛抱团 新游 占山为王 跨服城战 蜀山战纪 剑雨江湖 攻略 实时VR交互 七大女神代言 酷炫走江湖 世界四大杀手 玩家专访 三国经典 大制作 好玩网页游戏 盘点 宇宙霸主 境界玩法 莽荒纪 勇闯难关 镜像副本 荒漠霸主 装备精通 三大战役 鹌小彦奇谈