یادداشت حقوقی: کاربر حق ترجمه و بازنشر این اثر را برای پروژه تأیید کرده است.PAGE-587Replication 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| جزء | نقش |
|---|
| Publisher | Source داده و Publication |
| Distributor | ذخیره/هماهنگی تغییرات و Agentها |
| Article | Table/Object منتشرشده |
| Publication | مجموعه Articleها |
| Subscriber | مصرفکننده داده |
| Agents | Snapshot/Log Reader/Distribution/Merge برای انتقال |
PAGE-589Snapshot Replication
Snapshot Replication وضعیت کامل Articleها را در زمان مشخص تولید و به Subscriber اعمال میکند. برای داده کمتغییر یا انتقال دورهای مناسب است، اما هر Refresh حجم کامل Snapshot را توزیع میکند.
PAGE-590Transactional Replication
در Transactional، Snapshot اولیه Schema/Data را Initialize میکند و سپس Log Reader Transactionهای Commitشده Publisher را از Transaction Log میخواند و در Distribution Database ثبت میکند؛ Distribution Agent آنها را به Subscriber اعمال میکند. Latency معمولاً پایین است.
PAGE-591Merge 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-593Configure Distribution Wizard Server را Distributor محلی یا Remote تعریف میکند. در Remote Distributor، Publisher باید با Credential/Password مناسب Register شود.
Figure 16-5 — شکل/تصویر منبع، صفحه PDF 593PAGE-594Wizard در صورت نیاز SQL Server Agent را Start/Auto Start میکند، چون Agent Jobها موتور عملیاتی Replication هستند.
Figure 16-6 — شکل/تصویر منبع، صفحه PDF 594PAGE-595Snapshot Folder باید Share قابل دسترسی برای Agentها باشد. UNC Path نسبت به Local Path برای Remote Subscriber/Distributor مناسبتر است و ACL اهمیت دارد.
Figure 16-7 — شکل/تصویر منبع، صفحه PDF 595PAGE-596Distribution Database نام، Data/Log File Path و Retention History/Transactionها را نگه میدارد. اندازه و Performance آن در Topology پرترافیک اهمیت دارد.
Figure 16-8 — شکل/تصویر منبع، صفحه PDF 596PAGE-597Publishers Page تعیین میکند کدام Instance مجاز است از Distributor استفاده کند و Distribution Database پیشفرض چیست.
Figure 16-9 — شکل/تصویر منبع، صفحه PDF 597PAGE-598New Publication Wizard Database Publisher را انتخاب میکند. Database باید برای Transactional Publication شرایط لازم را داشته باشد و Articleهای مناسب مشخص شوند.
Figure 16-10 — شکل/تصویر منبع، صفحه PDF 598PAGE-599Publication Type مانند Snapshot، Transactional یا Merge انتخاب میشود. Transactional برای One-way low-latency Scenario رایج است.
Figure 16-11 — شکل/تصویر منبع، صفحه PDF 599PAGE-600Articles Page Table/Stored Procedure/Objectهای منتشرشده را انتخاب میکند. هر Table معمولاً Primary Key لازم دارد تا Transactional Replication Row را بهطور قابل اتکا شناسایی کند.
Figure 16-12 — شکل/تصویر منبع، صفحه PDF 600PAGE-601Article Properties رفتار Schema Copy، Destination Object Name، Command Delivery و گزینههای Index/Constraint را کنترل میکند. تنظیمات باید با Subscriber Requirement هماهنگ باشد.
Figure 16-13 — شکل/تصویر منبع، صفحه PDF 601PAGE-602Row Filtering
Horizontal Filter فقط Rowهای Predicate مشخص را Publish میکند و حجم انتقال را کاهش میدهد. Filter Table Rows و Add Filter شرط WHERE را تعریف میکنند.
Figure 16-14 — شکل/تصویر منبع، صفحه PDF 602PAGE-603Filter باید deterministic و قابل پشتیبانی باشد. تغییر Filter معمولاً Snapshot/Reinitialize را تحت تأثیر قرار میدهد.
Figure 16-15 — شکل/تصویر منبع، صفحه PDF 603PAGE-604Snapshot Agent
Snapshot Agent Schedule و Run-on-demand تعیین میشود. برای Publicationهای بزرگ Snapshot Generation میتواند I/O/Storage زیاد مصرف کند.
Figure 16-16 — شکل/تصویر منبع، صفحه PDF 604PAGE-605Agent Security مشخص میکند Snapshot Agent تحت چه Windows Account اجرا و چگونه به Publisher/Distributor وصل شود. Least Privilege و دسترسی Share ضروری است.
Figure 16-17 — شکل/تصویر منبع، صفحه PDF 605PAGE-606Snapshot Agent Security Dialog Credentialها را جدا برای Process Account و Connection Context تنظیم میکند. Passwordهای Service/Proxy باید با Policy سازمان مدیریت شوند.
Figure 16-17 — شکل/تصویر منبع، صفحه PDF 606PAGE-607Subscription
New Subscription Wizard Publication را انتخاب میکند و Push یا Pull Distribution Agent Location را تعیین میکند. Push Agent در Distributor و Pull Agent در Subscriber اجرا میشود.
Figure 16-18 — شکل/تصویر منبع، صفحه PDF 607PAGE-608Push سادهتر برای مدیریت متمرکز است؛ Pull میتواند Load را میان Subscriberها توزیع و autonomy بیشتری بدهد. Network/Firewall و Agent Security تعیینکنندهاند.
Figure 16-19 — شکل/تصویر منبع، صفحه PDF 608PAGE-609Subscriber و Destination Database انتخاب میشوند. یک Subscriber میتواند چند Publication دریافت کند، اما Object Name/Schema Conflict باید مدیریت شود.
Figure 16-21 — شکل/تصویر منبع، صفحه PDF 609PAGE-610General Page تنظیم Subscription Database و Agent Optionها را تکمیل میکند.
Figure 16-22 — شکل/تصویر منبع، صفحه PDF 610PAGE-611Distribution Agent Security Account حداقل Permission لازم روی Distributor/Subscriber میخواهد. Credential مشترک با Privilege بالا خطرناک است.
Figure 16-23 — شکل/تصویر منبع، صفحه PDF 611PAGE-612در Pull Subscription Agent روی Subscriber اجرا میشود و باید بتواند Snapshot Share و Distributor را بخواند و Destination Database را تغییر دهد.
PAGE-613Security Dialog Credentialهای Connection را تنظیم میکند. Windows Integrated Security در Domain محیط قابل مدیریتتر است؛ SQL Authentication در برخی Topologyها استفاده میشود.
Figure 16-24 — شکل/تصویر منبع، صفحه PDF 613PAGE-614Synchronization Schedule تعیین میکند Agent Continuous یا دورهای باشد. Transactional Replication برای Latency پایین معمولاً Continuous Distribution Agent دارد.
Figure 16-25 — شکل/تصویر منبع، صفحه PDF 614PAGE-615Initialize Subscription مشخص میکند Snapshot فوراً اعمال، در اولین Sync اعمال یا Subscriber از Backup/Manual State Initialize شود.
Figure 16-26 — شکل/تصویر منبع، صفحه PDF 615PAGE-616Publication Access List
PAL Loginهایی را که اجازه Subscription به Publication دارند محدود میکند. Security Replication علاوه بر SQL Permission شامل Share/Agent/Network Permission نیز هست.
Figure 16-27 — شکل/تصویر منبع، صفحه PDF 616