خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
رفع ارور Exclusive access could not be obtained because the database is in use در SQL Server
امروز هنگامی که من درصدد بازیابی کردن یک پایگاه داده در SQL Server ، خطای زیر نمایش داده شد و بازیابی بانک اطلاعاتی انجام نشد.
یکی از راه های غلبه بر این مشکل ، بستن کلیه Connection های فعال به آن پایگاه داده خاص است. ساده ترین روش برای از بین بردن Connection های فعال به یک دیتابیس خاص، قرار دادن آن دیتابیس در حالت single user mode بوده و پس از اعمال بازیابی دیتابیس، دوباره حالت multi user mode را فعال کنید.
اکنون همه connection ها به استثنای شما، بسته شدند و شما می توانید پایگاه داده را بدون هیچ گونه نگرانی از شخص یا برنامه ای که به دیتابیس متصل شود، عمل بازیابی را انجام دهید. خب، پس از پایان بازیابی، دوباره با وضعیت multi user mode می توانید برگردید.
برای این منظور هم از کوئری زیر می توانید استفاده کنید:
در هر دو کروئری فوق به جای Your_Database_Name باید نام دیتابیس مورد نظرتان را جایگزین کنید.
System.Data.SqlClient.SqlError: Exclusive access could not be obtained because the database is in use. (Microsoft.SqlServer.SmoExtended)
یکی از راه های غلبه بر این مشکل ، بستن کلیه Connection های فعال به آن پایگاه داده خاص است. ساده ترین روش برای از بین بردن Connection های فعال به یک دیتابیس خاص، قرار دادن آن دیتابیس در حالت single user mode بوده و پس از اعمال بازیابی دیتابیس، دوباره حالت multi user mode را فعال کنید.
USE master;
GO
ALTER DATABASE Your_Database_Name
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
اکنون همه connection ها به استثنای شما، بسته شدند و شما می توانید پایگاه داده را بدون هیچ گونه نگرانی از شخص یا برنامه ای که به دیتابیس متصل شود، عمل بازیابی را انجام دهید. خب، پس از پایان بازیابی، دوباره با وضعیت multi user mode می توانید برگردید.
برای این منظور هم از کوئری زیر می توانید استفاده کنید:
ALTER DATABASE Your_Database_Name
SET MULTI_USER;
GO
در هر دو کروئری فوق به جای Your_Database_Name باید نام دیتابیس مورد نظرتان را جایگزین کنید.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: