وضعیت بانک‌های اطلاعاتی در SQL Server

وضعیت بانک‌های اطلاعاتی در SQL Server

نوشته شده توسط: مسعود طاهری
تاریخ انتشار: ۰۸ اردیبهشت ۱۳۹۷
آخرین بروزرسانی: ۲۶ آبان ۱۴۰۲
زمان مطالعه: 10 دقیقه
۳
(۲)

مقدمه وضعیت بانک اطلاعاتی

در SQL Server بانک‌های اطلاعاتی می‌توانند وضعیت‌های مختلفی داشته باشند ما در این مقاله سعی خواهیم کرد وضعیت بانک‌های اطلاعاتی را بررسی کنیم. برای مشاهده وضعیت بانک‌های اطلاعاتی می‌توانید از روش‌های زیر استفاده کنید.

دوره نگهداری از بانک های اطلاعاتی نیک آموز

روش‌های مشاهده وضعیت بانک‌های اطلاعاتی

۱– استفاده از Management Studio

اگر در SSMS کلید F8 را فشار دهید Object Explorer برای شما نمایش داده می‌شود. شما می‌توانید اغلب وضعیت‌های مربوط به بانک اطلاعاتی را در آن مشاهده کنید.روش‌های مشاهده وضعیت بانک‌های اطلاعاتی

۲– استفاده از DMVهای سیستمی

با استفاده از کوئری زیر می‌توانید وضعیت هر کدام از بانک‌های اطلاعاتی موجود در SQL Server را مشاهده کنید. برای بررسی تخصصی پیشنهاد من استفاده از این کوئری است.

SELECT
name,
state_desc
FROM SYS.databases
GO

روش‌های مشاهده وضعیت بانک‌های اطلاعاتی

۳- استفاده از تابع DatabasePropertyEX

این تابع اطلاعاتی در خصوص برخی ویژگی‌های مربوط به بانک اطلاعاتی را بر می‌گرداند. یکی از این ویژگی‌ها Status است که با استفاده از آن می‌توان وضعیت بانک اطلاعاتی را مشاهده کرد.

SELECT DATABASEPROPERTYEX('NikAmoozDB2017', 'Status')
GO

روش‌های مشاهده وضعیت بانک‌های اطلاعاتی

۴- استفاده از تابع پنجره Database Properties

برای اینکه بتوانید وضعیت بانک اطلاعاتی را در این پنجره مشاهده کنید کافی است در Object Explorer بروی بانک اطلاعاتی کلیک راست کرده و گزینه Properties را کلیک کنید تا پنجره Database Properties همانند تصویر زیر برای شما نمایش داده شود. و اما وضعیت‌های مربوط به یک بانک اطلاعاتی به شرح زیر میباشد:روش‌های مشاهده وضعیت بانک‌های اطلاعاتی

1- وضعیت Online

در این وضعیت بانک اطلاعاتی در دسترس بوده و می‌تواند به کاربران سرویس دهد. تمامی بانک‌های اطلاعاتی که در این وضعیت هستند در Object Explorer وضعیت آنها به صورت نرمال می‌باشدروش‌های مشاهده وضعیت بانک‌های اطلاعاتی
چنانچه بخواهید با استفاده از دستورات TSQL وضعیت بانک اطلاعاتی را در حالت Online قرار دهید از دستور زیر استفاده از کنید.

ALTER DATABASE NikAmoozDB2017 SET ONLINE
GO

۲ وضعیت Offline

بانک اطلاعاتی در این حالت در وضعیت غیر قابل دسترس است و در دسترس نمی‌باشد. عموماً از این وضعیت برای موارد زیر استفاده می‌شود. ۱) جلوگیری از دسترسی تمامی کاربران به بانک اطلاعاتی ۲) انتقال فایل‌های بانک اطلاعاتی به یک دیسک ۳) و… [gap height=”30″] روش‌های مشاهده وضعیت بانک‌های اطلاعاتی چنانچه یک بانک اطلاعاتی در حالت Offline باشد وضعیت آن در Object Explorer به صورت زیر می‌‌باشد. برای قرار دادن وضعیت یک بانک اطلاعاتی در حالت Offline از دستور زیر استفاده کنید.

ALTER DATABASE NikAmoozDB2017 SET OFFLINE
GO

۳- وضعیت Restoring

چنانچه بانک اطلاعاتی در این حالت قرار داشته باشد یک یا چند فایل از فایل‌های مربوط به این بانک اطلاعاتی در حال Restoring (بازیابی) قرار دارد. چنانچه بانک اطلاعاتی در حالت Resorting باشد وضعیت آن در Object Explorer به صورت زیر می‌باشد.روش‌های مشاهده وضعیت بانک‌های اطلاعاتی
اگر بخواهیم بانک اطلاعاتی که در وضعیت Restoring قرار دارد را Use کرده و مورد استفاده قرار دهیم با خطای زیر مواجه خواهیم شد.

Msg 927, Level 14, State 2, Line 16 Database ‘A_NikAmoozDB2017’ cannot be opened. It is in the middle of a restore.

این وضعیت در حالتهای زیر عموماً به وجود میآید: 1) Restore کردن یک Backup از بانک اطلاعاتی ۲) استفاده از ویژگی With NoRecovery در دستور Backup معمولاً DBAها زمانی از این ویژگی استفاده می‌کنند که بخواهند سایر نسخه‌های پشتیبان را در ادامه فرآیند Restore بازیابی کنند. برای مثال ابتدا Full Backup را با این ویژگی Restore کرده و پس از آن در ادامه یک Differential Backup بازیابی میکنند. توجه داشته باشید اگر فرآیند Restore پایان یافته باشد ما می‌توانیم با استفاده از دستور زیر بانک اطلاعاتی را در حالت Online قرار دهیم.

RESTORE DATABASE A_NikAmoozDB2017 WITH RECOVERY
GO

4- وضعیت Recovering

در این وضعیت بانک اطلاعاتی در حالت Recovering (بازیافت) قرار دارد. در صورتی که عملیات بازیافت موفقیت آمیز باشد بانک اطلاعاتی در حالت Online قرار می‌گیرد و در صورتی که موفقیت آمیز نباشد بانک اطلاعاتی در وضعیت Suspect قرار میگیرد.

۵- وضعیت Recovery Pending

چنانچه بانک اطلاعاتی در این حالت قرار گیرد امکان کار با آن وجود نخواهد داشت. در این حالت بانک اطلاعاتی آسیب ندیده ولی فایل‌های آن ممکن است از بین رفته باشد و یا محدودیت سیستمی وجود داشته باشد. برای مثال ممکن است Log File مربوط به بانک اطلاعاتی آسیب دیده و یا از بین رفته باشد. چنانچه بانک اطلاعاتی در حالت Recovery Pending قرار گیرد وضعیت آن در Object Explorer به صورت زیر خواهد بود.روش‌های مشاهده وضعیت بانک‌های اطلاعاتی

۶- وضعیت Suspect

چنانچه بانک اطلاعاتی در این حالت قرار گیرد در دسترس نبوده و امکان کار کردن با آن فراهم نمیباشد. عواملی که باعث می‌شوند بانک اطلاعاتی در این حالت قرار گیرد عبارتند از: ۱) Shutdown کردن سرویس SQL Server به صورت غیر نرمال برای مثال قطع کردن برق سرور و… ۲) خرابی Data File 3) خرابی Log File 4) Corrupt شدن بانک اطلاعاتی ۵) و… چنانچه بانک اطلاعاتی در حالت Suspect قرار گیرد وضعیت آن در Object Explorer به صورت زیر خواهد بود.روش‌های مشاهده وضعیت بانک‌های اطلاعاتی

۷- وضعیت Emergency

در این حالت بانک اطلاعاتی به صورت فقط خواندنی برای گروه SysAdmin در دسترس است. از این وضعیت بیشتر برای عیب یابی بانک اطلاعاتی استفاده میشود. برای مثال زمانی که بانک اطلاعاتی در حالت Suspect قرار داشته باشد م‌یتوانیم بانک اطلاعاتی را در وضعیت Emergency قرار داده و مشکلات مربوط به آن را رفع و رجوع نماییم. برای قرار دادن یک بانک اطلاعاتی در وضعیت Emergency از دستور زیر استفاده کنید.

ALTER DATABASE A_NikAmoozDB2017 SET EMERGENCY
GO

چنانچه بانک اطلاعاتی در حالت Emergency قرار گیرد وضعیت آن در Object Explorer به صورت زیر خواهد بود.وضعیت بانک‌های اطلاعاتی در SQL Server
نکته مهم: چنانچه بانک اطلاعاتی شما در وضعیتی قرار گرفت که در دسترس نمی‌باشد. برای مدیریت بهتر و دقیق شرایط بهتر است حتماً به SQL Server Logs سر بزنید. برای دسترسی به آن همانند تصویر زیر اقدام کنید.وضعیت بانک‌های اطلاعاتی در SQL Server
پس از باز کردن لاگ جاری می‌توانید وضعیت آن را در پنجره زیر مشاهده کرده و آن را تحلیل کنید.
وضعیت بانک‌های اطلاعاتی در SQL Server

چه رتبه ای می‌دهید؟

میانگین ۳ / ۵. از مجموع ۲

اولین نفر باش

title sign
دانلود مقاله
وضعیت بانک‌های اطلاعاتی در SQL Server
فرمت PDF
9 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
مسعود طاهری
مقالات
20 مقاله توسط این نویسنده
محصولات
65 دوره توسط این نویسنده
مسعود طاهری

مسعود طاهری مدرس و مشاور ارشد SQL Server & BI ،  مدیر فنی پروژه‌های هوش تجاری (بیمه سامان، اوقاف، جین وست، هلدینگ ماهان و...) ، مدرس دوره‌هــای SQL Server و هوش‌تجاری در شرکت نیک‌آموز و نویسنده کتاب PolyBase در SQL Server

title sign
دیدگاه کاربران

    • واقعا عالی، یه دنیا ممنون

    • با سلام
      خواستم تشکر کنم از ایده بسیار خوبتون برای قرار دادن فایل pdf مقاله ها برای دانلود.بسیار ایده کاربردی و خوبیه .ممنونم

    • با سلام
      خواستم تشکر کنم از ایده بسیار خوبتون برای قرار دادن فایل pdf مقاله ها برای دانلود.بسیار ایده کاربردی و خوبیه .ممنونم

    • سلام مهندس جان، مثل همیشه عالی