Trường hợp khi cấu hình docker compose bị sai , sau khi build thì sẽ mất data được lưu trong DB
các step restore lại data
Step1 : Kiểm tra volume đã lưu trữ dữ liệu
Nếu bạn đã mất dữ liệu sau khi build lại, trước tiên hãy kiểm tra xem Docker có tạo volume ngẫu nhiên hay không bằng lệnh:
docker volume ls
Step2 : chạy lệnh với volume nghi ngờ chứa data
docker run --rm -v 46bb9c0768de8da95ec6bc8d5520ccb047cea0ea1a677819f1c08ac3d964631c:/data/db busybox ls /data/db
------------------
ubuntu@instance-20220808-2100:~$ docker run --rm -v 46bb9c0768de8da95ec6bc8d5520ccb047cea0ea1a677819f1c08ac3d964631c:/data/db busybox ls /data/db
WiredTiger
WiredTiger.lock
WiredTiger.turtle
WiredTiger.wt
WiredTigerHS.wt
_mdb_catalog.wt
collection-0-1803499696583512383.wt
collection-0-5664571540793218750.wt
Nếu bạn tìm thấy volume liên quan đến MongoDB, bạn có thể chạy container mới tạm thời với volume đó để truy xuất dữ liệu.
Nếu thấy các file dữ liệu MongoDB (như collection-0-xxxx.wt
, index-0-xxxx.wt
, mongod.lock
),
đó là volume chứa dữ liệu MongoDB.
---------------------
step 3: chạy docker để mapping với volume đã tìm được
----------------version: '3.2'services: mongo: image: mongo restart: unless-stopped environment: MONGO_INITDB_ROOT_USERNAME: user MONGO_INITDB_ROOT_PASSWORD: passs ports: - "27018:27018" volumes: - mongo_data:/data/db # Sử dụng tên volume thay vì ID trực tiếpnetworks: default: driver: bridgevolumes: mongo_data: external: true name: 46bb9c0768de8da95ec6bc8d5520ccb047cea0ea1a677819f1c08ac3d964631c-----------------------
check DB đã có data chưa .
Notes :Bakcup data
Nếu bạn muốn sao lưu dữ liệu trước khi khởi động lại container MongoDB, bạn có thể tạo bản sao lưu với mongodump
bằng cách chạy container MongoDB tạm thời và sử dụng lệnh này:docker exec <container_id_or_name> mongodump --out /data/backup
Sao chép dữ liệu từ container ra máy chủ hostdocker cp e53eafd93d32:/data/backup /home/ubuntu/mongo_backup
Kiểm tra dữ liệu sao lưu trên máy chủls /home/ubuntu/mongo_backup
Nhận xét
Đăng nhận xét