• 0
mokadem2000

من خلال خادم ويب، إنشاء نسخة مطابقة من قاعدة البيانات Database Replica

سؤال

السلام عليكم ورحمة الله وبركاته ،،،

WebReplica.zip

بإستخدام (MS-Access 2003)

كثيراً نحتاج إلى العمل المتوازى فى قاعدة بيانات (أى أكثر من شخص يدخل أو يعدل بيانات)، أو احياناً نحتاج لتحديث جزء من قاعدة بيانات من خلال قاعدة بيانات أخرى، أو عمل نسخ احتياطى ، ... الخ من هذه التطبيقات التى تحتاج لتزامن Synchronization اكثر من قاعدة بيانات لتطابق البيانات فيما بينهم، وقواعد البيانات هذه فى أماكن مختلفة، ونريد عمل التزامن من خلال الشبكة.

للمزيد من التفاصيل حول مفهوم تزامن البيانات راجع: إنشاء نسخة مطابقة من قاعدة البيانات Database Replica

توفر مكتبة Microsoft Jet and Replication و كذلك Microsoft DAO إمكانية عمل Database Replica، كذلك يوجد برنامج مساعد مع MS-Office 2000 Developer Edition لإتمام ذلك، وهذا البرنامج المساعد هو Replication Manager 4.0 ويكون موجود فى المجلد "C:\Program Files\Common Files\Microsoft Shared\Replication Manager 4.0"، والبرنامج التنفيذى الرئيسى هو replman.exe، إذا لم يكن موجود لديل حمله من هنا، وأضف الملفات الناقصة لديك، ويعمل أيضاً مع Access 2003. تأكد أولاً من حصولك على أخر إصدار من Microsoft Jet، وتأكد من وجود هذه القيم فى مسجل النظام Registry فى المسار: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Replication Manager

LEFT TO RIGHT
Path=C:\Program Files\Common Files\Microsoft Shared\Replication Manager 4.0\replman.exe

InetServerScriptsRoot=C:\Inetpub\Scripts

SynchronizerPath=C:\Program Files\Common Files\Microsoft Shared\Replication Manager 4.0\mstran40.exe

أو قم بتحميل الملف المرفق rm4Reg.zip بإفتراض وجود الـ Windowsعلى الـ :C، أو قم بتعديل المسار فى الملف والكود السابق بما يناسب إعداداتك.

ولعمل Replica من خلال خادم ويب، يجب تجهيز الخادم اولاً:

  1. قم بإنشاء خادم ويب إذا لم يكن جاهز.
  2. قم بإنشاء مجلد ويب يمكن من خلاله تنفيذ CGI، وليكون فى المسار (C:\Inetpub\Scripts) واسم الـ (Virtual Directory) هو Scripts، وأنسخ فيه الملف MSTRAI40.EXE
  3. قم بإنشاء مجلد ويب يمكن القراءة منه والكتابة إلية، وليكن فى المسار (C:\Inetpub\Drop box) واسم الـ (Virtual Directory) هو Drop box، ولا تنس ضبط صلاحيات الأمان إذا كان على Drive يستخدم NTFS، بحيث يكون لمجموعة المستخدمين (Users Group) حق القراءة والكتابة.
  4. قم بإضافة الإمتدادين (msg - .tmp.) لـ Web site header MIME map و خصص "Application/octet-stream" لـ Content type
  5. لمزيد من الشرح والتوضيح راجع: إجعل جهازك خادم صفحات ويب Web Server، تثبيت Internet Information Services

لعمل Replica من خلال خادم ويب، وبعد تجهيز الخادم كما سبق، وتحميل برنامج Replication Manager على الخادم

يجب إعداد برنامج Replication Manager على الخادم، لأن بيانات الخادم سيتم إضافتها لقاعدة البيانات Design Master، حيث سيتم تحويل قاعدة البيانات (يتم إضافة عدة جداول نظام مخفية لقاعدة البيانات لإدارة عملية الـ Replica) بإستخدام برنامج Replication Manager على جهاز الخادم وليس بإستخدام MS-Access، وتعرف هذه القاعدة بإسم Design Master، وهى المسموح فيها بتعديل هيكل وتصميم قاعدة البيانات، وعند عمل Replica منها، فلا يسمح للنسخة بتعديل التصميم فيها، ويمكن التحكم بعدة خواص مثل جعلها للقراءة فقط، أو عدم امكانية الحذف، وأى تعديل فى تصميم قاعدة البيانات فى الـ Design Master سيظهر فى الـ Replica عند عمل مطابقة أو تزامن Synchronization.

بإستخدام Replication Manager 4.0 على الخادم (Web Server)، قم بعمل التالى:

  1. إعداد وتجهيز بيانات الخادم

    1. قم بتشغيل Microsoft Replica Manager الملف (replman.exe) فى المسار (C:\Program Files\Common Files\Microsoft Shared\Replication Manager 4.0\replman.exe) post-98027-1181335141_thumb.jpg

    2. إذا كانت هذه أول مرة تشغيل سيظهر لك Configuration Replication Manager، إذا لم يظهر أختاره من قائمة Tools post-98027-1181335152_thumb.jpg

    3. ستظهر لك الشاشة الأولى، أضغط Next post-98027-1181335176_thumb.jpg

    4. ستظهر لك شاشة لإختيار تزامن غير مباشر، اضغط Next دون وضع علامة post-98027-1181335244_thumb.jpg

    5. ستظهر لك شاشة للسؤال إذا كان هذا خادم انترنت، أختر Yes وأضغط Next post-98027-1181335293_thumb.jpg

    6. ستظهر لك شاشة للسؤال إذا هذا الخادم يقوم بتزامن قاعدة البيانات، أختر Yes وأضغط Next post-98027-1181335316_thumb.jpg

    7. ستظهر لك شاشة للسؤال عن اسم الخام، أدخل اسم الخام (بدون //:http أو www) أو ادخل رقم IP الخاص بالخادم post-98027-1181335339_thumb.jpg

    8. ستظهر لك شاشة للسؤال عن اسم وموضع مجلد Scripts الذى سبق واعددناه post-98027-1181335363_thumb.jpg

    9. ستظهر لك شاشة للسؤال عن اسم مجلد Drop box الذى سبق واعددناه post-98027-1181335379_thumb.jpg

    10. ستظهر لك شاشة للسؤال عن أولويات طريقة التزامن post-98027-1181335395_thumb.jpg

    11. ستظهر لك شاشة للسؤال عن موضع تخزين ملف تسجيل الاحداث والاخطاء Log file أضغط Next
    12. ستظهر لك شاشة للسؤال عن أسم الذى سيٌعرض، أكتب الاسم واضغط Next post-98027-1181335417_thumb.jpg

    13. ستظهر لك شاشة تخبرك بإنتهاء العملية بنجاح، أضغط Finish Next post-98027-1181335454_thumb.jpg

    14. سيسألك عن نسخ الملف mstrai40.exe إلى مجلد Scripts، أضغط Yes
    15. الأن تم الإعداد بنجاح post-98027-1181335468_thumb.jpg


    16. إعداد وتجهيز قاعدة البيانات
      1. إنشاء قاعدة بيانات جديدة (بإستخدام الأكسس)، وليكن أسمها WBase.mdb، تحتوى عدة جداول مثلاً (Departments - Employees - Positions) post-98027-1181335122_thumb.jpg

      2. قم يتحويل قاعدة البيانات إلى Design Master من قائمة Tools أختر Convert Database to Design Magter post-98027-1181335489_thumb.jpg

      3. سيظهر لك صندوق فتح ملف، أخر قاعدة البيانات السابق إنشاؤها WBase.mdb وأضغط OK، ستظهر لك شاشة أخرى أضغط Next
      4. ستظهر لك شاشة للسؤال عن عمل نسخة احتياطية من قاعدة البيانات (bak.) أختر Yes وأضغط Next
      5. ستظهر لك شاشة للسؤال عن وصف قاعدة البيانات أكتب الوصف وأضغط Next post-98027-1181335513_thumb.jpg

      6. ستظهر لك شاشة للسؤال إذا كنت ترغب فى عمل تزامن لكل العناصر الموجوده فى قاعدة البيانات (الإختيار الأول)، ام تحديد عناصر محددة (الاختيار الثانى)، أضغط Next post-98027-1181335540_thumb.jpg

      7. ستظهر لك شاشة للسؤال إذا كنت ترغب فى عملها للقراءة والكتابة (الإختيار الأول)، ام للقراءة فقط (الاختيار الثانى)، أضغط Next post-98027-1181335567_thumb.jpg

      8. ستظهر لك شاشة أختر عدم إدارة التزامن (الأختيار الثانى)، أضغط Next post-98027-1181335583_thumb.jpg

      9. الأن تم إعداد قاعدة البيانات بنجاح post-98027-1181335604_thumb.jpg

      10. post-98027-1181335626_thumb.jpg

      11. من قائمة File أختر Managed Replica ثم أضغط Mange New وأختر قاعدة البيانات التى سبق إعدادها WBase.mdb ثم أضغط Open post-98027-1181335652_thumb.jpg

      12. post-98027-1181335674_thumb.jpg

      13. أترك Synchronizer يعمل ولا تنهى عمله post-98027-1181335685_thumb.jpg

[*]إنشاء Replica من خلال MS-Access 2003، على الخادم

  1. قم بقتح الملف WBase.mdb - بعد أن تم تحويله إلى Design Master - ببرنامج MS-Access
  2. من قائمة Tools أختر Replication ثم Create Replica

    post-98027-1181335717_thumb.jpg


  3. أختر أسم الملف الـ Replica وليكن WBaseReplica.mdb مثلاً

    post-98027-1181335733_thumb.jpg


  4. ستظهر لك رسالة تخبرك بضرورة إغلاق قاعدة البيانات، أضغط Yes
  5. الأن تم إنشاء Replica بإسم WBaseReplica.mdb يمكنك نسخها (وضعها على الخادم وتحميلها أو من خلال Flash memory أو Sharing folder أو ... الخ) و توزيعها على الاجهزة الاخرى، وفتحها من خلال اكسس والتعامل معها، وعمل مزامنة مع الخادم
  6. الأن فى قاعدة البيانات WBase.mdb أفتح الجدول Positions، وأضف حقل جديد ("مدير" مثلاً)
  7. قم بقتح الملف WBaseReplica.mdb
  8. من قائمة Tools أختر Replication ثم Synchronize now

    post-98027-1181335746_thumb.jpg


  9. ستلاحظ إمكانية عمل تزامن من خلال خادم الإنترنت

    post-98027-1181335817_thumb.jpg


  10. عند نجاح التزامن ستجد رسالة تفيد بذلك

    post-98027-1181335836_thumb.jpg


  11. راجع البيانات فى قاعدتى البيانات ستجدهم متطابقين (بالنسبة للجداول فى نطاق Replica)
  12. احذف أو أضف أو غير فى احدهم، أو أضف فى احدهم واحذف فى الاخر، ثم قم بعمل Synchronization، ستجد القاعدتين متطابقين
  13. جرب ذلك من أى جهاز أخر يمكنه الوصول لخادم الإنترنت، ستجد نجاح عملية التزامن
  14. بالتالى يمكنك عمل تزامن من خلال الإنترنت من أى مكان تستطيع منه الإتصال بالخادم
  15. ملحوظة: إذا كنت تريد تحويل قاعدة البيانات إلى Design Master فى أى وقت (مثلاً لم تجد WBase.mdb كذلك نتيجة لنقلها)، فقم بفتح قاعدة البيانات، ثم من قائمة Tools أختر Replication ثم Recover Design Master

    post-98027-1181335964_thumb.jpg


كما يمكنك عمل Replica من خلال الكود، يجب إضافة المرجع Microsoft Jet and Replication Objects Library

post-98027-1181335946_thumb.jpg

تتيح لك دوال Replica مرونة كبيرة فى التعامل، فالدالة MakeReplicable تسمح لك بإنشاء Replica جديدة، والدالة Synchronize تسمح لك بتزامن البيانات (استيراد - تصدير - استيراد وتصدير) ويمكن استخدامها كالتالى:


dbData.ActiveConnection = "C:\WBase.mdb"
Call dbData.Synchronize("http://192.168.1.10", jrSyncTypeImpExp, jrSyncModeInternet)
	Dim dbData As New JRO.Replica

jrSyncTypeImpExp: استيراد وتصدير

jrSyncTypeImport: استيراد

jrSyncTypeExport: تصدير

راجع: إنشاء نسخة مطابقة من قاعدة البيانات Database Replica - إجعل جهازك خادم صفحات ويب Web Server، تثبيت Internet Information Services - تزامن تطابق البيانات بين عدة قواعد بيانات

شكراً

rm4Reg.zip

repmng4.zip

تم تعديل بواسطه Eng. Usama El-Mokadem
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

15 إجابة على هذا السؤال .

  • 0

دائماً مبدع أخي اسامه

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

فعلاً عمل أكثر من رائع وقد استفدت من خبراتك الكثير الكثير أثابك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

اسأل الله العظيم أن يوفقك ويجزاك كل خير على ماتقدمه لنا من علم

نافع .. والله كل مشاركاتك تعتبر مرجعا لنا جميعا .. لا نجد مكافأة مناسبة

لحجم عملك .. الا الدعاء لك بظهر الغيب .. أن يجعل لك السعادة حليفا في الدارين الآخرة والأولى

تقبل تحيات / تلميذك المحب EKSEER

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

استاذ اسامه لك جزيل الشكر على المواضيع الممتازة والمتقدمة .... وفقك الله وسدد خطاك واثابك عنا خير الجزاء .........موضوع رائع B)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

مجرد رؤية اسمك تغري بالدخول والقراءة لساعات بارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله الف خير وجعله في ميوان حسناتك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي المهندس أسامة

جزاك الله خيراً

كعادتك وضعت علامة أخرى في المنتدى

موضوع رائع ومفيد جداً

مرة أخرى جزاك الله خيراً

وأنا في انتظار موضوعك التالي

مع خالص تحياتي

أخوك رضا عقيل

تم تعديل بواسطه رضا عقيل
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله كل خير و جعلة هذا الموضوع فى ميزان حسناتك يا ارحم الراحمين

اللهم تقبل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الف شــــــــــــــــــــــــــــــــكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

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

وعندي سؤال اكرمك الله اخي اسامة هل يصلح هذا مع ال SQL أم لا لأنى محتاج هذا جدا جدا بارك الله فيك

لأن عندي قاعدة بيانات على الويب SQL وقاعدة بيانات على السيرفر المحلي ومحتاج أحدث بيانات فى القاعدتين بحيث لو أدخلت بيانات أو

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

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

على الويب يقوم بتحديثها فهل يصلح هذا ومع قاعدة بيانات من نوع SQL أم لا

وبارك الله فيك وشكرا لك على الموضوع المفيد أخي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيك أخي الغالي اسامة

عمل أكثر من ممتاز

شكرا لك وجعل الله في كل حرف كتبتة حسنة والله يضاعف لمن يشاء

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ماشاء الله موضوع حلو

اعطاك الله كل خير في الدنيا والاخرة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
هل يصلح هذا مع ال SQL أم لا

يوجد فى SQL أداة Replication خاصه به تختلف تماماً عن هذه الأداة، لأداء ذلك.

راجع: http://www.codeproject.com/KB/database/MergeReplication.aspx

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .