View Full Version : RESTORE DATABASE
abnoos
پنج شنبه 16 مهر 1383, 13:43 عصر
سلام
من وقتی از دستور restore در QA استفاده می کنم .،
پیغام زیر را دریافت می کنم:
exclusive access coud not be abtained because the database is in use.
RESTORE database terminating abnormally.
علت اون چیه ؟
AminSobati
پنج شنبه 16 مهر 1383, 15:02 عصر
دوست عزیزم،
همونطور که حتما خودتون از پیغام متوجه شدین، دیتابیس شما توسط یک Process در حال استفاده هستش. آیا این دیتابیس تحت Replication یا عملیاتی توسط Jobهای تعریف شده قرار نگرفته؟
ضمنا اگر نتیجه اجرای DBCC OPENTRAN رو اینجا ارسال کنین شاید کمک کنه به حل این مشکل.
موفق باشین
abnoos
یک شنبه 19 مهر 1383, 12:42 عصر
نتیجه دستور
no active open transaction
dbcc execution completed if DBCC printed error messages ,contact your system
؟؟
مرسی
AminSobati
یک شنبه 19 مهر 1383, 13:43 عصر
ممنون دوست عزیزم، حالا یک قدم به حل مشکل نزدیکتر شدیم!
برای اینکه تشخیص بدیم دقیقا دیتابیس شما توسط کدوم Process در حال استفاده هستش، سعی کنین از همه برنامه هایی که احتمال میدین از SQL Server استفاده میکنن خارج بشین(حتی EM).
حالا QA رو باز کنین و این دستور رو اجرا کنین:
EXEC SP_WHO
در ستون dbname فقط یکبار نام دیتابیس شما باید تکرار شده باشه. در غیر اینصورت، از منوی Query، آیتم Results To Text رو انتخاب کنین و مجددا دستور رو اجرا کنین تا نتیجه به یک فایل ریخته بشه. بررسی این فایل میتونه کمک کنه.
موفق باشین
abnoos
دوشنبه 20 مهر 1383, 09:56 صبح
نام پایگاه داده تکرار نشده است . اما نتیجه دستور رو براتون می فرستم .
آیا توی sql دستوری وجود داره که تمام ارتباط های یک database رو قطع کنه ، یعنی database رو stop کنه ، شاید این کار بتونه مفید باشه ؟
خیلی ممنون
AminSobati
دوشنبه 20 مهر 1383, 10:37 صبح
اگر ممکنه لطفا فایل رو بدون فشرده کردن یا با فرمت zip بفرستین.
برای قطع ارتباط تمام کاربرها با دیتابیس، در EM اون رو Detach کنین و اگر ارتباطی با دیتابیس برقرار باشه، همونجا Clear انجام بدین قبل از detach. مجددا دیتابیس رو Attach کنین.
حالا Restore رو آزمایش کنین (ولی حتما قبل از Detach، اون دستور رو مجددا اجرا کنین و نتیجه رو بفرستین)
abnoos
دوشنبه 20 مهر 1383, 13:51 عصر
zip شده :
AminSobati
دوشنبه 20 مهر 1383, 19:51 عصر
ممنونم دوست عزیز،
اگر عمل Restore رو از QA اجرا میکنین، نباید در دیتابیس مورد نظر قرار گرفته باشین. چون همین یک Connection به دیتابیس محسوب میشه. پس از لیست، یک دیتابیس دیگه رو انتخاب کنین یا با TSQL:
USE OtherDB
abnoos
یک شنبه 26 مهر 1383, 10:49 صبح
کاملا حق با شما ست . هنگامی که database مورد نظر انتخاب شده این پیغام رو می ده .
از جوابتون خیلی خیلی ممنون :flower:
AminSobati
یک شنبه 26 مهر 1383, 10:54 صبح
موفق باشین :)
rohollahmahmoodiany
جمعه 21 مرداد 1384, 20:19 عصر
اقای ثباتی سلام
من تمام گفتگوهای فوق را پی گیری کردم و برای من بسیار مفید بود.تمام خطاهای گفته شده را میداد که من با راهنماییهایی که شما داده اید برطرف کردم ماند یک خطا :
User does not have permission to RESTORE database 'abadantoday'.
من چون بنا به راهنمایی شما دیتا بیس دیگری (master را از لیست انتخاب کردم میترسم که خطا به خاطر ان باشد نه به خاطر نداشتن permission ؟احه مدیر سرور پایش رش کرده که من permission داده ام؟
اگر هم سوال من بی مورد باشد از شما خواهش میکنم که راهنمایی بفرمایید
با تشکر!
aspsql
شنبه 22 مرداد 1384, 01:11 صبح
سلام .خیلی خوشحالم از اینکه به عضویت این سایت در امده ام.
واقعا چه تصادفی یکی از دلایل مراجعه من به این سایت داشتن همین مشکل بود دقیقا همین مشکل ؟مثل اینکه خیلی خوش شانسم!امیدوارم که دوستان پاسخ سوال من و دوست عزیزمان rohollahmahmoodiany را بدهند!
از بذل توجه دوستان سپاسگزارم!
AminSobati
شنبه 22 مرداد 1384, 11:19 صبح
برای اطمینان از Permission، دستور exec sp_helpsrvrolemember رو اجرا کنین. اگر نام لاگین شما جزء sysadmin یا dbcreator قید شده، یعنی اجازه دارین.
aspsql
شنبه 22 مرداد 1384, 15:14 عصر
آقای ثباتی از پاسخ سریع شما بسیار سپاسگزارم
عرضم به حضورتان من دستور exec sp_helpsrvrolemember را اجرا کردم اما اسم یوزر من نبود اما با اجرای دستور exec sp_helprolemember اسم کاربری من ظاهر شد ان هم چندین بار.باز هم سعی کردم که restore کنم اما پیغام permission را میداد.من واقعا نمیدانم چه کار بکنم امید من به شما اقای ثابتی و سایر دوستان است.صمیمانه از شما سپاسگزارم.
AminSobati
شنبه 22 مرداد 1384, 18:20 عصر
این پست ویرایش شد، لطفا به پست بعدی من رجوع فرمایید!
aspsql
شنبه 22 مرداد 1384, 21:10 عصر
آقای ثباتی از پاسخ سریع شما بسیار سپاسگزارم
بله هست .ایا مطمئنا من پرمیژن دارم؟
AminSobati
یک شنبه 23 مرداد 1384, 00:43 صبح
عذر میخوام، عضویت در db_owner اجازه Restore نمیده و میبایست مالک دیتابیس باشین(پست قبلی رو اصلاح کردم) . یعنی وقتی از دیتابیس Properties میگیرین، در همون صفحه اول، جلوی Owner نام کاربری خودتون رو ببینین. در غیر این صورت عضویت در sysadmin یا dbcreator الزامی هستش.
اگر یک جمع بندی کنیم، توسط یکی از این دو حالت اجازه Restore خواهید داشت:
1) لاگین عضو sysadmin یا dbcreator باشد (که بوسیله exec sp_helpsrvrolemember اطلاع پیدا میکنیم)
2) کاربر، مالک دیتابیس باشد (که غیر از Properties، دستور exec sp_helpdb 'YourDB' هم مشخص خواهد کرد.)
aspsql
یک شنبه 23 مرداد 1384, 01:22 صبح
اقای ثباتی یک دنیا ممنون که جواب مرا دادید.
نتیجه اجرایexec sp_helpsrvrolemember منفی بود .با اجرای exec sp_helpdb 'YourDB' نیز در زیر owner یوزر sa ظاهر شده است .پس من اجازه ندارم درست است؟
باز هم از لطف شما صمیمانه سپاسگزارم.
AminSobati
یک شنبه 23 مرداد 1384, 11:53 صبح
درسته، Permission ندارید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.