خاطرات فنی من

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

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

فرض کنید می خواهید یک backup را روی یک database  در حال کار restore کنید. اما کاربران زیادی به آن وصل هستند و به زبان خوش هم از آن جدا نمی شوند

چطور می توانید از دست آنها خلاص شوید؟


خب اگر تعداد آنها کم باشد می توانید از activity monitor پروسس مربوط به آنها را یکی یکی متوقف کنید یا از طریق دستور

EXEC sp_who2

و بعد هم

KILL <SPID>

پروسس های ناخواسته را حذف کنید


اما اگر تعداد این پروسسها زیاد باشد نیاز به راه حل بهتری دارید.

یک راه این است که دیتابیس را offline و بعد online کنید به این امید که پیش از آن که کاربران دوباره به دیتابیس وصل شوند شما کارتان را انجام داده باشید.

اما راه حل اساسی و منطقی این معضل این است که دیتابیس را از دسترس کاربران عادی خارج کنید:

ALTER DATABASE DatabaseName SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE


نهایتا وقتی خواستید به حالت عادی برگردید:


ALTER DATABASE DatabaseName SET MULTI_USER





موافقین ۰ مخالفین ۰ ۹۶/۰۵/۲۴
محسن

SQL Server

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی