SQL Server中的高可用性(3)----复制
在本系列文章的前两篇对高可用性的意义和单实例下的高可用性做了阐述。但是当随着数据量的增长,以及对RTO和RPO要求的严格,单实例已经无法满足HA/DR方面的要求,因此需要做多实例的高可用性。本文着重对SQL Server的复制进行阐述。 复制? 复制起初并不是用
在本系列文章的前两篇对高可用性的意义和单实例下的高可用性做了阐述。但是当随着数据量的增长,以及对RTO和RPO要求的严格,单实例已经无法满足HA/DR方面的要求,因此需要做多实例的高可用性。本文着重对SQL Server的复制进行阐述。
复制?
复制起初并不是用于作为高可用性功能而设计的,实际上复制的概念就像其名称一样,用于复制数据。比如将某个库中的数据“复制”到另一个库,到另一个实例中,由OLTP复制到OLAP环境中,由某数据中心复制到位于地球另一侧的另外一个数据中心中。因此,由于复制所提供的功能,复制可用被用来剥离负载,用于做数据冗余,直至把复制用于作为高可用性拓扑中的一个环节。(切记,复制的功能可以被用做高可用性,而不是复制是高可用性功能。)
不同于其它SQL Server可以被用作高可用性的特性,复制可以做的非常灵活。您可以复制某些列,过滤某些行,复制表中的部分数据。复制是基于数据库对象的,而不像日志传送、镜像、集群、AlawysOn等需要以库和实例作为基本对象,此外更新的订阅还允许订阅端合并数据,没有任何一种其它的高可用性技术能做到这一点。
复制的基本概念
关于复制的基本概念,我在之前已经有一篇文章进行了阐述:。但这里我还是想再次对基本的概念进行阐述。
复制的模型参考的杂志发布的模型,由出版社发型杂志,由经销商分发杂志,由订户来消费这些杂志。这个概念看似简单,但可以归结出复制下面一些特点:
复制的几种类型
下面来简单介绍几种复制类型在高可用性中可以作为的角色。
快照发布
快照复制本质上就是通过快照目录(共享目录)共享一堆文件(因为需要多个订阅端共享),在早起版本,快照复制仅仅是一个文件,而相对更新的版本,复制会将文件分为多个。快照就是文章某一时间点发布的Article
是一种创建报表数据库的好方式。
对于快照复制的简单概念,如图1所示。
图1.快照发布的概念
事务复制
在初始化订阅后(可通过快照初始化,或者由备份初始化,请参阅:),由发布服务器上将需要被复制的部分的日志标记为复制.由分发服务器的log reader agent来读取发布服务器上这部分日志,当分发服务器将所有的日志传递给订阅服务器,则发布服务器上的日志就可以清空了
通过原理不难看出,每个数据库只能有一个log reader agent,因此数据库中发布内容过多,或者重复发布,则会产生严重的性能问题。此外log reader agent需要读取所有的日志,不会有任何奇迹发生来跳过那些没有被标记为复制的日志.因此当对复制的文章进行了筛选的话,会影响性能(这里可不像索引,设置了筛选条件能够提高查询速度)。
性能因素取决于很多地方,发布服务器的速度,更改频率,分发服务器的速度等等。
通常可以用于做实时报表,虽然会有些许延迟,但效果非常好。
合并复制
合并复制可以实现数据的多处更新,当更新冲突时,可以设置规则,比如北京和上海的服务器,我可以设置北京的服务器永远赢。
Peer-To-Peer复制
P2P复制是基于事务日志之上的一种复制类型,他允许每个节点都成为对等的实体。因此可以非常好的用于HA和负载均衡,即使某一个节点宕机,完全不会影响其它节点的可用性。
自SQL Server 2012以来,PeerToPeer复制已经成为了一种单独的发布类型。
一个Peer-To-Peer的简单例子如图2所示。
图2.对等复制
从图2中可以看出,节点A、B、C、D分别对同一份数据保存相同的副本,并且每个节点上都可以进行读写操作。我们可以假设每个节点都是在不同的地理位置,因此假如说节点A宕机,,则可以直接将应用程序连接字符串重定向到其它节点,实现了高可用性。从图2中还可以看出,对于任一节点我们都可以进行读写操作,因此实现了负载均衡的效果。此外,NodeB进一步将数据发布到只读服务器上,进一步实现了读写分离。
因此,这种方式具有极大的灵活性,和其它高可用性技术结合可以实现多种数据库拓扑。
在SQL Server 2008之后的版本,当遇见数据更新冲突时,可以通过冲突查看器进行查看并解决冲突,还可以在数据更新冲突出现后,进行报警。
为什么选用复制
每一种高可用性技术都有其自身的优点和缺陷,如果某种技术相较与其它技术只有有点,没有缺陷,那”其它技术“一定会被淘汰。
相比较其它高可用性技术而言,复制有如下好处:
但同样,复制也有其自身局限性,比如:
但不得不说,复制的确是非常的强大,套用京东“首席DB Replicationor(自造词)”陈璟的话说就是:“想复制什么复制什么,想复制多远复制多远,想怎么复制就怎么复制,想复制的多复杂就多复杂”,同时结合其它技术可以实现很多有意思的拓扑,比如图3(同样来自陈璟同学)。
图3.利用复制分发写数据,同时实现高可用性
通过图3这种方式,分发了写压力,同时相同的读库实现了负载均衡以及高可用性,当某个读库宕机后,会有足够的时间进行修复。
小结
本篇文章对复制在高可用架构的角色做了一个概述。复制作为高可用性中最为灵活的技术,与其它技术结合,可以实现很多有意思的拓扑。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









私たちユーザーは、このプラットフォームを使用する際にいくつかの機能の多様性を理解できるはずであり、いくつかの曲の歌詞は非常によく書かれていることがわかります。何度か聞いて、とても深い意味を感じることもあるので、意味を理解したい場合は、そのままコピーしてコピーライティングとして使いたくなりますが、使いたい場合は、まだ必要です 歌詞をコピーする方法を学ぶ必要があります 誰もがこれらの操作に慣れていると思いますが、携帯電話での操作は確かに少し難しいです。 そこで、よりよく理解するために、今日は編集者がは、あなたを助けるためにここにあります。上記の操作エクスペリエンスのいくつかをわかりやすく説明しています。もし気に入ったら、エディターと一緒に見に来てください。お見逃しなく。

WindowsServerBackup は、WindowsServer オペレーティング システムに付属する機能で、ユーザーが重要なデータとシステム構成を保護し、中小企業、エンタープライズ レベルの企業に完全なバックアップおよび回復ソリューションを提供できるように設計されています。この機能を使用できるのは、Server2022 以降を実行しているユーザーのみです。この記事では、WindowsServerBackup のインストール、アンインストール、またはリセットの方法を説明します。 Windows Server バックアップをリセットする方法 サーバー バックアップで問題が発生したり、バックアップに時間がかかりすぎたり、保存されているファイルにアクセスできない場合は、Windows Server バックアップ設定をリセットすることを検討してください。 Windowsをリセットするには

コピーのショートカット キーは「Ctrl+c」、対応する貼り付けキーは「Ctrl+v」です。コンピュータでは、マウスを使用してテキストをドラッグして選択し、Ctrl キーを押したまま C キーをクリックして完了します。コピー; ショートカット キーとは、特定のキー、キー シーケンス、またはキーの組み合わせによって操作を完了することを指します。

PS コピー レイヤーのショートカット キーでは、PS を使用しているときにレイヤーをコピーしたい場合、ショートカット キー [Ctrl+J] を使用すると簡単にコピーできることがわかります。レイヤーをコピーするショートカットキーの具体的な操作方法を紹介しますが、以下に詳しい内容を記載していますので、ぜひご覧ください。 PS レイヤーのコピー ショートカット キーの答え: [Ctrl+J] 具体的な方法: 1. PS で画像を開き、コピーする必要があるレイヤーを選択します。 2. キーボードの[Ctrl+J]を同時に押して、レイヤーのコピーを完了します。その他のコピー方法: 1. 画像を開いた後、レイヤーを長押しして[新規レイヤー]アイコンを下に移動します。 2. アイコンに移動したら指を放します。 3. レイヤーのコピーが完了します。

Windows では、コピーのショートカット キーは Ctrl C、Apple では、コピーのショートカット キーは Command C、Linux では、コピーのショートカット キーは Ctrl Shift C です。これらのショートカット キーを知っておくと、ユーザーの作業効率が向上し、テキストやファイルのコピー操作が容易になります。

多くのユーザーがコンピュータを使用するとき、コピー&ペーストする必要があるものに遭遇した場合、マウスでコピーするのは非常に面倒です. そこで、コピー&ペーストのためのショートカットキーを使用する方法を教えてください? 詳細なチュートリアルをご覧ください~ショートカットのコピーと貼り付け キーの使用方法: 1. コピー キー: Ctrl+C、コピーするテキストまたは画像を選択し、ショートカット キーを押します。 2. 貼り付けキー: Ctrl+V. 貼り付けたい場所にショートカット キーを直接押すだけです。

Excelで複数の表データを処理することが多いのですが、設定した表をコピー&ペーストすると元の形式に戻ってしまい、再設定する必要があります。実は、Excelのコピー表を元の形式のままにする方法があり、その具体的な方法を編集者が以下で説明します。 1. Ctrl キーのドラッグとコピーの操作手順: ショートカット キー [Ctrl+A] を使用してテーブルの内容をすべて選択し、移動カーソルが表示されるまでマウス カーソルをテーブルの端に移動します。 [Ctrl]キーを押したままテーブルを目的の位置までドラッグすると移動が完了します。このメソッドは単一のワークシートでのみ機能し、異なるワークシート間で移動できないことに注意してください。 2. 選択的に貼り付ける手順: [Ctrl+A] ショートカット キーを押してすべてのテーブルを選択し、 を押します。

Vue は、便利なドラッグ アンド ドロップ機能を提供する人気の JavaScript フレームワークで、要素を簡単にコピーしたり移動したりできます。次に、Vue でドラッグ アンド ドロップ要素をコピーおよび移動する方法を見てみましょう。 1. ドラッグ アンド ドロップ要素の基本的な実装 Vue でドラッグ アンド ドロップ要素をコピーおよび移動するには、まず要素の基本的なドラッグ アンド ドロップ機能を実装する必要があります。具体的な実装方法は以下の通りです。 ドラッグする必要がある要素をテンプレートに追加します: <divclass="drag-elem"
