데이터 베이스 MySQL 튜토리얼 SQL Server中的高可用性(3)----复制

SQL Server中的高可用性(3)----复制

Jun 07, 2016 pm 05:39 PM
server 복사

在本系列文章的前两篇对高可用性的意义和单实例下的高可用性做了阐述。但是当随着数据量的增长,以及对RTO和RPO要求的严格,单实例已经无法满足HA/DR方面的要求,因此需要做多实例的高可用性。本文着重对SQL Server的复制进行阐述。 复制? 复制起初并不是用

    在本系列文章的前两篇对高可用性的意义和单实例下的高可用性做了阐述。但是当随着数据量的增长,以及对RTO和RPO要求的严格,单实例已经无法满足HA/DR方面的要求,因此需要做多实例的高可用性。本文着重对SQL Server的复制进行阐述。

 

复制?

    复制起初并不是用于作为高可用性功能而设计的,实际上复制的概念就像其名称一样,用于复制数据。比如将某个库中的数据“复制”到另一个库,到另一个实例中,由OLTP复制到OLAP环境中,由某数据中心复制到位于地球另一侧的另外一个数据中心中。因此,由于复制所提供的功能,复制可用被用来剥离负载,用于做数据冗余,直至把复制用于作为高可用性拓扑中的一个环节。(切记,复制的功能可以被用做高可用性,而不是复制是高可用性功能。)

    不同于其它SQL Server可以被用作高可用性的特性,复制可以做的非常灵活。您可以复制某些列,过滤某些行,复制表中的部分数据。复制是基于数据库对象的,而不像日志传送、镜像、集群、AlawysOn等需要以库和实例作为基本对象,此外更新的订阅还允许订阅端合并数据,没有任何一种其它的高可用性技术能做到这一点。

 

复制的基本概念

    关于复制的基本概念,我在之前已经有一篇文章进行了阐述:。但这里我还是想再次对基本的概念进行阐述。

    复制的模型参考的杂志发布的模型,由出版社发型杂志,由经销商分发杂志,由订户来消费这些杂志。这个概念看似简单,但可以归结出复制下面一些特点:

 

复制的几种类型

    下面来简单介绍几种复制类型在高可用性中可以作为的角色。

 

快照发布

    快照复制本质上就是通过快照目录(共享目录)共享一堆文件(因为需要多个订阅端共享),在早起版本,快照复制仅仅是一个文件,而相对更新的版本,复制会将文件分为多个。快照就是文章某一时间点发布的Article

    是一种创建报表数据库的好方式。

    对于快照复制的简单概念,如图1所示。

   

snapshotpublish

图1.快照发布的概念

 

 

事务复制

    在初始化订阅后(可通过快照初始化,或者由备份初始化,请参阅:),由发布服务器上将需要被复制的部分的日志标记为复制.由分发服务器的log reader agent来读取发布服务器上这部分日志,当分发服务器将所有的日志传递给订阅服务器,则发布服务器上的日志就可以清空了

    通过原理不难看出,每个数据库只能有一个log reader agent,因此数据库中发布内容过多,或者重复发布,则会产生严重的性能问题。此外log reader agent需要读取所有的日志,不会有任何奇迹发生来跳过那些没有被标记为复制的日志.因此当对复制的文章进行了筛选的话,会影响性能(这里可不像索引,设置了筛选条件能够提高查询速度)。

    性能因素取决于很多地方,发布服务器的速度,更改频率,分发服务器的速度等等。

    通常可以用于做实时报表,虽然会有些许延迟,但效果非常好。

 

合并复制

    合并复制可以实现数据的多处更新,当更新冲突时,可以设置规则,比如北京和上海的服务器,我可以设置北京的服务器永远赢。

 

Peer-To-Peer复制

    P2P复制是基于事务日志之上的一种复制类型,他允许每个节点都成为对等的实体。因此可以非常好的用于HA和负载均衡,即使某一个节点宕机,完全不会影响其它节点的可用性。

    自SQL Server 2012以来,PeerToPeer复制已经成为了一种单独的发布类型。

    一个Peer-To-Peer的简单例子如图2所示。

   

PeerToPeer

图2.对等复制

 

    从图2中可以看出,节点A、B、C、D分别对同一份数据保存相同的副本,并且每个节点上都可以进行读写操作。我们可以假设每个节点都是在不同的地理位置,因此假如说节点A宕机,,则可以直接将应用程序连接字符串重定向到其它节点,实现了高可用性。从图2中还可以看出,对于任一节点我们都可以进行读写操作,因此实现了负载均衡的效果。此外,NodeB进一步将数据发布到只读服务器上,进一步实现了读写分离。
   因此,这种方式具有极大的灵活性,和其它高可用性技术结合可以实现多种数据库拓扑。

   在SQL Server 2008之后的版本,当遇见数据更新冲突时,可以通过冲突查看器进行查看并解决冲突,还可以在数据更新冲突出现后,进行报警。

 

为什么选用复制

    每一种高可用性技术都有其自身的优点和缺陷,如果某种技术相较与其它技术只有有点,没有缺陷,那”其它技术“一定会被淘汰。

    相比较其它高可用性技术而言,复制有如下好处:

    但同样,复制也有其自身局限性,比如:

 

    但不得不说,复制的确是非常的强大,套用京东“首席DB Replicationor(自造词)”陈璟的话说就是:“想复制什么复制什么,想复制多远复制多远,想怎么复制就怎么复制,想复制的多复杂就多复杂”,同时结合其它技术可以实现很多有意思的拓扑,比如图3(同样来自陈璟同学)。

   

ExampleOfReplicationHA

    图3.利用复制分发写数据,同时实现高可用性

 

    通过图3这种方式,分发了写压力,同时相同的读库实现了负载均衡以及高可用性,当某个读库宕机后,会有足够的时间进行修复。

 

小结

    本篇文章对复制在高可用架构的角色做了一个概述。复制作为高可用性中最为灵活的技术,与其它技术结合,可以实现很多有意思的拓扑。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

QQ뮤직 가사 복사하기 가사 복사하기 QQ뮤직 가사 복사하기 가사 복사하기 Mar 12, 2024 pm 08:22 PM

우리 사용자는 이 플랫폼을 사용할 때 일부 기능의 다양성을 이해할 수 있어야 합니다. 우리는 일부 노래의 가사가 매우 잘 쓰여져 있다는 것을 알고 있습니다. 때로는 여러 번 들어도 그 의미가 매우 심오하다고 느낄 때가 있기 때문에 그 의미를 이해하고 싶으면 직접 복사해서 카피라이팅으로 사용하고 싶을 때도 있습니다. 가사 복사하는 방법만 배우면 됩니다. 이러한 작업은 모두가 익숙할 것이라고 생각하지만 실제로 휴대폰에서 작업하는 것은 다소 어렵습니다. 따라서 오늘 편집자는 더 나은 이해를 돕기 위해. 위의 운영 경험 중 일부에 대한 좋은 설명이 있습니다. 마음에 드시면 꼭 오셔서 편집자와 함께 살펴보세요.​

Windows 서버 백업을 설치, 제거 및 재설정하는 방법 Windows 서버 백업을 설치, 제거 및 재설정하는 방법 Mar 06, 2024 am 10:37 AM

WindowsServerBackup은 WindowsServer 운영 체제와 함께 제공되는 기능으로, 사용자가 중요한 데이터 및 시스템 구성을 보호하고 중소기업 및 대기업 수준의 기업에 완벽한 백업 및 복구 솔루션을 제공하도록 설계되었습니다. Server2022 이상을 실행하는 사용자만 이 기능을 사용할 수 있습니다. 이 문서에서는 WindowsServerBackup을 설치, 제거 또는 재설정하는 방법을 설명합니다. Windows Server 백업을 재설정하는 방법 서버 백업에 문제가 있거나 백업에 너무 오랜 시간이 걸리거나 저장된 파일에 액세스할 수 없는 경우 Windows Server 백업 설정을 재설정하는 것을 고려할 수 있습니다. Windows를 재설정하려면

복사 단축키는 무엇인가요? 복사 단축키는 무엇인가요? Mar 10, 2023 pm 02:00 PM

복사 단축키는 "Ctrl+c"이고 해당 붙여넣기 키는 컴퓨터에서 "Ctrl+v"입니다. 마우스를 사용하여 텍스트를 끌어서 선택한 다음 Ctrl 키를 누른 다음 C 키를 클릭하여 완료합니다. 복사, 단축키는 특정 특정 키, 키 시퀀스 또는 키 조합을 통해 작업을 완료하는 것을 의미합니다.

PS 복사 레이어 단축키 PS 복사 레이어 단축키 Feb 23, 2024 pm 02:34 PM

PS 복사 레이어 단축키를 보면 PS 사용 시 레이어를 복사하고 싶을 때 [Ctrl+J] 단축키를 사용하면 빠르게 복사할 수 있다는 것을 알 수 있습니다. 레이어 복사 단축키에 대한 소개를 통해 구체적인 작업 방법을 알려드릴 수 있으니, 자세한 내용은 아래에서 확인하시기 바랍니다. PS 복사 레이어 바로가기 키 답변: [Ctrl+J] 구체적인 방법: 1. PS에서 이미지를 열고 복사해야 하는 레이어를 선택합니다. 2. 키보드의 [Ctrl+J]를 동시에 누르면 레이어 복사가 완료됩니다. 기타 복사 방법: 1. 이미지를 연 후 해당 레이어를 길게 누른 후 [새 레이어] 아이콘을 아래로 이동하세요. 2. 아이콘으로 이동한 후 손을 떼세요. 3. 레이어 복사가 완료되었습니다.

복사단축키 Ctrl에 무엇을 추가해야 하나요? 복사단축키 Ctrl에 무엇을 추가해야 하나요? Mar 15, 2024 am 09:57 AM

Windows 시스템에서 복사할 단축키는 Ctrl+C이고, Linux 시스템에서는 복사할 단축키는 Ctrl+Shift+C입니다. 이러한 바로 가기 키를 알면 사용자의 작업 효율성이 향상되고 텍스트 또는 파일 복사 작업이 쉬워집니다.

복사-붙여넣기 단축키 사용법 알아보기 복사-붙여넣기 단축키 사용법 알아보기 Jan 13, 2024 pm 12:27 PM

많은 사용자들이 컴퓨터를 사용하다 보면 복사해서 붙여넣어야 하는 부분이 생기면 마우스로 복사하기가 매우 번거롭습니다. 그렇다면 복사하여 붙여넣기 단축키를 어떻게 사용하는지 자세한 튜토리얼을 살펴보세요~ 단축키 복사 및 붙여넣기 키 사용 방법: 1. 복사 키: Ctrl+C, 복사할 텍스트 또는 이미지를 선택한 후 단축키를 누릅니다. 2. 붙여넣기 키: Ctrl+V 붙여넣고 싶은 곳에서 바로 단축키를 누르면 됩니다.

Excel에서 테이블을 복사하고 원본 형식을 유지하는 방법은 무엇입니까? Excel에서 테이블을 복사하고 원본 형식을 유지하는 방법은 무엇입니까? Mar 21, 2024 am 10:26 AM

우리는 여러 테이블 데이터를 처리하기 위해 엑셀을 자주 사용하는데, 설정된 테이블을 복사하여 붙여넣은 후 원래 형식이 기본값으로 돌아가므로 이를 재설정해야 합니다. 실제로 엑셀 복사표를 원본 형식으로 유지하는 방법이 있습니다. 구체적인 방법은 아래에서 편집자가 설명해 드리겠습니다. 1. Ctrl 키 드래그 및 복사 작업 단계: 단축키 [Ctrl+A]를 사용하여 모든 테이블 내용을 선택한 다음 움직이는 커서가 나타날 때까지 마우스 커서를 테이블 가장자리로 이동합니다. [Ctrl] 키를 누른 채 테이블을 원하는 위치로 드래그하면 이동이 완료됩니다. 이 방법은 단일 워크시트에서만 작동하며 다른 워크시트 간에 이동할 수 없다는 점에 유의해야 합니다. 2. 선택 붙여넣기 방법: [Ctrl+A] 단축키를 눌러 모든 테이블을 선택하고,

Vue에서 드래그 앤 드롭 요소를 복사하고 이동하는 방법은 무엇입니까? Vue에서 드래그 앤 드롭 요소를 복사하고 이동하는 방법은 무엇입니까? Jun 25, 2023 am 08:35 AM

Vue는 편리한 드래그 앤 드롭 기능을 제공하여 요소를 쉽게 복사하고 이동할 수 있는 인기 있는 JavaScript 프레임워크입니다. 다음으로 Vue에서 드래그 앤 드롭 요소를 복사하고 이동하는 방법을 살펴보겠습니다. 1. 드래그 앤 드롭 요소의 기본 구현 Vue에서 드래그 앤 드롭 요소를 복사하고 이동하려면 먼저 해당 요소의 기본 드래그 앤 드롭 기능을 구현해야 합니다. 구체적인 구현 방법은 다음과 같습니다. 템플릿에서 드래그해야 하는 요소를 추가합니다: <divclass="drag-elem"

See all articles