PDA

View Full Version : سوال: همزمان سازي دو ديتابيس



I,Nobody
پنج شنبه 10 تیر 1389, 12:14 عصر
سلام دوستان.
اين سوال بيشتر ديتابيسي هست. ولي احتمال اينكه بچه هاي PHP نويس تجربه اش رو داشته باشن، بيشتره.
من مي خوام عمل همزمان سازي دو پايگاه داده رو انجام بدم كه يكي روي كامپيوتر لوكال نصب هست و به عنوان ديتابيس اول هست. ديگري هم روي يك سرور اينترنتي.
همونطور كه در CPanel مي بينيد، امكان remote access به ديتابيس، فقط به آي پي شناخته شده داده ميشه. پس نميتونم از كامپيوتر local، به ديتابيس سرور اينترنتي متصل بشم چون آي پي ثابتي ندارم.
فكر كنم بهتر باشه كه اسكريپت همزمان سازي رو روي سرور اجرا كنم و از اونجا به ديتابيس لوكال متصل بشم. اما نمي دونم چه آدرسي به عنوان آدرس سرور ديتابيس لوكال بايد بدم؟

آيا كسي تجربه اين كار رو داره؟ يا راهي به فكرش مي رسه؟

Tnx All

Reza1607
پنج شنبه 10 تیر 1389, 12:19 عصر
سلام
من تجربش رو ندارم ولی حتما می دونید که هر وقت وصل به اینترنت میشین یه IP به شما اختصاص پیدا می کنه پس شما یک فرم طراحی کنید تا اطلاعات سیستم شما رو مثل آدرس IP ، رمز عبور پایگاه داده و کاربر رو از شما دریافت کنه و یا این اطلاعات عملیات اتصال به پایگاه داده رو انجام بده
یعنی هربار شما این کار رو به صورت دستی انجام می دین

I,Nobody
پنج شنبه 10 تیر 1389, 16:00 عصر
مرسي از جوابت.
ولي آي پي مجاز به دسترسي رو نميشه دايناميك تعيين كرد.

امیـرحسین
پنج شنبه 10 تیر 1389, 22:24 عصر
اینا رو مطالعه کنید شاید چیز به دردبخوری توش باشه: WAMP as internet web server (http://www.wampserver.com/phorum/read.php?2,31890,31896)

I,Nobody
پنج شنبه 10 تیر 1389, 23:15 عصر
امير حسين جان تشكر.
ولي اين كمكن نمي كنه.

pashaie
جمعه 11 تیر 1389, 08:10 صبح
یه روش پیشنهادی:
هم تو اسکریپت لوکالت و هم تو سرور یه سیستم لاگ نویسی ایجاد کن که هر کوئری ایجاد، ویرایش و حذف رو با تاریخ و ... ذخیره کنه.
یه پیج تو سرور ایجاد کن که لاگ رو از لوکال بگیره و کوئری ها رو تو سرور اعمال کنه.
همین کار رو هم واسه لوکال کن تا با سرور هماهنگ بشه.

یه روش دیگه:
به تمام جدولات یه فیلد اضافه کن که مشخص کنه اون سطر با سرور همگام هست یانه.
موقع ایجاد و ویرایش مقدار 0 بهش بده. از روی مقادیر 0 یه لاگ مثل روش قبل بساز و به سرور ارسال کن. از روی پاسخ سرور که چه سطر های اعمال شدن، (سرور در صورت اعمال بدون مشکل اون سطر اسم جدول شماره id رو برمی گردونه) سطر مورد نظر رو 1 کن.

البته این روش ها رو خودم بصورت عملی پیاده سازی نکردم.
یک پروژه ای بود که نیاز به کار کردن آف لاین هم داشت. ولی وسطای کار کنسل شد. این دو روش هم اون موقع به ذهنم رسید ولی قبل از پیاده سازی و چک کردن اینکه بدون مشکل هستند یا نه، کنسل شد.

راستی تو دنیای دات نت (که بنده هم کمک کم واردش می شم) ماکروسافت یه فریم ورک داده کلا واسه همین کار به اسم Microsoft Sync Framework
پیش نهاد می کنم که یه سری به وب سایتش بزنی. اونجا یحتمل مکانیزم سینک کردن دیتابیس ها رو توضیح داده.

I,Nobody
دوشنبه 14 تیر 1389, 17:28 عصر
pashaei جان ممنون.
اون سيستم لاگ گيري، راه حل جالبي بود.
بايد بسنجم ببينم برام مناسب هست يا نه؟
اگه از اين روش استفاده كردم، حتماً نتيجه رو بهت مبگم.

rapidpich
دوشنبه 14 تیر 1389, 19:58 عصر
تو cpanel میتونی برای اضافه کردن ip خودت آخرشو % بدی
مثلا اگه ip اینترنت تو هست
123.123.123.333
و اون قسمت آخر 333 هی عوض میشه
آی پی تو تو cpanel وارد کن


123.123.123.%


این % سمت راسته که اینجا ادیتورش سمت چپ میزاره!

I,Nobody
سه شنبه 15 تیر 1389, 00:11 صبح
rapidpich جان، متشكرم.
ولي همونطور كه ميبينيد، بايد يه رنج آي پي مشخص شده بديم.
هر چي رنجمون بزرگتر باشه، امنيتمون پايينتره. هر چي رنجمون كوچكتر باشه، احتمال صحت هميشگي آي پي كمتره.
كلاً اين روش رو نمي پسندم مگر اينكه راهي پيدا نكنم.
البته دارم يه راههايي پيدا مي كنم. اگه به نتيجه رسيدم، حتماً اعلام مي كنم.