PDA

View Full Version : مشکل در جمع آوری اطلاعات شعب از طریق SQL



m_s_zamani
چهارشنبه 02 دی 1388, 21:51 عصر
با سلام خدمت دوستان
من نیازبه راهنمایی در مورد رفع این مشکل دارم....
شرح مشکل به این صورته که یه برنامه مالی هست که توی شعب شرکت اجرا میشه و نیاز هست هر روز پایان کار اطلاعات به مرکز ارسال بشه و از طریق برنامه تجمیعی کنترل بشه...
مشکل اینجاست که حجم دیتا ها در شعب خیلی بالاست 1Gb و تغییرات روزانه حداکثر 10Mb میشه و به خاطر این مقدار کم هر روز باید کل داده ها رو پشتیبان گیری کنیم و با دی وی دی ارسال کنیم...
البته تمام شعب از طریق خطوط لیزلاین به هم متصله اما این حجم رو نمیشه از این طریق ارسال کرد...
حالا من دنبال روشی هستم که بتونم فقط تغییرات رو هر روز بردارم و به مرکز بفرستم...
(قابل ذکر هست که برنامه نویس و طراح دیتا بیس یه شرکت دیگه هست که کمکی تو این زمینه نمیکنه و چون سیستم مالی هست حساسیت روش زیاده...)

طبق اطلاعات و تلاش هایی که کردم 3 حالت میشه اینکار رو کرد:
1- BackUp گیری و Restore کردن به صورت Differentional و بعد بازیابی اما این روش جواب نمیده و خطای 42000 میده؟!

2- تعریف job برای BackUp گیری به صورت Transactional و بعد بازیابی

3- Replication داشتن بین شعب و مرکز

اما هیچ کدوم از این کارا جواب نمیده فکر کنم تو تنظیمات امنیتی محدودیت گذاشتن؟ آیا میشه همچین کاری کرد؟
دوستان بهترین راه حل که از نظر اجرایی آسان هم باشه رو معرفی و راهنمایی کنند ممنون میشم....

Beyondsoft
پنج شنبه 03 دی 1388, 14:50 عصر
سلام دوست عزیز !

شما اصلاً شبکه نیستید ! منظورم این است که شما باید از سرور ها به صورت متمرکز استفاده کنید و تمامی شعب مختلف به سرور اصلی متصل باشند و Live تمامی اتفاقات صورت بگیرد !

حال اگر به دلیل عدم پایداری خطوط اینترنتی این کار به صورت local صورت می گیرد، می توان تمام اطلاعات در پایان ساعت کاری با یکدیگر تبادل شده و یکسان سازی شوند ( که این کاری است اصولی که معمولاً صورت می گیرد، اما وظیفه شما نیست، در واقع برنامه نویس باید این امکان را ایجاد کرده باشد که با زدن یک دکمه این sync صورت بگذیرد )


اما حالا شما گرفتار این مسئله شده اید و مجبورید این مشکل را به همین شکل که هست حل کنید فکر می کنم همان backup گرفتن به صورت incremental و یا deferential مشکل شما را حل کند، بهتر است روی علت اشکل خود تمرکز کنید !

m_s_zamani
دوشنبه 07 دی 1388, 18:47 عصر
با سلام خدمت دوست عزيز و تشكر از جوابتون

بين شعب مذكور شبكه هست امنا هم سرعت اتصال فعلا كمه و هم بنا به دلايلي به صورت آنلاين عمليات انجام نميشه ...
اما در مورد اينكه برنامه نويس يا شركت فروشنده اين كار رو انجام بده كه البته بهترين كار همينه اما بازم بنا به دليل اختلاف موسسه با شركت برنامه نويس اينكار ههنوز به تاخير افتاده .... و در اين مدت بايد از اين راه حل ها استفاده كنيم...
اين برنامه تقريبا يه برنامه مالي هست كه از نظر طراحي بانك اطلاعاتي امنيت زيادي روش بكار رفته بك آپ كلي كه ميگيريم مشكلي نيست و از كل ديتا بيس به صورت كلي بك ميگيره اما بعد از يك روز كاري كه ميخواييم از تغييرات بك بگيريم اينكارم بدون مشكل انجام ميشه ولي هنگام Restor روي بانك اصلي مرگز شعبات خطاي 42000 ميده و ميگه نميتونم اين كار رو انجام بدم...

از عمليات BACKUP گيري به صورت Transactional هم استفاده كردم اونم جواب نميده... شايدم من كامل بلد نبودم

يه سئوال هم داشتم آيا ميشه روي ديتا بيبس رولي جهت امنيت گذاشت كه نشه بكاپ Differential يا incremental گرفت؟؟
اگر مقاله يا راهنمايي براي اينكار و مخصوصا در مورد خطاي 42000 دارين لطف كنميد بديد ممنون ميشم...

AminSobati
دوشنبه 07 دی 1388, 19:48 عصر
سلام دوست عزیزم،
برای انتقال تغییرات از شعب به مرکز، Backup/Restore نمیتونه راه حل باشه. بهترین روش Replication هست

ghaderrostamy
سه شنبه 08 دی 1388, 13:48 عصر
دوست عزيز - خوب توجه كنيد :
الف - بهترين راه حل برقراري Replaication است به شرطي كه زياد تغيير ساختار يا افزايش Table نداشته باشيد .
ب - راه حل دوم كه ما حدودا 6 سال است از آن استفاده ميكنيم و كاملا از آن رضايت داريم بازيابي فايل بك آپ لاگ در بازه هاي زماني قابل تنظيم است به نحوي كه در موقع بازيابي گزينه WITH STANDBy فعال باشد . با اين روش شما در آخر هر روز كل ديتابيس شعبه را به صورت Read-Only و Standby در تهران خواهيد داشت .
مشكلي بود در خدمتيم.
موفق باشيد .

m_s_zamani
سه شنبه 08 دی 1388, 16:02 عصر
ممنون از راهنمایی شما دوستان
بله منم نظرم روی Replaication است و تغییرات ساختاری توی دیتا بیس نداریم همش افزایش عملیات و تراکنش های روزانه هست نه جدولی اضافه و حذف میشه نه فیلدی ....

اما مشکل اینجاست که این عملیات Replaication صورت نمیگیره و خطا میده ....

آیا میشه روی دیتا بیسی رول های امنیتی گذاشت که نشه روی اون Replaication تعریف کرد؟

AminSobati
سه شنبه 08 دی 1388, 22:42 عصر
پیغام خطا که دریافت میکنید پست کنین و توضیح بدین دقیقا چه موقع پیغام ظاهر میشه

m_s_zamani
چهارشنبه 09 دی 1388, 10:51 صبح
پیغام خطا که دریافت میکنید پست کنین و توضیح بدین دقیقا چه موقع پیغام ظاهر میشه

ممنون جناب Sobati
من تا چند روز دیگه دسترسی به این سیستم ندارم حتما به محض دسترسی اطلاعات لازم به همراه اتفاقاتی که رخ میده رو ارسال میکنم
یه ئوال هم داشتم تو یه سیستم local بدون شبکه نمیشه Replaication رو تست و برقرار کرد اینجوری اگه راه حلی داره بگید میتونم زودتر مشکل رو حل کنم؟

majjjj
چهارشنبه 09 دی 1388, 10:57 صبح
خوب اگه شبکه ای وجود نداشته باشه از کجا میخواهید دیتا رو ارسال کنید

AminSobati
چهارشنبه 09 دی 1388, 14:47 عصر
شما روی یک سیستم میتونین چند Instance نصب کنین و Replication رو عینا راه اندازی و تست کنین

majjjj
پنج شنبه 10 دی 1388, 07:26 صبح
شما روی یک سیستم میتونین چند Instance نصب کنین و Replication رو عینا راه اندازی و تست کنین
حق با شماست اینجوری امکانش هست