فعال سازی Replica در Mongodb
در ادامه، آموزش نحوهٔ فعالسازی Replica را در سرویس دیتابیس مونگو دی بی به شما ارائه میدهیم.
دیتابیس MongoDB این قابلیت را دارد که دادهها را روی چندین سرور ذخیره و از آنها استفاده کند. اما در برخی مواقع، نیاز است که این ویژگی بهصورت تکسروره اجرا شود. برای فعالسازی Replica در دیتابیس ابری MongoDB چابکان، کافی است ابتدا این قابلیت را از طریق تنظیمات سرویس فعال کرده، تنظیمات را ذخیره کنید و پس از ریاستارت شدن سرویس، از طریق کنسول، Replica موردنظر را تنظیم نمایید.
مرحلهٔ اول: ایجاد key
در مرحلهٔ اول باید یک فایل کلید (key) برای Replica ایجاد کنید. با وارد کردن دستور زیر در کنسول سرویس خود، میتوانید یک
فایل کلید به نام replica.key بسازید. (توجه داشته باشید که این فایل باید با همین نام و در مسیر /data/db قرار گیرد.)
openssl rand -base64 756 > /data/db/replica.key && chmod 600 /data/db/replica.key
مرحله دوم: تنظیم Replica به صورت تکسرور
برای انجام این کار، ابتدا باید از داشبورد تنظیمات سرویس MongoDB کلید Replica را فعال کنید.

حتما پس از فعالسازی کلید Replica در تنظیمات، روی دکمه ذخیره تغییرات کلیک کنید.
حال مجدد به قسمت کنسول سرویس خود رفته و دستورات زیر را وارد کنید:
ابتدا با استفاده از دستور زیر وارد mongo shell می شویم (بجای USERNAME و PASSWORD اطلاعات خود را وارد کنید):
- ورژنهای قبل از ۶
- ورژنهای ۶ به بعد
mongo -u USERNAME -p PASSWORD
mongosh -u USERNAME -p PASSWORD
سپس دستور زیر را وارد کنید (بهجای HOST و PORT اطلاعات سرویس خود را قرار دهید):
rs.initiate({
_id: 'mongo-set',
protocolVersion: 1,
members: [
{_id: 0, host: 'HOST:PORT'}
]
});
مرحله سوم: بررسی وضعیت Replica
جهت اطمینان از درستی فرایند میتوانید دستور زیر را اجرا کنید:
rs.status();
در خروجی این دستور، مقدار myState را بررسی کنید. این مقدار به شکل زیر تفسیر میشود:
| کد | نام مستعار | معنی |
|---|---|---|
| 1 ✅ حالت درست | PRIMARY | کلاستر آماده استفاده است |
| 2 | SECENDARY | وضعیت read-only، نیاز به PRIMARY |
| 3 | RECOVERING | کلا ستر هنوز آماده نیست |
| 7 | ARBITER | حالت فقط رایدهنده |
0 یا null | ERROR | خطا در کلاستر |
اطلاعات مربوط به سرویس مانند آدرس سرور، پورت، نام کاربری و رمزعبور پیشفرض را میتوانید در داشبورد سرویس مشاهده کنید:

