[Hỏi] Backup and Restore Mongodb Large Data

Discussion in 'Thảo Luận Chung' started by console, Dec 11, 2020.

  1. console

    console Bang Chúng

    Mình đăng gặp một vấn đề nan giải mong các cao nhân giúp đỡ tí về kĩ thuật.
    Case của mình là như thế này: Hiện tại mình đang xài 1 con WSI chạy database mongodb mà nó quá cùi, performance quá kém nên quyết định dời qua OVH. Vấn đề mình gặp phải là do db lớn nên chiều giờ loay hoay mãi chưa move được.
    Đây là db mình:
    Code:
    > db.stats(1024*1024*1024);
    {
        "db" : “data”,
        "collections" : 1,
        "views" : 0,
        "objects" : 20795651,
        "avgObjSize" : 22366.091179256662,
        "dataSize" : 433.1743590515107,
        "storageSize" : 80.34576416015625,
        "numExtents" : 0,
        "indexes" : 1,
        "indexSize" : 0.29947662353515625,
        "fsUsedSize" : 112.8093376159668,
        "fsTotalSize" : 438.50882720947266,
        "ok" : 1
    }
    mongodump chạy không nổi luôn. full ổ cứng vì hiện tại đang xài ssd 480gb. Bác nào có thể giúp mình vụ này được không nhỉ. Mình xin mua bia hậu tại :D
     
  2. thitgaluoc

    thitgaluoc Hương Chủ

    giải pháp từ những ngày mình còn dùng droplet DO 5$ đó là connect 2 database A (trống) và B (db có sẵn) qua tunnel rồi sync chúng qua nhau thôi :D
    mongodb chắc cũng tương tự vậy
    chi tiết bác xem qua cái này
    https://stackoverflow.com/questions/16619598/sync-mongodb-via-ssh
    --- Double Post Merged, Dec 11, 2020, Original Post Date: Dec 11, 2020 ---
    Nếu vps mới bác có nhiều dung lượng ổ cứng thì có thể dump nó trực tiếp sang qua ssh tunnel cũng được á
     
    console likes this.
  3. console

    console Bang Chúng

    Thanks bác nhiều, để mình test thử mới được
     
  4. Tạ hơi nặng

    Tạ hơi nặng Bang Chúng

    480gb data thế này tiền núi ah các bác upload_2020-12-12_13-39-4.png
     

    Attached Files:

  5. console

    console Bang Chúng

    Tiền bạc không được đo bằng độ lớn của data mà bằng cái đầu và mồ hôi trên bàn phím laptop. Không yêu xin đừng buôn lời cà khịa

    Cũng giống hệt như dump bác được khoảng 60% failed luôn service mongodb. Ghi k nỗi bác ơi.

    Các bác nào có cao kiến hơn về vụ này không nhỉ?
     
    Nai likes this.
  6. Phan Thị

    Phan Thị Bang Chúng

    Mình cũng ghét cái mongodb này vl. Có làm vài project với nó mà nó phình to nhanh vl tốn dung lượng. dc cái làm nhanh hơn
     
  7. thitgaluoc

    thitgaluoc Hương Chủ

    thế thì mua thêm block storage gắn vào thôi pác ơi, chứ em k dùng thằng ôn này nên cũng k biết xử lý ntn
    hoặc cách nữa là bác clone luôn cái disk của VM cũ sang cái mới thui :D
    có khi công debug còn lâu hơn
     
    Nam likes this.
  8. Nai

    Nai MiddleMan Staff Member

    Không sync trực tiếp như myISAM của mysql dc hả anh, mongoDB cũng dạng text thôi mà.
     
  9. console

    console Bang Chúng

    Hic vì nó nhanh + đặc thù em lưu là 1 đống json luôn nên lưu cha cho nhanh = mongodb

    Đang nghiên cứu thử = snapshot bác không biêt sao.

    A thử rsync trực tiếp qua rồi. Hiện lên database rồi nhưng query méo được. cứ query là bị failed service. Repair thử cũng k được
     
  10. Cháu dì Sáu

    Cháu dì Sáu Bang Chúng

    rsync phải stop mongod service ở source node. nếu vẫn fail thì đi đường vòng. ===>
    Tạo replica set: 1 primary (node đang sử dụng), 1 secondary (rsync files trước cho nhanh, vẫn tắt service ở source), đợi nó synchronize xong thì promote secondary thành primary xong remove node cũ là xong.(cách này chắc chắn được)
     
    console likes this.
  11. money

    money Hương Chủ

    Ôi cụ vẫn lọ mọ trên đây vào sáng sớm thế à.
    @console bí quá thì chơi giải pháp cùi là export từng phần, mỗi lần vài Gb rồi import sang server mới. Hơi mất công nhưng anh ko xài mongo nên cũng ko biết cách :D
     
    Cháu dì Sáu and console like this.
  12. console

    console Bang Chúng

    Cảm ơn anh, để em thử xem.

    Bí quá mà làm k ra chắc em cũng kiểu này quá haha
     
  13. firefox

    firefox Bang Chúng

    Ko xài mongo, nhưng tò mò google thử thì thấy ông này chơi kiểu cục súc, tắt mongodb xong copy file kiểu vật lý luôn. Bác xem nếu mà hết bài thì chơi vẫn được. Vài trăm gb chắc move đâu đó nửa ngày
    https://dba.stackexchange.com/a/175754/127060
     
    console likes this.
  14. command

    command Bang Chúng

    Cách này y chang cách @Cháu dì Sáu chia sẻ á bạn, mình thì tò mò rằng vì sao tắt Mongodb service và dùng rsync ko được để di chuyển sang server mới như bác @console nói :)
     
    firefox likes this.
  15. console

    console Bang Chúng

    Em cũng không hiểu sao anh Phong, em rsync qua data hiện lên đầy đủ. Mà cứ query là failed luôn service mongodb. Mai em thử cách anh Cháu dì Sáu :D
     
  16. thitgaluoc

    thitgaluoc Hương Chủ

    bác rsync có giữ nguyên ownership với permission không? :D nếu không thì dùng thêm -avz vào switches của rsync ấy
     
  17. console

    console Bang Chúng

    Có bác ơi, mấy cái này mình hiểu tại mình k xài windows mà xài ubuntu cũng được 6 năm nên linux skill cũng tạm đó bác.
     
    thitgaluoc likes this.
  18. thitgaluoc

    thitgaluoc Hương Chủ

    múa rìu qua mắt thợ rồi :D bác làm thành công thì post kinh nghiệm lên ae tham khảo nha
     
  19. CSGO

    CSGO Khách Qua Đường

    Mongodump lúc lỗi có báo lỗi cụ thể là gì ko bác, bác xem trong file log error mongo xem, thấy disk của bác còn nhiều mà nhỉ, mới used 112G/438G
    Không nữa thì viết code sync data cũng đc, làm vòng for mỗi lượt synx tầm 1000 docs, lưu lại last id rồi lượt sau query id > last id, 20tr bản ghi thì chắc cũng ko lâu lắm
     
    console likes this.
  20. console

    console Bang Chúng

    Mình xử xong rồi. Xoá hết tất cả những cái không cần. còn lại đâu tầm 1/2 xử lý nhanh gọn :D
    Em cảm ơn tất cả các bác đã giúp em :D
     
    CSGO, Hoa Mãn Lâu and thitgaluoc like this.