الأكواد الديناميكية لمراقبة ومتابعة حلول  تزامن البيانات  ( 2/ 3 )


Mostafa El-Masry

أيار/مايو عام 2015

فى المقالة السابق تم شرح بعض الأكواد الديناميكية التى تقوم بمتابعة حاله تزام البيانات بين الخادمAو الخادمB ومن ثم ارسال بريد الكتروني الى المسئولين في حال تعطل التزامن و نحن بصدد هذا المقال اليوم سنقوم باضافة المزيد من  الأكواد الديناميكيه من اجل دعم عملية مراقبه ومتابعه  تزامن البيانات SQL Server Replication في جوانب اخرى غاية في الاهمية كما هو موضح ادناه  :

النقاط التى سوف يتم تناولها وشرحها فى هذا المقال :

  1. امعلومات كامله عن مكونات تزامن البيانات
  2. ايجاد الجداول المستخدمه فى عمليه تزامن البيانات .

اولا: معلومات كامله عن مكونات تزامن البيانات :

كأى مدير قواعد بيانات يقوم بعمل صيانة دوريه للخوادم ومحركات قواعد البيانات الخاصة بمايكروسوفت وبالأخص اذا كان هذا الخادم جديد بالنسبه له فأنه يجب فى هذه الحاله الأستعلام عن حلول تزامن البيانات (SQL Server Replication) المتواجدة على الخادم الرئيسي A

----completed setup replication information
USE Distribution
GO
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
-- Get the publication name based on article
SELECT DISTINCT
srv.srvname publication_server
, a.publisher_db
, p.publication publication_name
, a.article
, a.destination_object
, ss.srvname subscription_server
, s.subscriber_db
, da.name AS distribution_agent_job_name
FROM MSArticles a
JOIN MSpublications p ON a.publication_id = p.publication_id
JOIN MSsubscriptions s ON p.publication_id = s.publication_id
JOIN master..sysservers ss ON s.subscriber_id = ss.srvid
JOIN master..sysservers srv ON srv.srvid = p.publisher_id
JOIN MSdistribution_agents da ON da.publisher_id = p.publisher_id
 AND da.subscriber_id = s.subscriber_id
ORDER BY 1,2,3

هذا الكود سوف سيلعب بدوره دورا فعالا في كشف كل الحقائق عن تزامن البيانات منذ لحظة انشاءه مثل  :

  1. اسم الخادم الرئيسي A  ( (Publication Server name

  2. اسماء قواعد البيانات المندرجة تحت تزامن البيانات (Publisher Databases name )

  3. اسم الناشر في عملية تزامن البيانات ( Publication Name  ).

  4. اسماء الجداول المندرجة تحت الناشر Tables name in the replication (Article)

  5. اسم الخادم الفرعي B (Subscription server name )

  6. اسم المستقبل في عملية تزامن البيانات Subscription name

  7. اسماء الجداول المناظرة على الخادم الفرعي B

    Destination object name for each (Article)

  8. اسماء المهام المجدلة زمنيا لتزامن البيانات

    Subscription agent jobs name.

ثانيا: سرد الجداول المستخدمه فى عمليه تزامن البيانات:

يعد هذا الكود الديناميكى من اشهر الاكواد في مجال تزامن البيانات للمساعدة في سرد اسماء الجداول المندرجة تحت تزامن البيانات بشكل سريع و سلس مما يساعد بدوره في عمليات تعديلات تصميم الجداول التي قد تحدث من وقت لآخر مع اي اصدار جديد للانظمة الالكترونية المتعلقة حيث يتطلب فصل الجداول المتعلقة بالتعديلات خارج التزامن الي حين انتهاء التعديلات ثم ارجاعها مرة اخرى لتزامن البيانات

Create Proc Find_puplication_article (@articleName Nvarchar(200))
AS
begin
Set nocount on
--Return all the List of article for each puplication
IF @articleName = '' or @articleName IS NULL
begin
SELECT
 MSP.publication AS 'Publication Name'
 ,MSA.publisher_db AS 'Database Name'
 ,MSA.article AS 'Article Name'
 ,MSA.source_owner AS 'Schema Name'
 ,MSA.source_object AS 'Table Name'
FROM
 DBO.MSarticles AS MSA
INNER JOIN DBO.MSpublications AS MSP
 ON MSA.publication_id = MSP.publication_id
 ORDER BY
 MSP.publication, MSA.article;
END
ELSE IF @articleName IS NOT NULL
begin
SELECT
 MSP.publication AS 'Publication Name'
 ,MSA.publisher_db AS 'Database Name'
 ,MSA.article AS 'Article Name'
 ,MSA.source_owner AS 'Schema Name'
 ,MSA.source_object AS 'Table Name'
FROM
 DBO.MSarticles AS MSA
INNER JOIN DBO.MSpublications AS MSP
 ON MSA.publication_id = MSP.publication_id
 WHERE MSA.article = @ArticleName
 ORDER BY
 MSP.publication, MSA.article;
END
END

تنفيذ الكود الديناميكى :

Use distribution
GO
Exec Find_puplication_article 'Address'

الى اللقاء في المقالة القادمة للتعرف عن معلومات أكثر فى الأكواد الديناميكيه

لمتابعه الناشر :

View all my tips, LinkedIn, Website, Slideshare, Youtube Channel

يمكنك متابعتنا و مشاركتنا ارائك ايضا عبر :

Facebook Page, LinkedIn Group, Twitter, Networked Blogs, Facebook Group, Youtube Channel