PDA

View Full Version : یه سوال در مورد BackUp گرفتن



iman_s52
سه شنبه 08 خرداد 1386, 09:48 صبح
من تو یه برنامه امکان با نام پشتیبانی خودکار گذاشتم که برنامه تویه یه زمانی خاص که کاربر تنظیم کرده از اطلاعات پشتیبانی بگیره . مدل Overwrite اونو هم روی Append to Media گذاشتم که کاربر اگه خواست به اطلاعات 2 روز پیش خودش برگرده این امکان رو داشته باشه .
حالا سوال من اینه که چطور می تونم تعداد این Overwrite ها نذارم بیشتر از 7 تا بشه چون به مرور زمان حجم خیلی زیادی رو اشغال میکنه میخوام بعد از یک هفته که BackUp گرفت هفته جدیدفایل BackUp قبلی پاک بشه .
ممنون میشم اگه راهنماییم کنید شاید کلا روش غلطی رو در پیش گرفتم؟؟؟

CodeMasterX
سه شنبه 08 خرداد 1386, 10:18 صبح
در مورد نحوه چک کردن تعداد Overwrite ها که خودتون باید کد بنویسید و کار سختی نیست.
ولی من خودم یه نظری دارم که تو برنامه هام استفاده میکنم:

کاربری که مثلا امروز از بانک نسخه پشتیبان میگیره نیازی نداره که نسخه های پشتیبان هفته پیش رو داشته باشه چرا که آخرین نسخه از اطلاعات مربوط به امروز هست که در اختیار داره.بنابراین لزومی نداره نسخه های پیشین نسبت به آخرین Backup وجود داشته باشن و قابل دسترسی باشن.شما خودت یه کم روش فکر کن ببین درست میگم یا نه ؟

h_sadeghynejad
سه شنبه 08 خرداد 1386, 10:43 صبح
جناب CodeMasterX (http://barnamenevis.org/forum/member.php?u=34556) به نظر من همیشه حالت ایده آل نیستش و برای احتیاط هم که شده باید اطلاعات رو از یه هفته پیش رو هارد یه پشتیبانش رو داشت

h_sadeghynejad
سه شنبه 08 خرداد 1386, 10:45 صبح
من تو یه برنامه امکان با نام پشتیبانی خودکار گذاشتم که برنامه تویه یه زمانی خاص که کاربر تنظیم کرده از اطلاعات پشتیبانی بگیره .
راستش من خیلی دنبال این قضیه گشتم که چطوری بتونم BackUp گیری رو به صورت Scheduled قرار بدم میشه یه خورده منو راهنمایی بکنید

iman_s52
سه شنبه 08 خرداد 1386, 13:24 عصر
در مورد نحوه چک کردن تعداد Overwrite ها که خودتون باید کد بنویسید و کار سختی نیست.
ولی من خودم یه نظری دارم که تو برنامه هام استفاده میکنم:

کاربری که مثلا امروز از بانک نسخه پشتیبان میگیره نیازی نداره که نسخه های پشتیبان هفته پیش رو داشته باشه چرا که آخرین نسخه از اطلاعات مربوط به امروز هست که در اختیار داره.بنابراین لزومی نداره نسخه های پیشین نسبت به آخرین Backup وجود داشته باشن و قابل دسترسی باشن.شما خودت یه کم روش فکر کن ببین درست میگم یا نه ؟

این امکانی که من میگم تو برنامه با نام پشتیبانی بصورت خودکار تعریف شده که کاربر یکبار ست میکنه و برنامه بصورت خودکار تویه زمانی که تعیین کرده پشتیبانی میگیره نه اینکه کاربر .
البته می دونم که کار خیلی درستی نیست ولی میخوام اطلاعات چند روز قبل رو هم داشته باشم (یه برنامه حسابداریه)
حالا میشه لطف کنی یه کم بیشتر توضیح بدی تعداد Overwrite ها رو چطوری می تونم بدست بیارم

iman_s52
سه شنبه 08 خرداد 1386, 13:27 عصر
راستش من خیلی دنبال این قضیه گشتم که چطوری بتونم BackUp گیری رو به صورت Scheduled قرار بدم میشه یه خورده منو راهنمایی بکنید

زیاد کار سختی نیست فقط کافیه یه Job تعریف کنی و اسکریپت BackUp رو بهش بدی و زمانبندی رو هر جور که میخوای بهش میدی
البته SQL Server Agent بایستی فعال باشه.

h_sadeghynejad
سه شنبه 08 خرداد 1386, 20:19 عصر
درسته میدونم از که از کجا باید این کار رو به صورت دستی انجام بدم اما من میخوام بدون که از طریق برنامه نویسی چطوری میشه این کار رو کرد مثلا یه امکانی توی برنامه قرار داد که کاربر خودش تنظیمات رو به فارسی ببینه و اونو ست کنه

AminSobati
سه شنبه 08 خرداد 1386, 21:05 عصر
به اعتقاد من بهتره اینکه آیا فایل پشتیبان Over write بشه یا خیر رو بعهده کاربر بگذاریم. چون ممکنه بنا به هر دلیلی ممکنه نیاز پیدا کنه دیتابیس رو به دو هفته پیش برگردونه. درسته که این یعنی از دست رفتن زحمات دو هفته ورود اطلاعات، اما من شرایطی رو تجربه کردم که این بهترین راه حل بوده! پس حق داشتن آرشیو رو از کاربر نگیرید.
ضمنا شما با دستوراتی مثل:
Restore HeaderOnly
Restore FileListOnly
Restore LabelOnly
میتونین اطلاعاتی در خصوص فایلهای Backup بدست بیارین

iman_s52
چهارشنبه 09 خرداد 1386, 09:04 صبح
بله ممنون
متوجه فرمایشات شما هستم
ولی مشکل من اینه میخوام ببینم چطور میشه Count تعداد دفعات OverWrite شده رو پیدا کرد؟

AminSobati
چهارشنبه 09 خرداد 1386, 12:37 عصر
وقتی کاربر با اینترفیس برنامه شما این کار رو انجام میده، پس میتونین براحتی over write شدن رو Log کنین در جایی

iman_s52
چهارشنبه 09 خرداد 1386, 12:48 عصر
اگه نخوام از اینترفیس استفاده کنم چی ؟؟؟
راهی هست که از خود SQL این تعداد رو فهمید از خود فایل BackUp نمیشه این تعداد رو بیرون کشید ؟؟؟؟؟؟

AminSobati
چهارشنبه 09 خرداد 1386, 13:27 عصر
Backup History Tables رو در Books Online نگاهی بندازین، شاید کمکتون کنه

iman_s52
چهارشنبه 09 خرداد 1386, 13:34 عصر
مرسی نگاه می کنم ببینم چی میشه.

iman_s52
چهارشنبه 09 خرداد 1386, 17:15 عصر
نه توفیقی نکرد
میشه یه لطف کنید یه مثال واسم بذارین
آخه HeaderOnly یا FileListOnly فقط یه لیست Result بر میگردونه میشه کاری کرد که مثل یه دستور Select فقط یه ستون رو به من نشون بده رو من بنونم ازش استفاده کنم ؟؟؟؟

AminSobati
جمعه 11 خرداد 1386, 21:32 عصر
من ترفندی که به ذهنم میرسه اینه:


insert mytable exec ('restore headeronly from disk=''e:\nw.bak''')

به شرط اینکه جدول mytable قبلا با تعداد فیلدهای مورد نیاز ساخته شده باشه. البته این روش رو تست نکردم

iman_s52
شنبه 12 خرداد 1386, 08:36 صبح
ممنون از توجهتون اینو تو اولین فرصت تست می کنم .