Replication و پیاده‌سازی Transactional Replication در SQL Server | Pro SQL Server 2019 Administration

Replication و پیاده‌سازی Transactional Replication در SQL Server

توسط admin | گروه SQL Server | 1405/05/20

نظرات 0

Replication و پیاده‌سازی Transactional Replication در SQL Server

Chapter 16 — Replication and Transactional Replication

نویسنده: Peter A. Carter

زبان منبع: انگلیسی

محدوده: صفحات PDF 587 تا 616

تاریخ ترجمه: 2026-08-11

اعتبار ترجمه: ترجمه با کمک هوش مصنوعی

PAGE-587

Replication Concepts

Replication داده را از Publisher به Subscriber توزیع می‌کند. اجزا شامل Publisher، Distributor، Publication، Article، Subscriber و Agentها هستند. Snapshot نیز می‌تواند برای Initialize Subscriber به‌کار رود. Database Snapshot با Replication Snapshot متفاوت است.

Table 16-1 — بازنمایی متن فنی جدول منبع
--- PDF PAGE 587 ---
577
Note  If more than one snapshot of the database that you wish to recover exists, 
then you must drop all the snapshots but the one you are going to restore from 
before you run this script.
Listing 16-5.  Recovering from a Database Snapshot
USE Master
GO
RESTORE DATABASE Chapter16
         FROM DATABASE_SNAPSHOT = 'Chapter16_ss_0630' ;
Replication
SQL Server provides a suite of replication technologies, which you can use to disperse 
data between instances. You can use replication for many purposes, including offloading 
reporting, integrating data from multiple sites, supporting data warehousing, and 
exchanging data with mobile users.
Replication Concepts
Replication draws its terminology from the publishing industry. The components of a 
Replication topology are described in Table 16-1.
Table 16-1.  Replication Components
Component
Description
Publisher
The publisher is the instance that makes data available to other locations. This is 
essentially the primary server.
Subscriber
The subscriber is the instance that receives data from the publisher. This is essentially 
the secondary server. A Replication topology can have multiple subscribers.
(continued)
Chapter 16  Scaling Workloads

--- PDF PAGE 588 ---
578
Figure 16-3 illustrates how the replication components fit together within a 
Replication topology. In this example, two subscribers each receiving the same 
publication and the distributor have been separated from the publisher. This is known as 
a remote distributor. If the publisher and distributor shared an instance, then it is known 
as a local distributor.
Component
Description
Distributor
The distributor is the instance that stores the metadata for the replication technology 
and may also take the workload of processing. This instance may be the same 
instance as the publisher.
Article
An article is a database object that is replicated, such as a table or a view. The article 
can be filtered to reduce the amount of data that needs to be replicated.
Publication
A publication is a collection of articles from a database that is replicated as a single 
unit.
Subscription A subscription is a request from a subscriber to receive publications. It defines which 
publications are received by the subscriber. There are two types of subscription: 
push and pull. In a pull subscription model, the distribution or merge agent that 
is responsible for moving the data runs on each subscriber. In a push model, the 
distribution or merge agent runs on the distributor.
Replication 
Agents
Replication agents are applications that sit outside of SQL Server that are used to 
perform various tasks. The agents that are used depend on the type of replication that 
you implement.
Table 16-1.  (continued)
Chapter 16  Scaling Workloads
PAGE-588
اجزای اصلی Replication
جزءنقش
PublisherSource داده و Publication
Distributorذخیره/هماهنگی تغییرات و Agentها
ArticleTable/Object منتشرشده
Publicationمجموعه Articleها
Subscriberمصرف‌کننده داده
AgentsSnapshot/Log Reader/Distribution/Merge برای انتقال
PAGE-589

Snapshot Replication

Snapshot Replication وضعیت کامل Articleها را در زمان مشخص تولید و به Subscriber اعمال می‌کند. برای داده کم‌تغییر یا انتقال دوره‌ای مناسب است، اما هر Refresh حجم کامل Snapshot را توزیع می‌کند.

PAGE-590

Transactional Replication

در Transactional، Snapshot اولیه Schema/Data را Initialize می‌کند و سپس Log Reader Transactionهای Commit‌شده Publisher را از Transaction Log می‌خواند و در Distribution Database ثبت می‌کند؛ Distribution Agent آن‌ها را به Subscriber اعمال می‌کند. Latency معمولاً پایین است.

PAGE-591

Merge Replication

Merge اجازه تغییر در چند Node و همگام‌سازی Conflict-aware می‌دهد. Tracking و Conflict Resolution پیچیده‌تر است. اگر Updateها را بتوان بین Nodeها Partition کرد، Conflict کاهش می‌یابد.

PAGE-592

پیاده‌سازی Transactional Replication

مثال از دو Instance استفاده می‌کند. ابتدا Distributor/Distribution Database و Snapshot Folder آماده می‌شوند، سپس Publication و Subscription ساخته می‌شوند. SQL Server Agent باید فعال باشد.

PAGE-593

Configure Distribution Wizard Server را Distributor محلی یا Remote تعریف می‌کند. در Remote Distributor، Publisher باید با Credential/Password مناسب Register شود.

Figure 16-5 — شکل/تصویر منبع، صفحه PDF 593
PAGE-594

Wizard در صورت نیاز SQL Server Agent را Start/Auto Start می‌کند، چون Agent Jobها موتور عملیاتی Replication هستند.

Figure 16-6 — شکل/تصویر منبع، صفحه PDF 594
PAGE-595

Snapshot Folder باید Share قابل دسترسی برای Agentها باشد. UNC Path نسبت به Local Path برای Remote Subscriber/Distributor مناسب‌تر است و ACL اهمیت دارد.

Figure 16-7 — شکل/تصویر منبع، صفحه PDF 595
PAGE-596

Distribution Database نام، Data/Log File Path و Retention History/Transactionها را نگه می‌دارد. اندازه و Performance آن در Topology پرترافیک اهمیت دارد.

Figure 16-8 — شکل/تصویر منبع، صفحه PDF 596
PAGE-597

Publishers Page تعیین می‌کند کدام Instance مجاز است از Distributor استفاده کند و Distribution Database پیش‌فرض چیست.

Figure 16-9 — شکل/تصویر منبع، صفحه PDF 597
PAGE-598

New Publication Wizard Database Publisher را انتخاب می‌کند. Database باید برای Transactional Publication شرایط لازم را داشته باشد و Articleهای مناسب مشخص شوند.

Figure 16-10 — شکل/تصویر منبع، صفحه PDF 598
PAGE-599

Publication Type مانند Snapshot، Transactional یا Merge انتخاب می‌شود. Transactional برای One-way low-latency Scenario رایج است.

Figure 16-11 — شکل/تصویر منبع، صفحه PDF 599
PAGE-600

Articles Page Table/Stored Procedure/Objectهای منتشرشده را انتخاب می‌کند. هر Table معمولاً Primary Key لازم دارد تا Transactional Replication Row را به‌طور قابل اتکا شناسایی کند.

Figure 16-12 — شکل/تصویر منبع، صفحه PDF 600
PAGE-601

Article Properties رفتار Schema Copy، Destination Object Name، Command Delivery و گزینه‌های Index/Constraint را کنترل می‌کند. تنظیمات باید با Subscriber Requirement هماهنگ باشد.

Figure 16-13 — شکل/تصویر منبع، صفحه PDF 601
PAGE-602

Row Filtering

Horizontal Filter فقط Rowهای Predicate مشخص را Publish می‌کند و حجم انتقال را کاهش می‌دهد. Filter Table Rows و Add Filter شرط WHERE را تعریف می‌کنند.

Figure 16-14 — شکل/تصویر منبع، صفحه PDF 602
PAGE-603

Filter باید deterministic و قابل پشتیبانی باشد. تغییر Filter معمولاً Snapshot/Reinitialize را تحت تأثیر قرار می‌دهد.

Figure 16-15 — شکل/تصویر منبع، صفحه PDF 603
PAGE-604

Snapshot Agent

Snapshot Agent Schedule و Run-on-demand تعیین می‌شود. برای Publicationهای بزرگ Snapshot Generation می‌تواند I/O/Storage زیاد مصرف کند.

Figure 16-16 — شکل/تصویر منبع، صفحه PDF 604
PAGE-605

Agent Security مشخص می‌کند Snapshot Agent تحت چه Windows Account اجرا و چگونه به Publisher/Distributor وصل شود. Least Privilege و دسترسی Share ضروری است.

Figure 16-17 — شکل/تصویر منبع، صفحه PDF 605
PAGE-606

Snapshot Agent Security Dialog Credentialها را جدا برای Process Account و Connection Context تنظیم می‌کند. Passwordهای Service/Proxy باید با Policy سازمان مدیریت شوند.

Figure 16-17 — شکل/تصویر منبع، صفحه PDF 606
PAGE-607

Subscription

New Subscription Wizard Publication را انتخاب می‌کند و Push یا Pull Distribution Agent Location را تعیین می‌کند. Push Agent در Distributor و Pull Agent در Subscriber اجرا می‌شود.

Figure 16-18 — شکل/تصویر منبع، صفحه PDF 607
PAGE-608

Push ساده‌تر برای مدیریت متمرکز است؛ Pull می‌تواند Load را میان Subscriberها توزیع و autonomy بیشتری بدهد. Network/Firewall و Agent Security تعیین‌کننده‌اند.

Figure 16-19 — شکل/تصویر منبع، صفحه PDF 608
PAGE-609

Subscriber و Destination Database انتخاب می‌شوند. یک Subscriber می‌تواند چند Publication دریافت کند، اما Object Name/Schema Conflict باید مدیریت شود.

Figure 16-21 — شکل/تصویر منبع، صفحه PDF 609
PAGE-610

General Page تنظیم Subscription Database و Agent Optionها را تکمیل می‌کند.

Figure 16-22 — شکل/تصویر منبع، صفحه PDF 610
PAGE-611

Distribution Agent Security Account حداقل Permission لازم روی Distributor/Subscriber می‌خواهد. Credential مشترک با Privilege بالا خطرناک است.

Figure 16-23 — شکل/تصویر منبع، صفحه PDF 611
PAGE-612

در Pull Subscription Agent روی Subscriber اجرا می‌شود و باید بتواند Snapshot Share و Distributor را بخواند و Destination Database را تغییر دهد.

PAGE-613

Security Dialog Credentialهای Connection را تنظیم می‌کند. Windows Integrated Security در Domain محیط قابل مدیریت‌تر است؛ SQL Authentication در برخی Topologyها استفاده می‌شود.

Figure 16-24 — شکل/تصویر منبع، صفحه PDF 613
PAGE-614

Synchronization Schedule تعیین می‌کند Agent Continuous یا دوره‌ای باشد. Transactional Replication برای Latency پایین معمولاً Continuous Distribution Agent دارد.

Figure 16-25 — شکل/تصویر منبع، صفحه PDF 614
PAGE-615

Initialize Subscription مشخص می‌کند Snapshot فوراً اعمال، در اولین Sync اعمال یا Subscriber از Backup/Manual State Initialize شود.

Figure 16-26 — شکل/تصویر منبع، صفحه PDF 615
PAGE-616

Publication Access List

PAL Loginهایی را که اجازه Subscription به Publication دارند محدود می‌کند. Security Replication علاوه بر SQL Permission شامل Share/Agent/Network Permission نیز هست.

Figure 16-27 — شکل/تصویر منبع، صفحه PDF 616

امتیاز کاربران به این مقاله

☆☆☆☆☆

0 نفر امتیاز داده اند. میانگین: 0.0 از 5

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

0 / 500