PDA

View Full Version : مشکل در Restore کردن فایل Backup - فوری فوری



Ehsan_seif
شنبه 03 اردیبهشت 1390, 14:59 عصر
با سلام
من تو یه برنامه که با C# نوشتم از sql 2005 برای پایگاه داده استفاده کردم

الان یک مشکل واسم پیش اومده و اینه که در هنگام restore کردن به مشکل مواجه میشه و نمی تونه نسخه پشتیبان رو برگردونه

برای انجام restore از دستور زیر استفاده کردم که مدتی با همین دستور کار می کرد ولی دیگه جواب نمیده


USE master; RESTORE DATABASE [MyDB] FROM DISK = @address WITH REPLACE

البته در طی این مدت تغییراتی روی دیتا بیس صورت گرفته، یعنی می تواند این تغییرات باعث این امر شده باشد؟

چگونه مشکل را پیدا کنم؟

ممنون میشم اگه کسی می تونه راهنماییم کنه

حمیدرضاصادقیان
یک شنبه 04 اردیبهشت 1390, 07:53 صبح
سلام دوست عزیز.
خطایی دریافت می کنید؟؟
پیغام خطا رو اینجا قرار میدید؟

خیر تغییرات دیتابیس مانع اجرای دستور Restore نمیشه. یک احتمال میتونه این باشه که موقع Restore شاید هنوز یک Connection با دیتابیس برقرار است.
اگر خطایی که دریافت میکنید اینجا قرار بدید بهتر میشه کنترل کرد.

Ehsan_seif
چهارشنبه 07 اردیبهشت 1390, 21:02 عصر
ممنون از رسیدگیتون آقای صادقیان
متن خطا از قرار زیر است که حاکی از آن است که دیتابیس هنوز در حال استفاده می باشد


Exclusive access could not be obtained because the database is in use.
RESTORE DATABASE is terminating abnormally.
Changed database context to 'master'.


ولی با همین دستوری که من در پست اول نوشتم دیتابیس رو بدون خطا Restore می کرد
یعنی ممکنه جایی تو برنامه کانکشنی باز مونده باشه؟

و آیا این دستور USE master; که در ابتدای کد قرار داره تمام کانکشن های متصل به دیتابیس رو close نمیکنه؟

بازم ممنون میشم اگه بتونید کمکم کنید

حمیدرضاصادقیان
پنج شنبه 08 اردیبهشت 1390, 09:19 صبح
سلام.
دستور Use Master کانکشن های شمارو close نمیکنه.بلکه فقط Connection فعلی شما رو به Master تغییر میده.
ممکنه جای دیگه ایی Connection باز داشته باشید.
با این دستور میتوانید تمام Connection های متصل به دیتابیس رو پیدا کنید.

select spid from master..sysprocesses where dbid=db_id(Database Name)


بعد با استفاده از kill میتوانید اون Connection ها رو از بین ببرید.