Hướng dẫn backup dữ liệu từ VPS DigitalOcean

Discussion in 'Linux - PHP - Python - C# - Java' started by 2ndCapricorn, Mar 28, 2020.

  1. 2ndCapricorn

    2ndCapricorn Sơ Nhập Giang Hồ

    Đọc title thì các bác thấy hướng dẫn này rất là bình thường đúng không ạ? Đối với em nó mất tới 2 ngày ăn vạ thằng support của DO mới biết được. Vài tiếng nó reply một lần nản quá, em viết bài này để anh em newbie có cái đọc khi gặp trường hợp như em.

    Trường hợp nào thì cần dùng cách này:
    Một ngày đẹp trời, cái web của em load cao quá, không rõ nguyên nhân, lười đọc logs nên em "sudo reboot" cái VPS luôn. Như mọi lần thì reboot xong là chạy ok rồi đấy. Lần này thì không, nó từ chối kết nối internet luôn; SSH không vào được, ping không reach được. Vào web console của DO thì được nhưng ping ra ngoài không được, thậm chí dùng VPS khác cùng location để ping cũng không được. Nếu VPS của bạn có triệu chứng tương tự thì đây là cách để các bạn cứu dữ liệu của mình.

    Các bước tiến hành:
    Bước 1: Backup dữ liệu:
    Edit đoạn này tí vì các bác thắc mắc không kết nối được sao lại dump database được. DO có cái Web Console để mình vào gõ lệnh, cái này giống như mình được phép cắm dây trực tiếp vào server để gõ vậy (gần giống SSH nhưng xịn hơn)

    Các bạn nhớ dump csdl và nén thư mục chứa web của mình lại để các bước sau lấy dữ liệu nhanh hơn.
    - Backup database:
    Code:
    mysqldump -u mysqlusername -p csdl_cua_ban > /var/www/tenweb-$(date +%F).sql
    Dùng câu lệnh trên để dump csdl thành file tenweb-ngay-thang-nam.sql
    - Backup code:
    Code:
    sudo tar -cvpzf /var/www/tenweb.com.tar.gz -C /var/www/ html
    Câu lệnh trên sẽ nén thư mục html nằm ở đường dẫn /var/www/html lại cho bạn.

    2 file trên sẽ nằm ở thư mục /var/www/

    Bước 2: Boot from Recovery ISO
    https:// www. digitalocean. com/docs/droplets/resources/recovery-iso/
    Ở link trên họ hướng dẫn chi tiết rồi, tuy nhiên mình sẽ lọc phần mình cần cho các bạn dễ hiểu.
    - Truy cập vào trang quản lý của DO => tìm đến Droplet cần backup sau đó làm lần lượt như sau:
    + Vào phần Power: bấm turn off.
    + Vào phần Recovery: Chọn Boot from Recovery ISO.
    + Quay lại Power: turn on.
    + Vào phần Access: Bấm Launch Console
    Đợi nó khởi động xong, Web Console của DO hiện lên sẽ trông như thế này:

    Code:
    This droplet is booted to the DigitalOcean recovery environment.
    When you are finished, you may set your Droplet to boot from
    the local disk again via the DigitalOcean control panel.
    
    This rescue environment is based on Ubuntu 18.04.
    
    * Network access and SSH have been enabled automatically *
    * SSH Host keys do NOT match while using this rescue system *
    
    Root Password has randomly been set to:
      exam-ple0-1234-5678
    Your are strongly encouraged to use SSH keys. To import your SSH
    public keys:
      From Github:        ssh-import-id gh:<Github user name>
      From Launchpad.net: ssh-import-id lp:<launchpad user name>
    --------------------------------------------------------------------
    1. Mount your Disk Image [Not Mounted]
    2. Check Filesystem
    3. Reset Droplet Root Password
    4. Configure Keyboard
    5. Attempt to 'chroot' into installed system
    6. Interactive Shell [/bin/bash]
    Choose (1-6) and press Enter to continue.
    - Đến đây ta bấm phím 1 enter (Tức là ta đã lựa chọn 1. Mount your Disk Image)
    - Cứ để Web Console đó ta qua bước 3. Nhớ copy cái pass tạm ở dưới dòng "Root Password has randomly been set to"

    Bước 3: Kết nối và copy backup file.
    Nghe ngáo quá nhỉ, nãy vừa bảo không có cách gì kết nối được mà giờ lại đòi kết nối rồi lấy file về.
    Đây là tính năng xịn của DO mà giờ mình mới biết. Khi tạo Boot from Recovery ISO thì cũng đồng nghĩa ta có một máy mới tinh với cấu hình mạng mà ta có thể truy cập ngon lành.
    Giờ ta chỉ cần kết nối SSH tới VPS đó và lấy file backup về thôi, nếu cần thì bạn có thể tạo Droplet mới để copy qua đó luôn cho nhanh cũng được.
    Code:
    ssh root@ip-vps-can-backup
    Các bạn nhập password tạm thời hiện ở trên Web Console ở bước 2 (nằm dưới dòng này: Root Password has randomly been set to)
    Lúc này đã kết nối được vào VPS nhưng hiện tại nó là VPS mới tinh, không có gì cả, dữ liệu của chúng ta không có ở đây. Phải làm bước tiếp theo là mount ổ cứng vào VPS thì mới lấy được dữ liệu.
    - Các bạn làm lần lượt các bước sau để mount ổ cứng:
    + Kiểm tra các ổ có sẵn bằng lệnh
    Code:
    fdisk -l
    Lệnh trên sẽ hiển thị các ổ có sẵn, nó sẽ hiện ra lần lượt tương tự như sau:
    Code:
    /dev/vda1            ... Linux filesystem
    /dev/vda14
    /dev/vda15
    Cái /dev/vda1 là ổ ta cần mount.
    + Sử dụng lệnh sau để tạo thư mục và mount:
    Code:
    sudo mkdir /media/newhd
    sudo mount /dev/sdb1 /media/newhd
    df -H
    - Sau khi mount ổ xong thì ta kết nối vào VPS bằng FileZilla để lấy dữ liệu.
    + Kết nối bằng FileZilla
    Host: sftp://ip-cua-vps
    User: root
    Pass: Pass lấy ở Web Console lúc nãy
    + Vào thư mục /media/newhd/var/www và lấy file về thôi.

    Bước 4: Thoát kết nối
    Sau khi lấy xong dữ liệu của mình thì các bạn quay lại Web Console và chọn 1 enter để Unmount Disk Image. Tiếp tục chọn 6 để vào Interactive Shell, tại đây gõ "poweroff" để tắt máy.
    Lúc này bạn có thể xóa Droplet hoặc quay lại phần Recovery để chọn lại "Boot from Hard Drive" rồi turn on VPS để VPS khởi động bình thường.

    Chúc các bạn thành công!
     
    Last edited: Mar 28, 2020
  2. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Làm được xong thích nhé. Hihi. :D
     
    2ndCapricorn and wpresources like this.
  3. Nai

    Nai MiddleMan Staff Member

    Qua lần này lần sau thớt cũng cân nhắc kỹ khi reboot nhỉ :)).
    Nói chung là cần chuẩn bị sẵn tình huống server bị down bất cứ lúc nào. Thậm chí là databaser server cũng banh chành không biết lí do vì sao luôn.
     
    2ndCapricorn likes this.
  4. money

    money Hương Chủ

    Ủa ko connect SSH thì em chạy mysqldump bằng cái gì vậy?
     
  5. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Vps thường có Web Console, trong quản trị acc của nhà cung cấp anh à.
     
  6. money

    money Hương Chủ

    Ủa web console làm dc nhiều thế à em. Thực sự anh chưa bao giờ vô luôn. Đó giờ anh tưởng nó chỉ làm vài thao tác cơ bản như reboot, re-install :(
     
  7. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Nó có đầy đủ tính năng như anh truy cập SSH bình thường. Cái này chữa cháy khi mình thao tác có gì sai mà lỗi SSH thì qua đây anh à.
     
    money likes this.
  8. money

    money Hương Chủ

    Vậy ngon á. Để lát anh check mấy bên Ovh, hetzner xem.
     
  9. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Khuyên e: thật sự cần thiết hãy reboot vps, đừng nghĩ reboot thì vps sẽ không lag và chạy nhanh hơn.
    Nếu bắt buộc cần reboot thì reboot.
     
  10. Nai

    Nai MiddleMan Staff Member

    {boss} Anh quá hay rồi. Em ngay từ lúc mua vps thì chỉ biết dùng console thôi đó. Vì thấy bất tiện do phải login rồi nhập pass, code bằng mà delay vài trăm mili giây nên em mới tìm ra cách nhanh hơn là ssh. :D.
    Vào console giống như là nhìn vào màn hình của 1 server cứng thật sự vậy anh, nó hiển thị từng dòng từ lúc khởi động luôn.
    Còn ssh qua putty thì khởi động xong mới truy cập vào đó dc
     
    xmenvn2510 likes this.
  11. money

    money Hương Chủ

    @xmenvn2510 Hetzner sao anh ko thấy console của nó nhỉ em? Anh vào trong mấy cái menu đó cũng không có.
    hetzner.png
     
  12. money

    money Hương Chủ

    Em ko cần nói đểu anh đâu. Anh ngu Linux thật mà :(
    Anh có lần phải dùng VNC rồi, nhưng đó là VPS bên Windows, nó cũng y như em nói, và cũng chậm lòi ra.
    @xmenvn2510 VPS của OVH anh cũng ko thấy console, chỉ có VNC.
     
  13. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Anh dùng máy chủ hay VPS.
    Máy chủ thì em không thấy có, còn vps thì có anh ah.
     
  14. money

    money Hương Chủ

    server em ạ.
    Vãi, sao server lại ko có nhỉ?
     
  15. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Nếu anh dùng vps thì hình ảnh như sau:
    [​IMG]
    Anh chọn Cloud.
    Tiến hành đăng nhập, vào bên trong, chọn vps nào anh cần xem.
    [​IMG]
     
    money likes this.
  16. money

    money Hương Chủ

    @xmenvn2510 hồi xưa anh có thấy cái menu konsoleH đó mà nó bỏ từ hồi nào anh ko rõ. Thôi, chịu khó backup vậy :(
     
    xmenvn2510 likes this.
  17. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Máy chủ thường không có anh ah.
    [​IMG]
    Vì máy chủ mà lỗi không khởi động được, nó sẽ giám sát và gửi mail cho mình.
    Có thằng kỹ thuật xử lý, nó ưu tiên hơn vps.
     
    money likes this.
  18. 2ndCapricorn

    2ndCapricorn Sơ Nhập Giang Hồ

    Dạ, em chừa luôn rồi {adore}
     
  19. 2ndCapricorn

    2ndCapricorn Sơ Nhập Giang Hồ

    Từ nay em tự hứa sẽ cho cái server nó backup theo giờ luôn, toang 1 lần tí thì trụy tim {after_boom}
     
    xmenvn2510 likes this.
  20. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Haha, trụy tim cơ à. :D