الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

موضوع كبير محتاج افادة فيه بخصوص عمل سكريبت جاهز لتحديث قاعدة البيانات في وقت معين

بدأه عبدالعزيز المخزنجي في 2 فبراير 2013 · 3 رد · 751 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

 

سؤالي للاخوة المبرمجين ومستخدمين العملاق SQL  واتمني الافادة  واتمني السرعة في التواصل لان الموضوع فعلا مهم جداا

 

مبدأيا

 

دلوقتي في سيرفر في الشركة الي انا فيها عليه داتا بيز  DB2   اوك , ؟

 

انا بحاول اني اعمل سيرفر تاني بالسيكوال علي جهاز PC  لغرض اني اعمل عليه داتا بيز تبقي فيها نفس الداتا الي موجودة علي السيرفر الاول الي هو  DB2  بحيث ان كل عملياتي واستعلاماتي تكون بعيده عن السيرفر الاول ( للسرعه والامان )

 

طيب انا عملت كونكشن علي الداتا بيز الاولي والجداول بتظهر وكل حاجه تمام

 

عايز بقي اعمل داتا بيز بنفس الاسم علي السيرفر التاني  ويكون فيه نفس الجداول  ، وده تم فعلا 

 

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

 

الي محتاجه هو اني اعمل سكربت يقوم بعمليه تحديث تلقائية لكافة الجداول الي علي السيرفر التاني وطبعا هياخد الداتا من السيرفر الاول ، ويتم التحديث اتوماتيك

مرتين في اليوم ، ويكون في امكانية اني اعمل التحديث ده في اي وقت انا عايزه !

 

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

 

شكرا ،

#2

السلام عليكم ...

  1. مشكلتك ببساطة تسمى database synchronization  ....  يوجد الكثير من الأدوات و الأكواد عنها ... معظمها يعمل ضمن نفس الــ Product  فقط أو يقوم بنقل كامل البيانات (Replication)  .. او استيراد كامل (Export-Import) .
  2. يمكنك عمل Link  بين Sql Server  و DB2  باستخدام (Microsoft OLE DB Provider for DB2 V3.0) طبعا بعد عمل الربط اصبحت بيانات الــ DB2  موجودة كأنها بيانات في السيكوال سيرفر  و يمكن الوصول للبيانات كالتالي :
    SELECT * FROM DB2Link.databaseName.TableName

     رابط  ,  رابط2 ,   رابط3 ثم يمكن القيام بـــ synchronization  كما في الرابط (synchronize-two-tables-using-sql-server-integration-services-ssis-part-i-of-ii.aspx) .

  3. لو كنت تستخدم sql server 2008 يمكنك استخدام الأمر Merge  (رابط)  الذي يقوم بعمليات Insert - Update - Delete  للجدول اعتماد على جدول آخر حسب قيم المفاتيح .

  4. يمكنك  تصميم طريقة Sync  خاصة بنا كمايلي :

    1. نقوم بإضافة عمود اسمه status  للدللالة على حالة السجل و ياخذ قيم مثلا :

      1. صفر = السجل لم يتم التعديل عليه .

      2. واحد = السجل مضاف .

      3. اثنين = السجل تم التعديل عليه .

      4. ثلاثة = السجل محذوف (يمكن عمل جدول خاص للسجلات المحذوفة).

    2. نقوم بتصميم برنامج C#  يقوم باحضار السجلات المضافة من DB2  و يضيفها في SqL SERVER  ثم يضع حالتها للقيمة (صفر = لم يتم التعديل) .

    3. البرنامج يقوم أيضا بمزامنة السجلات المعدلة و المحذوفة (SQLBulkCopy) . و بعد المزامنة يعيد قيمة الحقل status  للقيمة صفر   .

نتمنى من الأعضاء المشاركة , فربما يوجد طريقة أو أداة أسهل من هذا .

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

مهندس حسام انا متشكر جدا لاهتمامك ومقدر مجهودك معايا

 

بالنسبه للجزئيه الاولي انا انتهيت منها وهيا ان انا عامل لينك علي السيرفر الاول واشوف الجداول

 

الجزئية التانية هيا ان انا اعمل   synchronization  انا قريت فيه وحاولت حسيته عقدلي الموضوع ، اتمني لو حضرتك تساعدني بخطوات من البدايه ،

 

وشكرا .

#4

يمكنك عمل ذلك من خلال Ship Transaction log وذلك اذا كنت تستخدم SQL Server 2008

 

post-46243-0-96454200-1359888941_thumb.j

 

مرفق فيديو يوضح الطريقة

 

http://www.youtube.com/watch?v=TLvoDjTs8bo

certifiedj.jpg

 

 

Image Hosted by ImageShack.us

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…