PDA

View Full Version : ریستور کردن دیتابیس



haamidd
پنج شنبه 11 تیر 1394, 12:14 عصر
تا اونجایی که من اطلاع دارم برای ریستور کردن دیتابیس یک سایتی که در حال کاره به این صورت است که ابتدا باید سرویس اون سایت رو در IIS استاپ کنیم و بعد یکبار sqlserver رو ریستارت کنیم تا connetion ها از دیتابیس مذکور قطع بشن و هیچ اتصالی به دیتابیس وجود نداشته باشه و بعد میایم و دیتابیس رو ریستور میکنم...

حالا اینجا یک سوال برام پیش اومده!
خب اگر کاربری در حین انجام عملیات بانکی بود و ما سرویس سایت را استاپ کنیم.... خب تکلیف پولی که رد و بدل شده و در سایت ثبت نشده چی میشه؟ تکلیف کارهایی که باید بصورت پشت سرهم انجام بشه چی میشه؟ و غیره



ممنون از راهنماییتون

pezhvakco
پنج شنبه 11 تیر 1394, 16:12 عصر
خب تکلیف پولی که رد و بدل شده و در سایت ثبت نشده چی میشه؟ تکلیف کارهایی که باید بصورت پشت سرهم انجام بشه چی میشه؟
تکلیف را برنامه نویسی که دستورات پایگاه داده رو نوشته، مشخص می کند و برای این کار باید کمی بیشتر درباره ابزار ها و استاندارد های این ساختار کدنویسی می خونده تا با
مدیریت تراکنش ها و مفهوم ACID
Atomicity Consistency Isolation Durability
آشنا باشد.

haamidd
جمعه 12 تیر 1394, 10:22 صبح
خب میشه یک مقدار من رو راهنمایی کنین در این مورد، من خودم برنامه رو نوشتم و هنوز برنامه مورد استفاده قرار نگرفته و این مورد هم به ذهنم خطور کرد و اومدم از شما راهنمایی بگیرم در این مورد، اگر مقاله ایی کتابی یا چیزی هست لطفا راهنمایی کنین و اکر نیست لطفا باز راهنمایی کنین ممنون :لبخند:

خدا خیرتون بده

golbafan
جمعه 12 تیر 1394, 11:08 صبح
معمولا در این مواقع کل سرور رو نمیخوابونن
شما باید برای شروع دید کافی در رابطه به استفاده از سرورهای بلید و روشهای acid داشته باشید:

ویکیپدیا:
اسید (به انگلیسی (https://fa.wikipedia.org/wiki/%D8%B2%D8%A8%D8%A7%D9%86_%D8%A7%D9%86%DA%AF%D9%84% DB%8C%D8%B3%DB%8C): ACID) که از سرکلمه کلمات یکتایی (https://fa.wikipedia.org/w/index.php?title=%DB%8C%DA%A9%D8%AA%D8%A7%DB%8C%DB% 8C&action=edit&redlink=1&preload=%D8%A7%D9%84%DA%AF%D9%88%3A%D8%A7%DB%8C%D8 %AC%D8%A7%D8%AF%2B%D9%85%D9%82%D8%A7%D9%84%D9%87%2 F%D8%A7%D8%B3%D8%AA%D8%AE%D9%88%D8%A7%D9%86%E2%80% 8C%D8%A8%D9%86%D8%AF%DB%8C&editintro=%D8%A7%D9%84%DA%AF%D9%88%3A%D8%A7%DB%8C% D8%AC%D8%A7%D8%AF%2B%D9%85%D9%82%D8%A7%D9%84%D9%87 %2F%D8%A7%D8%AF%DB%8C%D8%AA%E2%80%8C%D9%86%D9%88%D 8%AA%DB%8C%D8%B3&summary=%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF%2B%DB%8C%DA %A9%2B%D9%85%D9%82%D8%A7%D9%84%D9%87%2B%D9%86%D9%8 8%2B%D8%A7%D8%B2%2B%D8%B7%D8%B1%DB%8C%D9%82%2B%D8% A7%DB%8C%D8%AC%D8%A7%D8%AF%DA%AF%D8%B1&nosummary=&prefix=&minor=&create=%D8%AF%D8%B1%D8%B3%D8%AA%2B%DA%A9%D8%B1%D8% AF%D9%86%2B%D9%85%D9%82%D8%A7%D9%84%D9%87%2B%D8%AC %D8%AF%DB%8C%D8%AF)، قابلیت اطمینان (https://fa.wikipedia.org/wiki/%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA_%D8%A7%D8%B7% D9%85%DB%8C%D9%86%D8%A7%D9%86)، انزوا (https://fa.wikipedia.org/wiki/%D8%A7%D9%86%D8%B2%D9%88%D8%A7) و پایداری (https://fa.wikipedia.org/wiki/%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1%DB%8C) تشکیل شده (Atomicity, Consistency, Isolation, Durability)، خصوصیتی است که در اکثر پایگاه داده‌ها و در انجام تراکنش‌ها باید پیاده‌سازی شود.این مشخصه در تراکنش‌های بانک‌ها بیشتر مورد توجه قرار می‌گیرد زیرا یک مجموعه عملیات تراکنش باید به شکل یک عملیات در نظر گرفته شود تا تراکنش با موفقیت صورت گیرد به طور مثال تراکنش انتقال وجه از یک حساب به حساب دیگر،باید دو عملیات به شکل کامل انجام شود.

--------
بنابرین دوست عزیز، شما باید تا انجام نشدن کامل عملیات و ثبت در دیتابیس، پولی رو از کاربر کم نکنی و در صورت هرگونه اشتباه فرضی باید عملیاتی برای بازگشت پول به حساب وی درنظر بگیری
همه عملیاتها رو باید یکپارچه کنی تا درصورت مواجهه با مشکلی در هر مرحله، عملیات برگشت انجام بشه:


:ATOMIC(1
یاهمه ی تغییرات داخل TRANSACTIONباید ماندگار شوند و یا همه غیر ماندگار.

:CONSISTENT2)
تغییراتیکه در داخل یک transaction بر روی اطلاعات اعمال می شوند نباید با قواعد وضع شده برای دریافت
اطلاعات ناسازگار باشد.

:ISOATED3)
هنگامی که یکTRANSACTION در حال تغیر اطلاعات می باشد و هنوز تغییرات خود را ROLLBACK یا COMMIT
نکرده سایر کاربران نباید بتوانند اطلاعات در این وضعیت را تغییر دهند.

:DURABLE4)
هنگامی کهTRANSACTION به پایان می رسد تغییرات اعمال شده توسط آن باید در سیستم پایدار باشد
حتی در صورت بروز اشکال نرم افزای یا سخت افزاری.