آموزش نصب MongoDB روی CentOS 8

مقدمه

MongoDB که با نام Mongo هم شناخته می‌شود، یک پایگاه داده سندمحور متن‌باز است که در بسیاری از برنامه‌های وب مدرن استفاده می‌شود. این دیتابیس در دسته NoSQL قرار می‌گیرد؛ زیرا برخلاف پایگاه‌های داده رابطه‌ای، از ساختار جدولی سنتی استفاده نمی‌کند.

به جای آن، MongoDB از اسناد شبیه JSON با ساختار پویا استفاده می‌کند. یعنی برخلاف دیتابیس‌های رابطه‌ای، لازم نیست قبل از افزودن داده‌ها، ساختار (Schema) مشخصی تعریف کنید و هر زمان که نیاز باشد می‌توانید ساختار داده‌ها را تغییر دهید.

در این آموزش یاد می‌گیرید چگونه MongoDB را روی سرور CentOS 8 نصب کنید، عملکرد آن را تست کنید و آن را به عنوان یک سرویس systemd مدیریت نمایید.


پیش‌نیازها

برای انجام این آموزش نیاز دارید:

  • یک سرور با سیستم‌عامل CentOS 8
  • یک کاربر غیر root با دسترسی sudo
  • فایروال firewalld فعال و تنظیم‌شده

مرحله اول — نصب MongoDB

به‌صورت پیش‌فرض، بسته رسمی MongoDB در مخازن استاندارد CentOS وجود ندارد. بنابراین باید مخزن رسمی MongoDB را به سیستم اضافه کنید.

ابتدا ویرایشگر nano را نصب کنید:

sudo dnf install nano

سپس فایل مخزن MongoDB را ایجاد کنید:

sudo nano /etc/yum.repos.d/mongodb-org.repo

و محتوای زیر را داخل آن قرار دهید:

[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

این تنظیمات مشخص می‌کند که DNF بسته‌های MongoDB را از مخزن رسمی آن دریافت کند.

بعد از ذخیره فایل، بررسی کنید مخزن شناسایی شده باشد:

dnf repolist

اگر همه‌چیز درست باشد، در خروجی باید مخزن mongodb-org را ببینید.

اکنون MongoDB را نصب کنید:

sudo dnf install mongodb-org

مرحله دوم — غیرفعال کردن Transparent Huge Pages برای بهبود عملکرد

در CentOS 8 قابلیتی به نام Transparent Huge Pages (THP) به صورت پیش‌فرض فعال است، اما MongoDB توصیه می‌کند آن را غیرفعال کنید؛ چون ممکن است عملکرد دیتابیس را کاهش دهد.

یک سرویس systemd برای غیرفعال کردن THP ایجاد کنید:

sudo nano /etc/systemd/system/disable-thp.service

و این محتوا را داخل آن قرار دهید:

[Unit]
Description=Disable Transparent Huge Pages (THP)
After=sysinit.target local-fs.target
Before=mongod.service

[Service]
Type=oneshot
ExecStart=/bin/sh -c ‘echo never | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null’

[Install]
WantedBy=basic.target

سپس سرویس را بارگذاری و اجرا کنید:

sudo systemctl daemon-reload
sudo systemctl start disable-thp.service
sudo systemctl enable disable-thp

برای اطمینان از غیرفعال شدن THP:

cat /sys/kernel/mm/transparent_hugepage/enabled

اگر خروجی چیزی شبیه زیر باشد یعنی THP غیرفعال شده:

always madvise [never]

مرحله سوم — راه‌اندازی سرویس MongoDB و تست آن

حالا سرویس MongoDB را اجرا کنید:

sudo systemctl start mongod

و وضعیت آن را بررسی کنید:

sudo systemctl status mongod

اگر سرویس فعال باشد، خروجی مشابه زیر می‌بینید:

Active: active (running)

برای اینکه MongoDB بعد از هر بار روشن شدن سرور به‌صورت خودکار اجرا شود:

sudo systemctl enable mongod

برای تست عملکرد MongoDB دستور زیر را اجرا کنید:

mongo –eval ‘db.runCommand({ connectionStatus: 1 })’

اگر در خروجی مقدار زیر را دیدید یعنی MongoDB به درستی کار می‌کند:

“ok” : 1

مرحله چهارم — مدیریت سرویس MongoDB

از آنجا که MongoDB به عنوان سرویس systemd نصب شده، می‌توانید با دستورات زیر آن را مدیریت کنید:

بررسی وضعیت:

sudo systemctl status mongod

متوقف کردن:

sudo systemctl stop mongod

شروع مجدد:

sudo systemctl start mongod

ری‌استارت:

sudo systemctl restart mongod

غیرفعال کردن اجرای خودکار:

sudo systemctl disable mongod

فعال کردن مجدد اجرای خودکار:

sudo systemctl enable mongod

نتیجه‌گیری

در این آموزش یاد گرفتید چگونه:

  • مخزن رسمی MongoDB را به CentOS 8 اضافه کنید
  • MongoDB را نصب کنید
  • THP را برای بهبود عملکرد غیرفعال کنید
  • سرویس MongoDB را اجرا و مدیریت کنید

به عنوان گام بعدی، پیشنهاد می‌شود تنظیمات امنیتی MongoDB را انجام دهید تا سرور دیتابیس شما در برابر دسترسی‌های غیرمجاز محافظت شود.

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *