نیک آموز > وبلاگ > SQL Server > مفهوم DAC Connection در SQL Server مفهوم DAC Connection در SQL Server SQL Server نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۲۲ آذر ۱۴۰۴ آخرین بروزرسانی: 22 آذر 1404 زمان مطالعه: 15 دقیقه ۰ (۰) از نسخه SQL Server 2005، مایکروسافت قابلیت جدیدی به نام Dedicated Administrator Connection (DAC) را معرفی کرد. این نوع اتصال میتواند به شما در در خروج از شرایط دشوار کمک فراوانی کند. با استفاده از این ویژگی، ادمین دیتابیس میتواند، در زمانی که ارتباط با پایگاه داده خطا میدهد، به دیتابیس وصل شود. این قابلیت در زمانی که مشکلات بحرانی عملکردی وجود دارد به شما کمک خواهد کرد که به دیتابیس وصل شده و کوئریهای پایه را اجرا کنید. در واقع DAC، حتی زمانی که SQL Server به درخواست های اتصال استاندارد پاسخ مناسبی نمیدهد، به ادمین اجازه میدهد به دیتابیس دسترسی پیدا کرده و آن را عیب یابی کند و هر کدام از فرایندهایی که منجر به مشکل شده اند، را متوقف کند. در این مقاله با استفاده از دو روش نحوه اتصال به دیتابیس از طریق DAC بیان شده و سپس اسکریپتهای مورد نیاز برای بررسی سلامت دیتابیس بیان خواهد شد. مسیر حرفهای آموزش SQL Server را با نیک آموز، قدمبهقدم تجربه کنید. فعال کردن DAC بصورت Remote کانکشن DAC از دو طریق SSMS و SQL CMD قابل دسترسی میباشد اما با توجه به اینکه SQL CMD منابع کمتری نسبت به SSMS میگیرد، پیشنهاد مایکروسافت این است که از طریق SQL CMD به آن وصل شوید. هدف اصلی DAC، تشخیص مشکلات دیتابیس میباشد در زمانی که راه دیگری برای اتصال به موتور پایگاه داده وجود ندارد و نباید از آن بعنوان یک اتصال Regular استفاده کرد. بصورت دیفالت کانکشن DAC تنها به صورت لوکال قابل دسترس میباشد. از نظر فنی دلیل این موضوع این است که DAC بصورت پیش فرض تنها IP محلی ۱۲۷.۰.۰.۱ را میبیند. در واقع اگر سرور شما با مشکل مواجه شده باشد، ابتدا باید به آن وصل شده و سپس به دیتابیس وصل شوید که این مورد در مواقع ضروری بسیار آزار دهنده میباشد. برای رفع این مشکل و فعال شدن اتصال DAC از طریق Remote Connection میتوانید از کد زیر استفاده کنید: Use master GO /* ۰ = Allow Local Connection, 1 = Allow Remote Connections*/ sp_configure 'remote admin connections', 1 GO RECONFIGURE GO همچنین با استفاده از SSMS میتوان DAC را فعال کرد. برای این کار بر روی SQL Server Instance کلیک راست کرده و Facets را انتخاب کنید. با کلیک کردن بر روی Facets پنجره View Facets باز خواهد شد در پنجره فوق Surface Area Configuration را انتخاب کرده و سپس RemoteDacEnabled را True قرار دهید. اتصال به DAC از طریق SSMS برای اتصال به DAC از طریق SSMS تنها کافی است قبل از نام SQL Server Instance name عبارت “ADMIN:” را وارد نمایید. البته با کلیک کردن بر روی Connect خطایی بصورت زیر رخ خواهد داد: برای رفع این خطا و اتصال DAC از طریق SSMS چند روش وجود دارد که در این مقاله یک روش ارائه میشود. برای رفع این مشکل ابتدا مطابق شکل زیر بر روی Database Engine Query کلیک کنید. سپس در پنجره باز شده ADMIN: را قبل از Server Name وارد کنید. حال با کلیک کردن بر روی Connect به DAC متصل خواهید شد. اتصال به DAC از طریق SQLCMD همان طور که بیان گردید برای اتصال به DAC نیاز است که کاربر نقش sysadmin داشته باشد. برای وصل شدن به DAC از طریق SQLCMD ابتدا CMD را باز کرده و کد زیر را وارد کنید: sqlcmd -S [server name] -U [user name] -P [password] -A عبارت -A بیانگر این است که کاربر میخواهد با استفاده از DAC به دیتابیس وصل شود. بعد از اتصال موفقیت آمیز اعلانی بصورت ۱> نمایش خواهد داد که در آن میتوانید کوئری T-SQL را وارد نمایید. بعنوان مثال با استفاده از کد زیر میتوانید Session ID مرتبط با کوئری های فعال را مشاهده نمایید: SELECT req.session_id, req.status, req.total_elapsed_time FROM sys.dm_exec_requests req WHERE status = 'running' AND req.total_elapsed_time > 1 GO زمانی که از طریق DAC به دیتابیس متصل شدید، میتواند با استفاده از کدهای زیر وضعیت سلامت دیتابیس را بررسی کرده و مشکلات بوجود آمده را حل نماید: -- Locking Information SELECT * FROM sys.dm_tran_locks GO -- Cache Status SELECT * FROM sys.dm_os_memory_cache_counters GO -- Active Sessions SELECT * FROM sys.dm_exec_sessions GO -- Requests Status SELECT * FROM sys.dm_exec_requests GO پیدا کردن کاربری که با DAC متصل است با استفاده از کد زیر میتوان کاربری که از طریق DAC به دیتابیس متصل شده است را مشاهده کرد: Select CASE WHEN es.session_id= @@SPID THEN 'you are :)' ELSE es.host_name END AS Who_is_running_DAC, es.original_login_name, es.session_id, es.login_time, es.status from sys.endpoints as ep join sys.dm_exec_sessions es on ep.endpoint_id=es.endpoint_id where ep.name='Dedicated Admin Connection' مثال عملی به منظور استفاده عملی از DAC، اسکریپت زیر را در دیتابیس اجرا کنید. اسکریپت فوق منجر به بار زیاد در سرورشده و ممکن است آن را از دسترس خارج کند ( اگر سرور شما ضعیف است پیشنهاد میشود از اجرای کوئری فوق اجتناب کنید. USE AdventureWorks2022 GO SELECT * FROM Person.Address CROSS JOIN Person.Address a1 CROSS JOIN Person.Address a2 CROSS JOIN Person.Address a3 CROSS JOIN Person.Address a4 CROSS JOIN Person.Address a5 CROSS JOIN Person.Address a6 CROSS JOIN Person.Address a7 CROSS JOIN Person.Address a8 بعد از اجرای کوئری فوق با استفاده از DAC به دیتابیس متصل شوید و سپس کوئری زیر را اجرا کنید. کوئری زیر Session ID مرتبط با کوئری بالا را نشان خواهد داد و میتوانید Session ID فوق را با kill متوقف کنید. SELECT r.session_id, p.status, r.start_time, r.command, text, p.program_name FROM sys.dm_exec_requests AS r, master.dbo.sysprocesses AS p CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) WHERE r.session_id = p.spid خروجی کوئری بالا بصورت زیر است: همانطور که مشاهده میکنید Session ID ای که کوئری را اجرا کرده است ۸۰ میباشد. با استفاده از دستور زیر این کوئری متوقف خواهد شد. kill 80 سخن پایانی در این مقاله با استفاده از دو روش نحوه اتصال به دیتابیس از طریق کانکشن DAC بیان گردید. با استفاده از این قابلیت ادمین دیتابیس میتواند در زمانی که که SQL Server به درخواست های اتصال استاندارد پاسخ مناسبی نمیدهد، به پایگاه داده وصل شده و آن را عیب یابی کرده و مشکلات بوجود آمده را حل نماید.با آموزشهای SQL نیک آموز، میتوانید این مفاهیم را در قالب یکی از بهترین دورههای تخصصی بهصورت عملی تجربه کنید. چه رتبه ای میدهید؟ میانگین ۰ / ۵. از مجموع ۰ اولین نفر باش دانلود مقاله مفهوم DAC Connection در SQL Server فرمت PDF 9 صفحه حجم 1 مگابایت دانلود مقاله معرفی نویسنده مقالات 414 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده تیم فنی نیک آموز معرفی محصول مقالات مرتبط ۱۶ مهر SQL Server مفهوم Pagination در نحوه نمایش اطلاعات (رکوردها) تیم فنی نیک آموز ۰۲ آبان SQL Server ابزار Database Engine Tuning Advisor تیم فنی نیک آموز ۱۵ مهر SQL Server معرفی Performance Monitor ابزار مانیتورینگ SQL Server تیم فنی نیک آموز ۱۱ مهر SQL Server راهنمای جامع مانیتورینگ بکاپ ها در SQL Server تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ