خطای SQL Server 21028: “کامپوننتهای Replication نصب نشدهاند” – راهنمای جامع رفع مشکل
هنگام کار با سیستمهای مدیریت پایگاه داده (DBMS) SQL Server، ممکن است با خطاهای مختلفی مواجه شوید که هر یک نشاندهنده مشکلی خاص در پیکربندی، عملیات یا نصب سرویسها هستند. یکی از این خطاهای رایج، خطای 21028 است که با پیغام “Replication components not installed” ظاهر میشود. این خطا به طور مستقیم به عدم وجود کامپوننتهای مورد نیاز برای عملکرد Replication (تکثیر داده) در SQL Server اشاره دارد. Replication یک فرآیند حیاتی در معماریهای پیچیده پایگاه داده است که امکان توزیع، همگامسازی و دسترسی به دادهها را در چندین سرور یا پایگاه داده فراهم میکند. این قابلیت برای سناریوهایی مانند افزایش دسترسپذیری، توازن بار، گزارشگیری از دیتابیسهای ثانویه و مدیریت دادههای توزیع شده بسیار اهمیت دارد. مواجهه با این خطا به این معنی است که تلاش شما برای پیکربندی یا استفاده از قابلیت Replication با شکست مواجه شده است، زیرا اجزای لازم برای اجرای این عملیات در Instance جاری SQL Server شما نصب نشدهاند. این مسئله میتواند مانع از پیادهسازی راهکارهای مهم در معماری داده شما شود و نیازمند یک رویکرد سیستماتیک برای رفع است. در ادامه به بررسی دقیق علت این خطا، سناریوهای رایج و راهکارهای عملی و گام به گام برای رفع آن میپردازیم تا بتوانید با موفقیت قابلیت Replication را در محیط SQL Server خود فعال کنید.
علت خطای SQL Server 21028
علت اصلی و بنیادین خطای SQL Server 21028، عدم انتخاب و نصب ویژگی “SQL Server Replication” در هنگام نصب اولیه یا اضافه کردن ویژگیها به یک Instance موجود از SQL Server است. SQL Server یک سیستم ماژولار است و به شما این امکان را میدهد که در حین نصب، تنها کامپوننتها و ویژگیهای مورد نیاز خود را انتخاب کنید تا از اشغال فضای دیسک و منابع سیستم توسط اجزای غیرضروری جلوگیری شود. قابلیت Replication نیز یکی از این ویژگیهای اختیاری است که به صورت پیشفرض ممکن است در نصبهای Custom یا Minimal انتخاب نشده باشد.
سناریوهای رایج که منجر به این خطا میشوند، عبارتند از:
* **نصب اولیه بدون انتخاب Replication:** رایجترین حالت زمانی است که SQL Server را نصب کردهاید، اما در مرحله “Feature Selection” از wizard نصب، تیک گزینه “SQL Server Replication” را فعال نکردهاید. این اتفاق معمولاً در نصبهای سریع یا توسط مدیران سیستم که به Replication نیاز فوری نداشتهاند، رخ میدهد.
* **تلاش برای پیکربندی Replication در Instance ناقص:** ممکن است یک مدیر پایگاه داده (DBA) یا توسعهدهنده تلاش کند تا Replication را با استفاده از SQL Server Management Studio (SSMS) یا از طریق دستورات T-SQL (مانند `sp_addpublication` یا `sp_addsubscription`) پیکربندی کند، در حالی که کامپوننتهای مورد نیاز در Instance فعلی نصب نشدهاند. در چنین حالتی، سیستم بلافاصله خطای 21028 را برمیگرداند.
* **بازیابی دیتابیس Replication شده:** اگر یک دیتابیس که قبلاً در یک محیط Replication شده بوده را به یک Instance جدید SQL Server که کامپوننتهای Replication را ندارد، بازیابی (Restore) کنید، ممکن است هنگام دسترسی به متادیتای Replication یا تلاش برای فعالسازی مجدد آن، با این خطا مواجه شوید.
* **ارتقاء (Upgrade) Instance بدون Replication:** در مواردی که یک Instance قدیمی SQL Server را به نسخه جدیدتر ارتقاء میدهید و در طول فرآیند ارتقاء، ویژگی Replication را دوباره انتخاب نکنید، ممکن است این خطا ظاهر شود، حتی اگر در نسخه قبلی فعال بوده باشد.
* **استفاده از ابزارهای شخص ثالث:** برخی ابزارهای مدیریت یا توسعه پایگاه داده که با Replication SQL Server تعامل دارند، در صورت عدم وجود کامپوننتهای Replication، ممکن است این خطا را نمایش دهند.
این خطا به وضوح نشان میدهد که شما باید به فرآیند نصب SQL Server بازگردید و ویژگی Replication را به Instance موجود خود اضافه کنید. این یک مشکل نرمافزاری در سطح سیستم عامل یا دیتابیس نیست، بلکه یک مسئله پیکربندی در حین نصب اولیه است.
راهکارهای عملی برای رفع خطای 21028
رفع خطای 21028 نیازمند اضافه کردن ویژگی “SQL Server Replication” به Instance موجود SQL Server شما است. این فرآیند معمولاً از طریق ابزار SQL Server Setup (Wizard نصب) انجام میشود. در ادامه، گامهای عملی و مرحلهای برای رفع این مشکل را توضیح میدهیم:
1. آمادهسازی و پیشنیازها
قبل از شروع، مطمئن شوید که موارد زیر را در اختیار دارید:
* **رسانه نصب SQL Server:** فایلهای نصب SQL Server (ISO، DVD یا فایلهای اجرایی) با همان نسخه و Service Pack که Instance فعلی شما نصب شده است. این بسیار مهم است که از نسخه منطبق استفاده کنید.
* **امتیازات مدیریتی:** حساب کاربری که برای اجرای فرآیند نصب استفاده میکنید باید دارای امتیازات Administrator در سیستم عامل باشد.
* **نسخه SQL Server:** اگر از نسخه دقیق SQL Server فعلی خود مطمئن نیستید، میتوانید آن را با اجرای دستور T-SQL زیر در SQL Server Management Studio (SSMS) یا Azure Data Studio بررسی کنید:
SELECT @@VERSION;
این دستور اطلاعات کاملی در مورد نسخه، ویرایش (Edition) و شماره Build SQL Server شما ارائه میدهد. به عنوان مثال، خروجی ممکن است شامل “Microsoft SQL Server 2019 (RTM) – 15.0.2000.5 (X64)” باشد که نشاندهنده نسخه SQL Server 2019 است.
2. اضافه کردن ویژگی Replication با استفاده از SQL Server Setup Wizard
این روش اصلی و توصیه شده برای اضافه کردن کامپوننتهای Replication است:
* **اجرای Setup Wizard:** رسانه نصب SQL Server را اجرا کنید. در صفحه اولیه SQL Server Installation Center، گزینه **”Installation”** را از پنل سمت چپ انتخاب کنید.
* **انتخاب گزینه اضافه کردن ویژگی:** از گزینههای موجود در بخش Installation، روی **”New SQL Server stand-alone installation or add features to an existing installation”** کلیک کنید. با وجود اینکه عنوان این گزینه شامل “New SQL Server installation” است، این گزینه برای اضافه کردن ویژگی به یک Instance موجود نیز کاربرد دارد.
* **تایید Product Key (در صورت نیاز):** اگر از یک نسخه ارزیابی (Evaluation) استفاده میکنید، معمولاً نیازی به وارد کردن Product Key نیست. در غیر این صورت، Product Key معتبر خود را وارد کنید و روی “Next” کلیک کنید.
* **پذیرش شرایط مجوز:** شرایط مجوز (License Terms) را بخوانید، تیک “I accept the license terms” را بزنید و روی “Next” کلیک کنید.
* **بررسی قوانین سراسری (Global Rules):** Setup Wizard قوانین سراسری را برای شناسایی مشکلات احتمالی که ممکن است در فرآیند نصب اختلال ایجاد کنند، اجرا میکند. پس از گذراندن این مرحله، “Next” را کلیک کنید.
* **انتخاب Instance:** در صفحه **”Installation Type”**، گزینه **”Add features to an existing instance of SQL Server”** را انتخاب کنید. سپس از منوی کشویی، Instance مورد نظر خود را که قصد دارید Replication را به آن اضافه کنید، انتخاب نمایید. روی “Next” کلیک کنید.
* **انتخاب ویژگی (Feature Selection):** این مهمترین مرحله است. در صفحه **”Feature Selection”**، تیک گزینه **”SQL Server Replication”** را فعال کنید. ممکن است سایر ویژگیهای نصب شده قبلی نیز نمایش داده شوند که نیازی به تغییر آنها نیست. روی “Next” کلیک کنید.
* **بررسی قوانین ویژگی (Feature Rules):** Setup Wizard قوانین مربوط به ویژگیهای انتخاب شده را بررسی میکند. پس از تایید، “Next” را کلیک کنید.
* **تنظیمات فضای دیسک (Disk Space Requirements):** این صفحه میزان فضای مورد نیاز برای نصب ویژگیهای انتخاب شده را نمایش میدهد. مطمئن شوید که فضای کافی در درایوهای مشخص شده وجود دارد و روی “Next” کلیک کنید.
* **آماده برای نصب (Ready to Install):** در صفحه “Ready to Install”، خلاصهای از ویژگیهایی که قرار است نصب شوند (شامل SQL Server Replication) را مشاهده خواهید کرد. روی **”Install”** کلیک کنید تا فرآیند اضافه کردن ویژگی آغاز شود.
* **تکمیل نصب:** پس از اتمام فرآیند نصب، صفحه “Complete” ظاهر میشود. اگر همه چیز با موفقیت انجام شده باشد، وضعیت “Succeeded” را برای Replication مشاهده خواهید کرد. روی “Close” کلیک کنید تا Setup Wizard بسته شود.
3. تأیید نصب Replication
پس از اضافه کردن ویژگی Replication، مهم است که تأیید کنید این کامپوننتها به درستی نصب شدهاند. میتوانید این کار را با چند روش انجام دهید:
* **بررسی از طریق SQL Server Management Studio (SSMS):**
* SSMS را باز کنید و به Instance مورد نظر متصل شوید.
* در Object Explorer، به بخش **”Replication”** بروید. اگر این گزینه قبلاً در دسترس نبود و اکنون قابل مشاهده است، نشانهای از نصب موفقیتآمیز است.
* تلاش کنید یک Publisher یا Distributor جدید پیکربندی کنید. اگر Wizard مربوط به پیکربندی Replication بدون خطای 21028 اجرا شود، به این معنی است که کامپوننتها فعال شدهاند.
* **بررسی فایلهای DLL مرتبط:**
* کامپوننتهای Replication شامل مجموعهای از فایلهای DLL و اجرایی هستند که در پوشههای نصب SQL Server قرار میگیرند. میتوانید به مسیر نصب SQL Server (معمولاً `C:\Program Files\Microsoft SQL Server\MSSQLXX.\MSSQL\Binn`) بروید و به دنبال فایلهایی مانند `repl.dll`، `replsync.dll` یا `sqlagent.exe` باشید که مربوط به Replication و SQL Server Agent هستند (SQL Server Agent برای Replication ضروری است).
* **استفاده از T-SQL برای بررسی:**
* اگرچه هیچ تابع مستقیم T-SQL برای پرسوجو درباره نصب بودن Replication به طور کامل وجود ندارد، اما وجود برخی از stored procedureها و جداول سیستمی مرتبط با Replication میتواند نشانهای از نصب موفقیتآمیز باشد. میتوانید سعی کنید به کاتالوگ stored procedureهای سیستمی دسترسی پیدا کنید:
USE master;
GO
SELECT name
FROM sys.objects
WHERE name LIKE 'sp_repl%' AND type = 'P';
این کوئری لیستی از stored procedureهایی که با `sp_repl` شروع میشوند و برای Replication استفاده میشوند را بازمیگرداند. اگر لیستی از این stored procedureها را مشاهده کردید، این یک نشانه قوی است که کامپوننتهای Replication نصب شدهاند.
SELECT name
FROM sys.databases
WHERE is_published = 1 OR is_subscribed = 1 OR is_mergepublished = 1 OR is_distributor = 1;
این کوئری دیتابیسهایی را که به عنوان Publisher، Subscriber یا Distributor پیکربندی شدهاند، لیست میکند. اگرچه این کوئری نشاندهنده نصب بودن کامپوننتها نیست، اما به شما امکان میدهد وضعیت Replication را در دیتابیسهای موجود بررسی کنید.
4. عیبیابی در صورت بروز مشکل
* **بررسی لاگهای نصب:** اگر در طول فرآیند اضافه کردن ویژگی Replication با مشکلی مواجه شدید، لاگهای نصب SQL Server را بررسی کنید. این لاگها معمولاً در مسیر `C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\Log` (برای SQL Server 2019) یا مسیر مشابهی برای نسخههای دیگر قرار دارند و میتوانند اطلاعات ارزشمندی در مورد دلیل شکست نصب ارائه دهند.
* **اجرای Windows Update:** مطمئن شوید که سیستم عامل شما با آخرین بهروزرسانیها و Service Packها بهروز است. گاهی اوقات، مشکلات نصب SQL Server به دلیل عدم وجود پیشنیازهای سیستم عامل است.
* **خاموش کردن آنتیویروس:** در برخی موارد، نرمافزارهای آنتیویروس ممکن است در فرآیند نصب SQL Server اختلال ایجاد کنند. سعی کنید آنها را موقتاً غیرفعال کرده و مجدداً فرآیند نصب را امتحان کنید.
* **بازنشانی (Reboot) سرور:** پس از نصب ویژگیها، همیشه توصیه میشود سرور را یک بار راهاندازی مجدد (Reboot) کنید تا اطمینان حاصل شود که تمام تغییرات سیستمی به درستی اعمال شدهاند.
با انجام دقیق این مراحل، شما قادر خواهید بود خطای SQL Server 21028 را رفع کرده و قابلیت Replication را در Instance SQL Server خود فعال کنید. این امر به شما امکان میدهد تا از تمام مزایای Replication برای سناریوهای پیچیده مدیریت داده خود بهرهمند شوید.