فهرست مطالب این مقاله:
با توجه به نقش حیاتی پایگاههای داده مانند MS SQL و Oracle در شبکه همه سازمانها و شرکتها و اهمیت مانیتورینگ آنها، در این سند به آموزش نحوه مانیتور MS SQL Advanced میپردازیم.
اهمیت مانیتورینگ پایگاه داده
پایگاه های داده مانند MS SQL Server و Oracle در شبکه همه سازمان ها و شرکت ها نقشی حیاتی دارند و عملکرد صحیح برنامه های کاربردی و پورتال های سازمانی به آنها وابستگی مستقیم دارد. در صورت بروز اختلال برای سرورها و یا سرویس های پایگاه داده دسترسی به برنامه های کاربردی قطع شده و فعالیت کاربران و مشتریان متوقف خواهد شد.
بنابراین یکی از وظایف اصلی راهبران شبکه نظارت همیشگی سرویس های پایگاه داده است تا در صورت بروز اختلال، زودتر از کاربران و مشتریان از موضوع با خبر شده و نسبت به رفع مشکل اقدام نمایند. سیستم جامع مانیتورینگ شبکه و دیتا سنتر بینا همه آنچه که برای نظارت بر پایگاه داده به آن احتیاج دارید را در اختیار شما قرار خواهد داد.
در بینا به آسانی می توانید برای سرویس های پایگاه های داده از نوع MS SQL Server و Oracle مانیتور تعریف کنید. روال معمول مانیتورینگ پایگاه داده بر قراری یک ارتباط (Connection) با پایگاه داده و بررسی نتیجه آن است، چنانچه ارتباط با پایگاه داده برقرار گردد، پس این اطمینان وجود خواهد داشت که سرویس پایگاه داده به درخواست های برنامه های کاربردی پاسخ می دهد و در واقع سرویس در دسترس است.
در این روش مانیتورینگ در هر بار اجرا، بینا یک کانکشن (SQL / Oracle Connection) با پایگاه داده بر قرار کرده و بلادرنگ کانکشن را می بندد حال چنانچه ارتباط بر قرار نگردد این موضوع به منزله اختلال در نظر گرفته می شود.
امکانات مانیتور MS SQL Advanced
- امکان مانیتورینگ بیش از 30 شاخص عملکردی مهم مربوط به SQL Server.
- امکان تعریف شرایط اختلال برای هر یک از شاخص ها.
- امکان مانیتورینگ صحت عملیات Backupهای تعریف شده بر روی SQL Server.
- امکان نظارت بر اجرای صحیح Job های SQL Server.
- امکان اجرای دستورات T-SQL و مقایسه نتیجه مقدار بازگشتی آن با مقادیر مورد انتظار.
- قابلیت مانیتورینگ چندین Instance بر روی هر یک از سرورها.
- ارائه توضیحات و راهنمای فنی در خصوص هر یک از شاخص ها.
- ارائه گزارش ها و داشبورد های نظارتی پایگاه داده.
آشنایی با مانیتور MS SQL Advanced
در ورژن های قبلی نرم افزار بینا در مانیتورSQL کاربر می توانست تنها Up و Down بودن SQL را مانیتور نماید. اما در نسخه جدید نرم افزار مانیتوری به نام MS SQL Advanced افزوده شده است که علاوه بر بررسی Upو Down بودن SQL بسیاری از ویژگی ها را در سطح های Instance , Database , Job ها و Query مدیریت می کند.
مانیتور SQL Advanced چند المان را می تواند مانیتور کند:
- مانیتورینگ شاخص های عملکردی
- مانیتورینگ Job ها
- اجرای Query و بررسی نتیجه
مانیتورینگ شاخص های عملکردی
این نوع مانیتور که در بینا با نام Performance Instance معرفی شده است در سه سطح می تواند شاخص های عملکردی را مانیتور کند:
- (Machine (server
- Instance
- DB
در سطح سرور شاخص های مربوط به سرور SQL همانند CPU Usage , Memory, Disk و … را بررسی می کند. در سطح Instance شاخص های مربوط به Instance همانند Batch request /sec , Avg Lock Wait time , User Connection و … اندازه گیری می شود .در سطح Database نیز شاخص های مربوط به دیتابیس ها از جمله Log Size , Active Transaction و .. اندازه گیری می شود.
مانیتورینگ Job ها
همان طور که می دانید می توان در SQL برای عملیات های مختلف Job تعریف کرد تا طبق یک زمانبندی مشخص Job مورد نظر اجرا شود . نرم افزار بینا در این نوع مانیتور می تواند بررسی کند که آیا Job مورد نظر انجام شده است یا خیر و یا اگر انجام شده , اجرا با موفقیت بوده است و یا با شکست مواجه شده است.
Query Execution
در این قسمت می توانید یک Query وارد کرده و برای این Query شرایط اختلال تعیین کنید که در هر بار اجرای مانیتور این Query اجرا می گردد و مقدار بازگشتی با مقداری که در شرایط اختلال تعیین شده مقایسه می گردد, تا صحت عملکرد SQL با اجرای اینQuery بررسی گردد و یا اگر مقدار Query برای ادمین شبکه اهمیت داشت و این مقدار به هر دلیلی تغییر کرد متوجه شود.
نحوه ایجاد مانیتور SQL
در ادامه مراحل ساخت یک مانیتور SQL Advanced را با شکل مشاهده می کنید:
مانیتور MS SQL Advanced را از مسیر زیر باز کنید.
برای ایجاد یک مانیتور جدید برای SQL در صفحه باز شده آدرس سرورو یک نام برای مانیتور خود انتخاب کنید. برای مانیتور کردن شاخص های مربوط به Performance باید مجوز WMI داشته باشید. برای اطمینان از صحت مجوز در قسمت اتصال به دستگاه مجوز WMI را انتخاب کرده وگزینه تست اتصال را کلیک نمائید.
پس از وارد کردن اطلاعات سرور در قسمت بالای صفحه روی دکمه ایجاد مانیتور کلیک کنید تا مانیتور مورد نظر ساخته شود.
قبلا ذکر شد که درمانیتور SQL می توان شاخص های مربوط به Instance را مانیتور کرد . برای این منظور باید هر Instance ای را که نیاز دارید به مانیتور خود معرفی کنید. روی دکمه افزودن instance کلیک نمائید.
با کلیک روی دکمه افزودن Instance کادری باز می شود که می توانید اطلاعات مربوط به Instance مورد نظر خود را واردکنید. نام instance را وارد کرده, روش اتصال را مشخص کنید. اگر روش اتصال به صورت SQL Authentication بود نام کاربری و رمز عبور را واردکنید و اگر درحالت Windows Authentication بود مجوز WMI را انتخاب کنید. برای اطمینان از صحت اطلاعات وارد شده روی گزینه تست اتصال کلیک کنید.
* به هر تعدادی که نیاز داشته باشید می توانید Instance اضافه کنید.
مشاهده می کنید که در کادر زیر Instance های اضافه شده به همراه اطلاعاتی از قبیل روش اتصال , نسخه SQL و نام Instance نمایش داده می شود.
در کادر پایین صفحه همان طور که مشاهده می کنید سه المانی که برای مانیتور SQL استفاده می شود نمایش داده شده است. برای انتخاب شاخص مورد نظر خود تب مربوط به هر شاخص را باز کرده و شاخص مورد نظر را همانند دیگر شاخص ها اضافه کنید.
نحوه مانیتورینگ شاخص های مربوط به Machine Server
برای مانیتور کردن شاخص های مربوط به Performance در تب Performance Indexes روی دکمه + کلیک کنید . همان طور که بیان شدهدر این قسمت سه شاخص مانیتور می شود . برای شاخص های در سطح سرور SQL نوع شاخص را Machine Metrics قرار داده و شاخص مورد نظر را انتخاب کنید. برای مثال در تصویر زیر شاخص CPU Utilization انتخاب شده است.
نحوه مانیتورینگ شاخص های مربوط به Instance
برای انتخاب شاخص در سطح Instance نوع شاخص را در حالت SQL Server Metrics قرار داده, در لیست شاخص ها شاخص مورد نظر را انتخاب کنید و در قسمت Instance نیز Instance های مورد نظر را انتخاب کنید. برای مثال در تصویر زیر برای Instance بینا شاخص Buffer Cache Hit Ratio انتخاب شده است.
نحوه مانیتورینگ شاخص های مربوط به Database
برای مانیتور کردن شاخص ها در سطح دیتابیس نوع شاخص را در حالت Database Metrics قرار دهید. از لیست شاخص ها شاخص موردنظر را انتخاب کنید. در قسمت Instance نیزInstance های مورد نظر را انتخاب کنید. برای نمایش فهرست دیتابیس ها روی دکمه نمایش فهرست دیتابیس ها کلیک کنید و در قسمت دیتابیس از لیست دیتابیس های مورد نظر خود را انتخاب کنید.
همان طور که در تصویر مشاهده می کنید درسطر اول که شاخصی مربوط به سرور است ستون Instance وdatabase خالی نشان داده شده است. در سطر دوم که شاخصی مربوط به Instance می باشد نام Instance درستون Instance نمایش داده شده است و در سطر سوم که مربوط به دیتابیس می باشد درستون Instance نام Instance و درستون دیتابیس نیز نام دیتابیس مربوط به این شاخص نمایش داده شده است.
نحوه مانیتورینگ Job های تعریف شده در SQL
در تب مربوط به Job Status Monitors, می توانید Job های ساخته شده در SQL را مانیتور کنید که آیا هر Job به درستی انجام شده است یا خیر. روی دکمه + کلیک کنید. در کادر باز شده نام Instance را وارد کرده و در قسمت Job ,Job مورد نظر را انتخاب کنید و سپس برای Job ذکر شده شرایط اختلال تعیین کنید.
به عبارت زیر در این کادر توجه کنید: در صورت گذشت x دقیقه از آخرین اجرای Job وضعیت مختل شود.
شرط اختلالی که در این صفحه تعریف شده به این صورت می باشد که اگر آخرین اجرای این Job نابرابر با success بود مانیتور به اختلال برود , فرض کنیدJob ساخته شده باید هریک ساعت از دیتابیس بکاپ بگیرد . آخرین باری که بکاپ گرفته شده و Job اجرا شده نتیجه موفق بوده است . حالا به دلایلی مثلا Stop شدن سرویس SQL Agent Server (سرویس مربوط به اجرای Job ( Job مورد نظر اصلا انجام نشده است. خب طبق زمانبندی تعریف شده بینا سروقت Job میرود متوجه می شود که آخرین اجرای Job موفق بوده است در نتیجه مانیتور نرمال نشان داده می شود , در صورتی که Job اصلا انجام نشده است.
در چنین شرایطی استفاده از این عبارت الزامی می باشد ,شما می دانیدکه این Job باید هر 60 دقیقه اجرا شود پس در این عبارت تعیین میکنید اگر آخرین اجرا 65 دقیقه قبل انجام شده بود مانیتور به اختلال برود. در این صورت اگر نتیجه آخرین اجرا موفق بوده باشد و پس از گذشت 60 دقیقه Job اجرا نشود 5 دقیقه بعد مانیتور به حالت اختلال رفته و کاربر متوجه می شود که این Job انجام نشده است.
نحوه مانیتورینگ Query ها
در تب مربوط به Query با کلیک روی دکمه + و باز شدن کادر زیر عنوان Query, نام Instance و Database ,Query مورد نظر و شرایط اختلال را تعیین کنید.
نکته: اگر نتیجه Query اسکالر نبود یعنی چندتا ستون بود بینا اولین ستون را چک می کند.
مانیتور دریک نگاه
با کلیک روی دکمه مانیتور در یک نگاه در بالای صفحه می توانید جزئیات بیشتری از مانیتور را مشاهده نمائید. در صفحه اول در قسمت فهرست شاخص های سرورتمام شاخص هایی را که به عنوان شاخص های سرور تعریف شده در بازه زمانی 2 ساعت گذشته نمایش داده می شود. درقسمت پایین صفحه یعنی خلاصه وضعیت Instance ها تمامی Instance هایی تعریف شده نمایش داده می شود . روی Instance مورد نظر کلیک کنید.
با کلیک روی نام Instance صفحه دیگری باز می شود که شاخص های تعریف شده در Instance و فهرست Job ها و Query ها نمایش داده می شود. در قسمت پایین فهرست دیتابیس ها نمایش داده می شود که با کلیک بر روی نام دیتابیس وارد صفحه جدیدی می شوید.
در قسمت پایین صفحه مشاهده می کنید که فهرست شاخصهای Database نمایش داده شده است.
آشنایی با مفاهیم SQL
تعریف Instance
فرض کنید درسازمان خود چندین نرم افزار دارید که هرکدام از دیتابیس جداگانه ای استفاده می کند . برای اینکه بتوانید از یک سرور برای ذخیره دیتابیس های خود استفاده کنید نیاز به تعریف Instance های متفاوت دارید. اگر از مفهوم Instance استفاده نشود هنگامی که به SQL کانکت می کنید به تمام دیتابیس ها دسترسی خواهید داشت در نتیجه امنیت اطلاعاتی دیگر وجود نخواهد داشت و هرگروهی به اطلاعات دیگر نرم افزارها دسترسی خواهد داشت . برای داشتن امنیت اطلاعات و متمایز کردن هر دیتابیس, هر نرم افزاری ازیک Instance مجزا برای خود استفاده می کند و برای هر Instance هم یک نام کاربری و رمز عبور متفاوت تعریف می کند. از این پس برای اتصال به هر دیتابیسی نام Instance را به همراه نام کاربری و رمز عبور وارد کرده و در نتیجه تنها می توان به اطلاعات همان دیتابیس دسترسی پیدا کرد.
برای تعریف هر Instance نیاز است که مراحل نصب SQL را از ابتدا انجام دهید. در صفحه مربوط به Instance ها نام کاربری و رمز عبور را وارد کرده و در صفحه Feature ها نیز مشخصات و شاخص های مورد نیاز برای هر Instance را انتخاب کنید.
اگر فقط یک دیتابیس داشتید و احتیاجی به تعریف Instance نداشتید هنگام نصب یک Instance به طور پیش فرض به نام MSSQL ایجاد خواهد شد.
هنگام وارد شدن به هردیتابیس در کادر زیر در قسمت Server name از فرمت زیر استفاده می شود:
SQL Server Address\Instance name
اگر دیتابیس شما بر روی سرور دیگری قرار دارد در قسمت Server name ,IP آن سیستم را وارد کنید.
هنگام وارد شدن به هر Instance به جای وارد کردن نام کاربری و رمزعبور میتوان از متد Windows authentication استفاده کرد.
در واقع در این متد از نام کاربری و پسورد کاربری که به کامپیوتر لاگین کرده استفاده می شود که این کاربر باید در قسمت لاگین دیتابیس ذخیره شده باشد. درقسمت لاگین ها نام کاربر باید ثبت شده باشد.
برای تعریف کاربر جدید روی Login راست کلیک کرده و کاربر جدید را تعریف کنید. توجه کنید که این کاربر باید Enable باشددرصورت Disable بودن فلش قرمز رنگی روی آیکن آن ظاهر می شود که از نام کاربر Properties گرفته و گزینه Enable را کلیک کنید.
Job
مکانیزم جانبی SQL است که می تواند یکسری کارها را طبق زمانبندی مشخصی انجام دهد. برای مثال می توانیم در SQL تعریف کرد که هرشب ساعت 9 از دیتابیس بکاپ تهیه کنید و یا هر هفته روزهای پنج شنبه دیتابیس را Shrink کند این عملیات ها در SQLتحت عنوان Job ایجاد می شوند.
نحوه تعریف Job برای بکاپ گیری از دیتابیس
برای ایجاد یک Job جدید مراحل زیر را در SQL طی کنید.
در پنل قسمت چپ SQL مراحل زیر را طی کرده و روی گزینه Maintenance Plan Wizard کلیک نمائید.
درصفحه اول Next کرده و در صفحه دوم برای Job خود یک نام تعیین کرده و روی دکمه change کلیک کنید.
در صفحه بعد برای اجرای Job زمانبندی تعیین می شود. این که به طور روزانه انجام شود و یا مثلا هفتگی و این که در چه ساعتهایی این Job انجام شود و هم چنین تاریخ شروع و پایان اجرای Job را در این صفحه تعیین کنید.
با کلیک روی دکمه OK به صفحه قبل بازگشته و مشاهده می کنید که در قسمت Schedule نحوه زمانبندی مشخص شده است.
با Next کردن وارد صفحه ای می شوید که انواع Job های موجود در SQL در آن معرفی شده است. برای مثال در تصویر زیر عملیات مختلفی از قبیل Backup ,Rebuild Index ,Shrink انتخاب شده است که دریک زمان و درقالب یک Job انجام شود.
در صفحه بعد می توانید ترتیب انجام عملیات تعریف شده را برحسب اولویتشان مشخص کنید.
با توجه به عملیاتی که انتخاب شده و ترتیب انجام آنها صفحاتی مربوط به هر عملیات باز می شود که باید تنظیمات اختصاصی مربوط به هریک را مشخص کنید. برای مثال در تصویر زیر صفحه مربوط به Shrink باز شده که نام دیتابیسی را که قصد Shrink کردن آن را دارید مشخص می کنید. (Shrink به معنای کاهش حجم دیتابیس می باشد.)
پس از انتخاب نام دیتابیس تعیین کنید حجم دیتابیس هروقت به بالای X مگابایت رسید به اندازه X درصد از حجم آن کم کن.
در صفحه بعد تنظیمات بکاپ گیری انجام می شود. همانند صفحه قبل دیتابیس را انتخاب کنید . محل ذخیره بکاپ ها را تعیین کنید. با انتخاب تیک عبارت Create a backup file for every database برای هرفایل بکاپ یک فولدر ایجاد کرده و فایل بکاپ را در آن ذخیره می کند. درقسمت پایین صفحه می توانید مشخص کنید بکاپ به صورت فشرده ذخیره شود.
در صفحه بعدی نیز تنظیمات مربوط به عملیات سوم یعنی Rebuild کردن دیتابیس انجام می شود. دیتابیس مورد نظر را انتخاب کنید. (Rebuild کردن به معنای مرتب کردن دیتابیس می باشد یعنی با انجام این عملیات دیتابیس فهرست بندی شده و در نتیجه عملیات جستجو در آن با سرعت بیشتری انجام می شود)
در صفحه بعد نیز محل ذخیره فایل های Report را تعیین کنیدکه بهتر است در همان مسیر پیش فرض ذخیره شود.
صفحه بعد نیز گزارشی از Job ارائه می دهد. روی دکمه Finish کلیک کنید و در پایان Job انجام شده به ترتیب عملیات های تعیین شده یکبار Config می شود که در انتها باید پیغام Success را مشاهده کنید.
تا به این مرحله شما Job را دردیتابیس تعریف کردید. برای اجرای آن باید Job تعریف شده Start گردد. در پنل سمت چپ SQL به قسمت SQL Server Agent رفته و روی Job مورد نظر راست کلیک کنید و گزینه Start Job at step را انتخاب کنید.
نکته: ممکن است SQL Server Agent روی سیستم شما Stop شده باشد؛ اگر Stop بود بر روی SQL Server Agent راست کلیک کرده و Start کنید و یا درصفحه Services سرویسی که با نام SQL Server Agent تعریف شده است را Start کنید.
در صفحه Services به ازای هر Instance ای که تعریف شده دو سرویس به نام های (SQL Server (Instance name و سرویس (SQL Server Agent (Instance name وجود دارد.