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

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

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

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

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

روش‌های مشاهده وضعیت 

در این مقاله قرار است روش های مشاهده در 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

سخن پایانی

وضعیت بانک اطلاعاتی در 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 مقاله ها برای دانلود.بسیار ایده کاربردی و خوبیه .ممنونم

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

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
close-image