مفهوم Attach و Detach در SQL Server

ساخت وبلاگ

اهمیت Attach و Detach در SQL Server زمانی مشخص می‌شود که بخواهید حجم زیادی از داده‌های یک دیتابیس را جدا کنید و آن را دوباره به همان یا نمونه دیگری از دیتابیس SQL Server بچسبانید. پیش از اینکه به‌سراغ کاربردهای این دو عمل برویم، بیایید ابتدا کمی بیشتر با آن‌ها آشنا شویم.

Attach در SQL Server

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

Detach در SQL Server

Detach در SQL Server نقطه مقابل Attach است. زمانی که شما داده‌ها را از نمونه SQL Server جدا می‌کنید، بدون اینکه فایل‌های دیتابیس حذف شوند، درواقع از Detach استفاده کرده‌اید. در این حالت، ارتباط بین دیتابیس و آن نمونه SQL Server قطع می‌شود و دیگر در دسترس نیست. Detach در SQL Server زمانی کاربردی است که شما قصد دارید فایل‌های دیتابیس را به جای دیگری منتقل کنید، یا اینکه داده‌ها نیاز به تعمیر و نگهداری (Maintenance) دارند و باید به نمونه دیگری انتقال پیدا کنند. البته به‌طورکلی، Detach کاربرد کمتری نسبت به Attach دارد.

استفاده‌ های متداول از Attach و Detach

مهم‌ترین کاربردهای Attach و Detach در SQL Server که می‌توانند به‌صورت مکمل استفاده شوند، عبارتند از:

  • جابه‌جایی داده‌ها و منتقل‌کردن آن‌ها به سرور هدف
  • انجام کارهای مربوط به تعمیر و نگهداری از داده‌ها
  • حفظ سلامت و امنیت داده‌ها هنگام ارتقای نسخه های SQL Server
  • انتقال داده‌ها به محیط‌های توسعه یا آزمایش برای کارکردن با داده‌های واقعی، بدون تأثیر بر محیط اصلی
  • ساده‌شدن فرآیند انتقال دیتابیس از یک نسخه SQL Server به نسخه دیگر یا سایر پلتفرم‌های سخت‌‌افزاری
  • ادغام و یکپارچه‌سازی داده‌هایی که در چند دیتابیس مختلف قرار دارند.

فرآیند و روش اجرای Attach در SQL Server

  1. به موتور پایگاه داده متصل شوید و از بخش Databases، گزینه Attach را انتخاب کنید.

فرایند و روش اجرای Attach در SQL Server

  1. روی Add کلیک کنید تا فایل mdf را پیدا کنید که قصد Attach کردن آن را دارید. فایل را انتخاب کنید و OK را بزنید.

Attach و Detach در SQL Server

  1. زمانی که از انتخاب فایل صحیح مطمئن شدید، روی OK کلیک کنید. می‌بینید که صفحه یک علامت سبز را نشان می‌دهد و سپس بسته می‌شود.

فرایند و روش اجرای Attach در SQL Server

می‌توانید از این کد برای مشخص‌کردن محل دقیق Attach دیتابیس استفاده کنید:

C:ProgramFilesMicrosoftSQLServerMSSQL16.MSSQLSERVERMSSQLDATAAdventureWorks2022_Data.mdf

فرآیند و روش اجرای Detach در SQL Server

  1. ابتدا روی Databases کلیک کنید و از بخش Database Snapshots ، گزینه Tasks و سپس Detach را انتخاب کنید.

Attach و Detach در SQL Server

  1. سپس صفحه زیر را مشاهده می‌کنید.

فرایند و روش اجرای Detach در SQL Server

گزینه Drop Connections نشان می‌دهد که آیا اتصالی به دیتابیس فعلی وجود دارد یا خیر. توجه داشته باشید که امکان جداکردن دیتابیس با اتصالات فعال وجود ندارد و در این حالت، Detach ناموفق خواهد بود.

گزینه Update Statistics هم آمارهای قدیمی را قبل از جداکردن دیتابیس به‌روز می‌کند. اگر تیک این گزینه را بردارید، آمار به همان شکلی باقی می‌ماند که در زمان جدا کردن دیتابیس بود.

  1. هردو گزینه را انتخاب کنید و OK را بزنید. زمانی که Detach اتفاق بیافتد، وضعیت به Success تغییر می‌یابد.

فرایند و روش اجرای Detach در SQL Server

تفاوت بین Attach و Detach در SQL Server چیست؟

همانطور که گفتیم، Attach و Detach در SQL Server به نوعی در مقابل یکدیگر قرار می‌گیرند. زمانی که یک دیتابیس را پیوست (Attach) می‌کنید، یعنی:

  1. فایل پایگاه داده به یک نمونه SQL Server متصل می‌شود.
  2. داده‌ها برای درخواست کوئری جدید، اصلاح، تعمیر و نگهداری در دسترس هستند.

در مقابل، وقتی که دیتابیس را جدا (Detach) می‌کنید، به این معناست که:

  1. آن داده‌ها از نمونه SQL Server حذف می‌شوند و دیگر برای استفاده در دسترس نیستند.
  2. فایل داده‌ها آسیبی نمی‌بیند، دست‌نخورده باقی می‌ماند و می‌توانید آن را به نمونه دیگری از SQL Server متصل کنید.

چه زمانی نمی توانیم Attach و Detach در SQL Server را انجام دهیم؟

در بعضی مواقع، امکان اجرای Attach و Detach در SQL Server وجود ندارد. بیایید این موقعیت‌ها را به تفکیک برای هرکدام بررسی کنیم.

دلایل انجام نشدن Attach

چرا نمی‌توان دیتابیس را Attach کرد؟ شاید پاسخ این مشکل شما در بین موارد زیر باشد:

  1. دیتابیس حاوی فایل‌های بازیابی است و نمی‌تواند پیوست شود. اگر Sequence بازیابی را متوقف کنید، می‌توانید پیوست‌کردن دیتابیس را انجام دهید. بعد از تمام‌شدن عملیات، می‌توانید دوباره Sequence را آغاز کنید.
  2. دیتابیس ایجادشده در نسخه‌های جدیدتر SQL Server را نمی‌توان به نسخه‌های قبلی پیوست کرد.
  3. دسترسی کامل به فایل‌های دیتابیس را ندارید.

علت های اجرا نشدن Detach

اگر هریک از موارد زیر برای شما صدق کند، نمی‌توانید دیتابیس را جدا کنید:

  1. دیتابیس تکثیر و منتشر شده است. در چنین شرایطی، قبل از جداکردن پایگاه داده، باید انتشار آن را با اجرای sp_replicationdboption غیرفعال کنید.
  2. یک Snapshot روی دیتابیس وجود دارد. قبل از جداکردن پایگاه داده، باید تمام Snapshot ها را پاک کنید.
  3. دیتابیس جزو گروه همواره دسترس (Always On Availability) است. تا زمانی که پایگاه داده از این گروه حذف نشود، نمی‌توان آن را جدا کرد.
  4. دیتابیس در Mirroring Session قرار دارد.
  5. دیتابیس از نوع پایگاه داده سیستمی است و قابل جداشدن نیست.

جمع بندی: Attach و Detach در SQL Server

Attach و Detach در SQL Server دو عمل کاربردی هستند که امکان افزودن داده به دیتابیس یا حذف از آن را با سرعت بیشتر فراهم کرده‌اند. در این مقاله، هرآنچه لازم بود درباره این عملیات بدانید، باهم بررسی کردیم و شیوه انجام هرکدام را آموزش دادیم.

DBCC OPENTRAN...
ما را در سایت DBCC OPENTRAN دنبال می کنید

برچسب : نویسنده : fakhravary بازدید : 3 تاريخ : سه شنبه 12 تير 1403 ساعت: 20:56