Chuyển tới nội dung chính

🔄 Restore MongoDB

📋 Chuẩn Bị

1. Mount Ổ Backup (Nếu Cần)

# Tạo thư mục mount point
mkdir -p /data/backup

# Mount từ NAS server
sudo mount -t cifs -o username=<username>,password=<password>,vers=2.0 //<nas_ip>/Backup /data/backup
mẹo

Đảm bảo:

  • Có quyền truy cập vào NAS
  • Thư mục mount point tồn tại
  • Cài đặt cifs-utils nếu cần

🚀 Các Phương Thức Restore

1. Restore Toàn Bộ Database

mongorestore --host <host_address> \
-u "<username>" \
-p "<password>" \
--authenticationDatabase "admin" \
--gzip \
--archive=/path/to/backup/database_backup.gz \
-d "target_database"

Restore Database

2. Restore Collection Cụ Thể

mongorestore --host <host_address> \
-u "<username>" \
-p "<password>" \
--authenticationDatabase "admin" \
--gzip \
--archive=/path/to/backup/database_backup.gz \
--nsInclude "database.collection" \
--objcheck

3. Restore với Đổi Tên Database/Collection

mongorestore -d new_database_name \
--gzip \
--archive=/path/to/backup/database_backup.gz \
--nsFrom "old_database.*" \
--nsTo "new_database.*"

📝 Giải Thích Các Tham Số

1. Tham Số Cơ Bản

  • -d: Chỉ định tên database đích
  • --gzip: Chỉ định file backup được nén bằng gzip
  • --archive: Đường dẫn đến file backup

2. Tham Số Namespace

  • --nsFrom: Namespace nguồn trong backup
  • --nsTo: Namespace đích khi restore
  • --nsInclude: Chỉ restore các namespace cụ thể

3. Tham Số Xác Thực

  • -u: Username
  • -p: Password
  • --authenticationDatabase: Database chứa thông tin xác thực

4. Tham Số Kiểm Tra

  • --objcheck: Kiểm tra tính hợp lệ của document khi restore

🔍 Các Trường Hợp Sử Dụng

1. Restore Toàn Bộ Database

Sử dụng khi cần khôi phục toàn bộ dữ liệu của một database.

2. Restore Collection Cụ Thể

Phù hợp khi:

  • Chỉ cần khôi phục một số collection
  • Kiểm tra dữ liệu trước khi restore
  • Restore có chọn lọc

3. Restore với Đổi Tên

Hữu ích khi:

  • Cần tạo bản sao của database
  • Di chuyển dữ liệu giữa các môi trường
  • Test restore mà không ảnh hưởng đến dữ liệu gốc

⚠️ Lưu Ý Quan Trọng

  1. Trước Khi Restore

    • Backup dữ liệu hiện tại
    • Kiểm tra dung lượng ổ đĩa
    • Xác nhận quyền truy cập
  2. Trong Quá Trình Restore

    • Không ngắt quá trình restore
    • Theo dõi log để phát hiện lỗi
    • Kiểm tra tính toàn vẹn dữ liệu
  3. Sau Khi Restore

    • Kiểm tra dữ liệu đã restore
    • Xác nhận các index đã được tạo lại
    • Kiểm tra hiệu suất database

🔍 Xử Lý Sự Cố

1. Lỗi Kết Nối

# Kiểm tra kết nối
mongo --host <host_address> --port <port>

# Kiểm tra log
tail -f /var/log/mongodb/mongod.log

2. Lỗi Không Gian Đĩa

# Kiểm tra dung lượng
df -h

# Kiểm tra kích thước database
mongo --eval "db.stats()"

📚 Tài Liệu Tham Khảo