مقدمه
در این آموزش قصد داریم چگونگی گرفتن بکاپ (backup) از دیتابیس موجود خارج از دارکوب و بازیابی (restore) آن در Mongodb دارکوب را ببینیم. برای انجام این کار لازم است سه مرحله را طی کنید: ساخت یک اپ Mongodb در دارکوب گرفتن بکاپ از دادههای دیتابیس خارج از دارکوب بازیابی دادهها در اپ Mongodb دارکوب در ادامه به بررسی هر کدام از این مراحل میپردازیم:
ساخت یک اپ Mongodb در دارکوب
شما بهراحتی و با چند کلیک میتوا نید یک اپ Mongodb در دارکوب بسازید. برای این کار به مستند مربوطه مراجعه کنید.
گرفتن بکاپ از دادههای دیتابیس خارج از دارکوب
برای این کار ما از ابزار mongodump استفاده میکنیم که یک CLI برای بکاپ گرفتن از Mongodb است.
( ابزار خط فرمان «mongodump» که توسط خود mongoDB ایجاد شده است. ). mongodump میتواند بکاپ را به شکل فایل های BSON یا یک آرشیو gzip ایجاد کند. برای گرفتن بکاپ مراحل زیر را طی کنید:
قبل از نصب ابزار mongodump نیاز مند اقدامات زیر را انجام دهید ابتدا دستور زیر را اجرا کنید:
apt-get update
سپس پکیج wget را با دستور زیر نصب کنید:
apt install wget
نصب mongodump
برای نصب ابزار mongostore و mongodump نیاز است مراحل زیر را پیش ببرید: 1- ابتدا باید repository Mongodb اضافه کنید:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list
۲- سپس دستور زیر را بزنید :
apt update
۳-برای اینکه ابزارهای کار با دیتابیس Mongodb نصب شود دستور زیر را وارد کنید:
apt-get install -y mongodb-database-tools
۴- برای اینکه مطمئن شوید فرایند نصب را بهدرستی طی کردهاید از دستور زیر استفاده کنید:
mongorestore --version
عملیات بکاپ گیری
هشدار: در صورتی که عملیات بکاپگیری را قبلا انجام دادهاید نیازی ندارید این مرحله را دوباره اجرا کنید.
1- ابتدا با استفاده از دستور mongodump عملیات backup را انجام دهیم:
mongodump --uri="mongodb://{user_admin}:{password}&{host}:{port}" –db your_database_name --collection={collection} --out=/path/to/backup
توضیحات:
- uri-- آدرس دیتابیس
- db-- دیتابیس
- collection -- کالکشن مورد نظر
- out -- مسیر دایرکتوری را قرار دهید که قصد دارید فایل بکاپ را در آن ذخیره کنید در صورتی که دیتابیس که در حال بکاپگیری از آن هستید در سیستم لوکال خود قرار دارد از نمونه دستور زیر میتوانید از استفاده کنید :
mongodump --db mydatabase --out /backups
اگر دیتابیس Mongodb در حال فرایند بکاپگیری هستید از آن هستید در روی هاست دیگر قرار دارد برای ارتباط با دیتابیس Mongodb باید آدرس و پورت را جایگزین host , port کنید همچنین یوزرنیم و پسورد جایگزین کنید
mongodump
--uri="mongodb://root:{password}@8d33e042-7452-44b3-b04b-f44272767c07.hsvc.ir:31882/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false" --db=test --collection=accounts --out=/home/hamravesh/backups
برای اتصال به دیتابیس MongoDB که روی هاست دیگری قرار دارد و در حال بکاپگیری از آن هستید، باید اطلاعات اتصال زیر را مشخص کنید:
- آدرس هاست (مثل 8d33e042-7452-44b3-b04b-f44272767c07.hsvc.ir) و شماره پورت (پیشفرض: 27017) را به جای
hostوportوارد کنید. - یوزرنیم و پسورد: اطلاعات کاربری که مجوز دسترسی به دیتابیس را دارد (مثل
usernameوpassword) را وارد کنید.
نمونه دستور
mongodump --uri="mongodb://root:12344fghyrer@8d33e042-7452-44b3-b04b-f44272767c07.hsvc.ir:31882/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false" --db=test --collection=accounts --out=/home/hamravesh/backups
هشدار:
حتما مسیر دایرکتوری که قصد دارید فایل بکاپ را در آن ذخیره کنید وجود داشته باشد.
با این دستور، MongoDB فرایند پشتیبانگیری پایگاه داده MongoDB در اوبونتو (سیستم local) را آغاز میکند. درواقع، یک Dump از پایگاه داده در دایرکتوری ایجاد میکند.