PDA

View Full Version : نحوه درست بک آپ گیری در اس کیو ال



ASPX
پنج شنبه 16 آذر 1385, 15:40 عصر
من یک برنامه کوچک سی شارپ و بانک اطلاعاتی ساخته ام
یک قسمت میخوام براش بنویسم که کاربر بتونه با دادن مسیر فیل پشتیبان رو ذخیره کنه و بعد هم اون رو باز کنه

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

عفت بزرگه
پنج شنبه 16 آذر 1385, 16:28 عصر
اگر بانکت ای کیو ال است که بیچاره ای خیلی کار داره . من این کارو کردم ولی الان حوصله ندارم تا شنبه برات میزارمش بردار

SabaSabouhi
پنج شنبه 16 آذر 1385, 16:42 عصر
سلام
اول یک Backup Device بساز، براى این کار باید از StoredProcedure از پیش نوشته شده‌ى sp_addumpdevice استفاده کنى. (در Books online خیلى خوب توضیح داده و مثال زده)
مثال براى ذخیره روى دیسک سخت:



EXEC sp_addumpdevice 'Disk', 'MyBackupDevice', 'C:\MyBackupFile.bck'



بعد خیلى راحت با فرمان BACKUP DATABASE (که باز در Books online توضیح کامل آن وجود دارد) Backup خود را بگیر.
مثال:



BACKUP DATABASE MyDatabase TO MyBackupDevice WITH NAME 'MyTestBackup'



صبا صبوحى

ASPX
پنج شنبه 16 آذر 1385, 16:53 عصر
درسته ! ممنون ولی چه طوری این بک آپ ها رو بازیابی کنم.یعنی با یک دکمه که توی فرممو ن داریم بگیم آخرین نسخه بک آپ (که حالا ساختیم)رو واسه ما تو بانک قرار برده من تو الین نکته آخر مشکل دارم بانک به من اجازه نمیده

هی ارور دریافت میکنم!

SabaSabouhi
یک شنبه 19 آذر 1385, 10:22 صبح
با سلام
دنبال این کار نباش، کار بازیابى باید توسط DBA به صورت مستقیم انجام بشه.
اما اگه باز اصرار دارى که توسط برنامه انجام بشه ابتدا باید تمام Proccessهایى را که روى SQL Server به Database مورد نظر شما Connect هستن رو Kill کنى چون تا وقتى که به پایگاه‌داده‌هاى شما Connectionى وجود دارد SQLServer اجازه‌ى Restore کردن نمى‌دهد.
در Enterprise Manager این کار را در قسمت Management~CurrentActivities انجام مى‌دهیم، اما توسط procedureهاى سیستم نمى‌دانم. (البته مى‌دانم که حتماً وجود دارد)
باید خودتان در Books Online دنبال آن بگردید.

اما باز توصیه مى‌کنم که کار بازیابى حتماً توسط DBA و در ارتباط مستقیم با SQL Server انجام شود. تصور کنید که به صورت اشتباهى توسط یک اپراتور Backup دوماه پیش روى Server بازیابى شود. به نظر من این کار باید فقط توسط یک شخص داراى صلاحیت انجام شود و در اختیار افراد دیگر نباشد.

صبا صبوحى

عفت بزرگه
یک شنبه 19 آذر 1385, 13:50 عصر
راه داره خوب هم داره تا شب کلش رو به صورت سورس میزام الان کلاس دارم باید برم تا شب صبر کن

ebi_isf
یک شنبه 19 آذر 1385, 14:06 عصر
چگونه می توان طوری restore نمود که اطلاعات قبلی بانک از بین نرود و در واقع اطلاعات backup انتهای آن اضافه شود و نه این که جایگزین آن شود؟

iman_s52
دوشنبه 27 آذر 1385, 06:35 صبح
البته قبلش بایستی KillProcess کنی