تمكين الاشتراكات المتجددة للنسخ المتماثل للمعاملات في SQL Server 2019

تاريخ إنشاء الصفحة :

مقدمة واحتياطات

هذه المقالة مخصصة للنسخ المتماثل في SQL Server 2019. واحدة من الوظائف في ذلك هو "الاشتراك المتجدد" ممكن.

تم تمكين هذه الميزة افتراضيا في الإصدارات السابقة من SQL Server، ولكن تم تعطيلها منذ عام 2017 (على الأرجح).

قد تقوم الإصدارات المستقبلية من SQL Server بإزالة هذه الميزة. باستثناء ترقية بيئة موجودة ، نوصي باستبدالها بالبناء الجديد مع النسخ المتماثل للدمج وما إلى ذلك.

مرجع

وسط

استخدم خادمين وخادم واحد وخادمين ل SQL. Windows Server في حالة لم يتم فيها إجراء أي إعدادات إضافية مباشرة بعد التثبيت.

الوحدة 1 (جانب النشر)
  • ويندوز سيرفر 2019 الإصدار القياسي
  • SQL Server 2019 Developer Edition (الإصدار القياسي أو أعلى مطلوب)
  • SQL Server إدارة ستوديو 18.9.1
الوحدة الثانية (جانب المشترك)
  • ويندوز سيرفر 2019 الإصدار القياسي
  • SQL Server 2019 Express Edition
  • SQL Server إدارة ستوديو 18.9.1

قصد

حتى إذا تم تحديث سجلات الجدول في قواعد بيانات الخادم الأول أو الثاني تأكد من مزامنة سجلات الجداول على خوادم بعضها البعض.

بالمناسبة ، واحد على جانب النشر على ما يرام ، ولكن يمكن أن يكون لدى جانب المشترك أي عدد من الوحدات. كما أنه يعمل مع مثيلات متعددة من SQL Server على خادم واحد.

تثبيت SQL Server

تثبيت SQL Server ليس الجزء الرئيسي من هذه النصائح ، لذلك لن أخوض في التفاصيل. يتم سرد فقط تلك ذات الصلة بالنسخ المتماثل.

يتطلب تثبيت جانب المنشور إصدار قياسي أو أعلى. تقوم هذه التلميحات بتثبيت إصدار المطور كبيئة اختبار.

المشتركون على ما يرام مع Express Edition. بالطبع ، الإصدارات الأخرى على ما يرام ، اعتمادا على تكوين قاعدة البيانات.

لتحديد الميزات، حدد خدمة مشغل قاعدة البيانات والنسخ المتماثل ل SQL Server. هذا هو نفسه لكل من جانب النشر وجانب المشترك.

يتم تعيين تكوين المثيل افتراضيا لكل من جانب المنشور وجانب المشترك. حتى إذا قمت بتغيير اسم المثيل، فإن الفرق هو ما إذا كنت تحدد اسم المثيل في مواصفات الخادم لاحقا أم لا.

على جانب المنشور، قم بتكوين عامل SQL Server لبدء التشغيل تلقائيا. يمكنك تغيير هذا الإعداد لاحقا.

يقوم هذا التلميح بمصادقة النسخ المتماثل باستخدام حساب SQL Server sa. لذلك، قم بتمكين مصادقة SQL Server. إذا كنت لا تريد استخدام حساب sa لأسباب أمنية، فاستبدل جزء مصادقة SQL Server من الشرح لاحقا بمصادقة Windows أو حساب آخر.

اجعل هذا الإعداد هو نفسه على كلا الخادمين.

تثبيت SQL Server إدارة ستوديو

قم بتثبيت SQL Server إدارة Studio الذي قمت بتنزيله. نظرا لأن شاشة التثبيت مخصصة للتثبيت فقط ، يتم حذف الشرح.

أعد تشغيل Windows إذا تمت مطالبتك بإعادة التشغيل بعد التثبيت. أيضا، قم بتثبيت أي تصحيحات في Windows Update.

إنشاء قاعدة بيانات وجداول من جانب النشر

إذا قمت بإنشاء جدول على جانب المنشور، يقوم جانب المشترك تلقائيا بنسخ الجدول أو السجل.

طريقة الإنشاء هي نفسها الإجراء العادي ، لذلك سأحذف التفاصيل.

تقوم بإنشاء قاعدة بيانات باسم "قاعدة بيانات المنشورات" في "استوديو إدارة SQL Server".

قم بإنشاء جدول باسم "المستخدمون" وقم بتسجيل الأعمدة كما يلي: كل ما عليك فعله هو التحقق من مزامنة السجلات ، بحيث يمكن أن يكون الاسم والرقم ومحتويات العمود في الجدول أي شيء. ومع ذلك ، مطلوب المفتاح الأساسي فقط.

أضف بعض السجلات للتأكد من مزامنة السجلات بعد إنشاء النسخ المتماثل.

تكوين الاتصالات عن بعد

قم بتكوينها للسماح بالوصول عن بعد إلى قواعد بيانات خوادم بعضها البعض. يتم تلخيص التفاصيل في النصائح التالية.

تعيين أذونات المجلد

على الخادم على جانب المنشور، افتح خصائص المجلد التالي: يعتمد مسار المجلد على إصدار SQL Server واسم المثيل.

  • جيم : \\ ملفات البرنامج \\ مايكروسوفت SQL Server \\ MSSQL15. MSSQLSERVER\MSSQL\ReplData

من علامة التبويب الأمان ، أضف حساب "الخدمة" واضبطه على التحكم الكامل.

تكوين التوزيع

هذه المرة ، يتم إنشاء التوزيع على نفس الخادم مثل المنشور.

بدء تشغيل SQL Server إدارة Studio انقر بزر الماوس الأيمن فوق النسخ المتماثل وحدد تكوين التوزيع.

انقر فوق التالي.

حدد "اصنع خادمك الخاص > موزعك الخاص" <.

بعد ذلك ، انقر فوق "التالي" كما هو لإكماله.

إنشاء منشور

في الأصل ، يتم إنشاؤه من المعالج كما هو موضح في الشكل التالي ، في SQL Server 2019، لا يؤدي الإنشاء من معالج إلى تمكين "الاشتراكات المتجددة" ولا يسمح بمزامنة السجلات بين الجداول.

لذلك ، نستخدم T-SQL لإنشاء المنشور هنا.

فيما يلي SQL لإنشاء منشور باستخدام مصادقة SQL Server: يرجى تغيير كلمة المرور وفقا لإعداداتك.

-- トランザクションパブリケーションを追加するための宣言
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'パブリケーションDB'; 
SET @publication = N'パブリケーション'; 
SET @login = 'sa'; 
SET @password = 'saパスワード'; 

USE [パブリケーションDB]

-- パブリケーションデータベースでトランザクションレプリケーションを有効にする。
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- sp_addlogreader_agent を実行して、エージェントジョブを作成します。
EXEC sp_addlogreader_agent 
    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;

-- 即時更新、キュー更新、およびプルサブスクリプションをサポートするトランザクションパブリケーションを作成します。
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_sync_tran = N'true', 
    @allow_queued_tran = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true',
    -- 関連するデフォルトのプロパティを明示的に宣言する
    @conflict_policy = N'pub wins';

-- デフォルトのスケジュールを使用して、パブリケーションの新しいスナップショットジョブを作成します。
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;
GO

عند استخدام مصادقة Windows ، قم بتغيير الجزأين "sp_addlogreader_agent" و "sp_addpublication_snapshot" كما يلي.

مصادقة SQL Server

    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;

مصادقة ويندوز

    @job_login = @login, 
    @job_password = @password,
    @publisher_security_mode = 1;

إذا تم إنشاؤه بنجاح ، فسترى ما يلي:

أيضا، افتح خصائص المنشور الذي تم إنشاؤه وتأكد من تمكين "الاشتراك المتجدد".

تحديد المقالات

في الأصل ، إذا قمت بإنشائه باستخدام معالج ، فستحدد المقالة في نفس الوقت ، نظرا لأن البرنامج النصي أعلاه لا يتضمن معالجة المقالات ، يتم تحديده من الخاصية.

حدد "مقالات" من القائمة الموجودة على اليسار ، وتحقق من الجدول الذي تريد مزامنته ، وانقر فوق الزر موافق.

تتم إضافة msrepl_tran_version إلى أعمدة الجدول المراد مزامنتها، وتتم إضافة مشغل جدول في نفس الوقت.

إنشاء اشتراك

انقر بزر الماوس الأيمن فوق المنشور الذي أنشأته للتو وحدد اشتراك جديد.

انقر فوق التالي.

حدد المنشور الذي قمت بإنشائه.

حدد تشغيل جميع الوكلاء على الموزع <اسم الخادم>.

انقر فوق الزر إضافة مشترك SQL Server.

يحدد الخادم (+ اسم المثيل) للتسجيل كمشترك.

إذا لم يكن لديك قاعدة بيانات مشتركين، فقم بإنشاء قاعدة بيانات جديدة. إذا كان موجودا بالفعل، فحدده لأنه يتم عرض عنصر التحديد.

بعد تحديد قاعدة البيانات، انقر فوق التالي.

إذا كان لديك أكثر من مشترك واحد، يمكنك تسجيل أكبر عدد تريده هنا.

انقر فوق الزر "..."

هنا ، يعمل الوكيل تحت حساب sa ، ولكن يرجى تعيينه وفقا لبيئتك.

حدد تشغيل بشكل مستمر.

يجب أن يكون إعداد "الاشتراك المتجدد" قيد التشغيل.

في حالة "إجراء تغييرات في نفس الوقت" ، تتم مزامنتها على الفور ، ولكن يجب تشغيل جميع الخوادم.

"تغييرات قائمة الانتظار والالتزام إن أمكن" يتراكم التغييرات في قائمة الانتظار، لذلك يتم الالتزام بها عند تشغيل الخادم، حتى إذا كان الخادم لا يعمل. ومع ذلك، توقيت المزامنة بطيء.

حدد استخدام خادم مرتبط أو بعيد محدد مسبقا.

حدد الآن.

انقر فوق التالي.

انقر فوق الزر إنهاء.

أغلق إذا لم تكن هناك أخطاء.

بعد بضع لحظات ، يمكنك أن ترى أنه تم إنشاء قاعدة البيانات على جانب المشترك وأنه تم إنشاء الجداول أيضا.

يمكنك التحقق من مزامنة السجلات أيضا.

إذا لم تتم مزامنته بعد فترة من الوقت ، فيرجى القيام بما يلي.

انقر بزر الماوس الأيمن فوق الاشتراك الذي تم إنشاؤه وحدد إعادة تهيئة.

حدد "استخدام لقطة جديدة" وانقر فوق الزر "تعيين لإعادة التهيئة".

في حالة حدوث خطأ، حاول مرة أخرى.

فحص التشغيل

حاول إضافة جداول أو تعديلها على جانب المنشور.

انتظر بضع ثوان أو نحو ذلك للتأكد من مزامنته مع المشترك.

الآن دعونا نعدل السجل على جانب المشترك.

يمكنك التحقق من مزامنته مع جانب المنشور.

إذا كان لديك عدة مشتركين مسجلين، فتأكد من مزامنتها بين المشتركين.