backup Mysql vào 1 server khác

Discussion in 'Hỏi Đáp Kỹ Thuật' started by hoangvn92.it, Jan 31, 2020.

  1. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ

    Đầu năm đầu tháng mà đi nhậu về bấm nhấm nút drop data :( (may mà tháng trước có backup tay nên đỡ)

    nhân đây mình muốn hỏi. cần backup mysql nặng cỡ 40G thôi.
    1 - mình đang dùng vpssim bản có phí nó cũng có chức năng backup
    2 - và Mysql master/slave replication (làm theo site này : https://viblo.asia/p/cau-hinh-mysql-masterslave-replication-L4x5xk3BlBM)

    thì theo các bác làm theo cách nào hay hơn đỡ nặng server. (delay mất 1 ngày data cũng ko vấn đề lắm)
    - server backup cùi bắp lắm chỉ có SSD 250G để lưu thôi

    chúc các bác năm mới an lành.
     
  2. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    40gb để backup thì hơi mệt đó. Cả 2 cách trước h mình chưa xài bao h. Toàn xài cái tool gì backup của bên sinhvienit thấy nó chạy khá là ngon. Cậu có thể thử. Còn nếu để chọn mình chắc sẽ chọn thằng 1. Hàng có fee chắc sẽ tốt hơn
     
    hoangvn92.it likes this.
  3. tearofboy

    tearofboy Tân Thủ Thôn

    của mình 15gb, đang xài rclone kết hợp với crontab khá ổn
     
  4. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ

    rclone cái này lên clound thôi nhỉ chứ sv riêng thì ko biết sao.

    trước dùng tay thay dùng mysqldump -u
     
  5. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ

    bác có thể cho mình xin tên tool dc ko. có tự động ko bác
     
  6. thanh858036

    thanh858036 Sơ Nhập Giang Hồ

    Mình toàn dùng mysqldump backup 20gb bình thường
     
  7. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ

    cái này thì bt rồi . nhưng mình cần auto á :p up qua chỗ khác luôn chứ bình thường mình toàn làm thành file xong download về có tháng nhớ tháng quên =))
     
  8. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Theo mình nên lựa chọn cách 1 là khả thi nhất.
    Bạn có thể dùng cron tạo bash script để backup tự động theo giờ (nên nén trước khi backup để giảm dung lượng, và tạo tên backup theo giờ để nhận biết). Lựa chon thời gian online thấp nhất backup cho khởi đơ máy chủ. Nếu bạn chọn backup mỗi giờ 1 lần thì sau 1 ngày sẽ có 24 bản backup, dung lượng quá lớn thì tạo tiếp bash script chạy 1 ngày 1 lần xóa các bản backup cũ hơn 20h, bạn sẽ còn 4 bản backup mới nhất.

    Thích lưu trữ ở một máy chủ khác thì tạo bash script copy qua ssh nữa là quá êm luôn.

    Như vậy bạn sẽ luôn có 4 bản backup gần nhất. Khi lỗi hay vô tình xóa data thì có thể import qua ssh, nó nhanh thôi, chắc tầm 20p là import xong.

    Về cách thứ 2 (master/slave replication hay master/master replication) thì yêu cầu am hiểu kỹ thuật, hai máy chủ được khuyến cáo phải có cấu hình giống nhau để đảm bảo quá trình đồng bộ.
    Ngoài ra cũng không thể tránh khỏi quá trình delay giữa hai máy chủ.

    Trong quá trình làm, bí chỗ nào thì post lên đây. A em tiếp tục thảo luận.

    P:s; Đã uống rượu bia thì đừng điều khiển máy chủ, nghị định 100 có nói đó. {big_smile}
     
    Last edited: Jan 31, 2020
    Tony Vu and hoangvn92.it like this.
  9. thetrue

    thetrue Sơ Nhập Giang Hồ

    như vultr, DO các chức năng auto backup đó. đúng ý thớt ko?
     
  10. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ

    mình ko dùng của vultr vs DO
     
  11. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ

    Hiện tại mình vừa code xong cái shell script backup database theo từng table.
    vì site mình backup 1 lần nguyên data thì khi import lại toàn lỗi nên mình làm theo từng table cho nhẹ người.
    mất công code tí
    - code này cứ 1 tuần chạy 1 lần -> dữ data trong 30 ngày
    - sau đó làm cái rsync -avhPe ssh đồng bộ qua vps mới

    ae xem giúp mình code vầy ổn chưa có chỗ nào cần chỉnh ko. vì đây là lần đầu tiên trong đời code cái shell này vừa đọc google vừa code tạm

    Code:
    # --> vi file /home/test.sh --> "Esc" -> :set fileformat=unix --> :wq
    
    #!/bin/sh
    # -> duong dan vi tri folder hien tai
    full_path=$(realpath $0)
    dir_path=$(dirname $full_path)
    
    # -> duong dan folder backup
    FolderBackup=$dir_path"/backupfolder"
    FolderBackupChir=$FolderBackup"/*"
    # kiem tra roi lai folder
    if [ ! -e $FolderBackup ]
    then
        mkdir $FolderBackup && chmod 777 $FolderBackup
    else
        chmod 777 $FolderBackup
    fi
    
    date=$(date '+%d-%m-%Y-%H-%M-%S')
    
    # -> duong dan folder theo tung ngay
    FolderBackupByDay=$FolderBackup"/"$date"-db"
    if [ ! -e $FolderBackupByDay ]
    then
        mkdir $FolderBackupByDay && chmod 777 $FolderBackupByDay
    else
        chmod 777 $FolderBackupByDay
    fi
    
    # test -> tim theo phut - 10p truoc
    #find $FolderBackupChir -cmin +10 -delete
    
    # -> tim nhung folder da qua 30 ngay
    find $FolderBackupChir -type f -ctime +30 -delete
    
    # -> bat dau tao file backup
    mysqldump -u AccountDataBase -pPasswordDatabase NameDatabase NameTableDatabase > $FolderBackupByDay"/NameTableDatabase.sql" &&
    mysqldump -u AccountDataBase -pPasswordDatabase NameDatabase NameTableDatabase > $FolderBackupByDay"/NameTableDatabase.sql" &&
    mysqldump -u AccountDataBase -pPasswordDatabase NameDatabase NameTableDatabase > $FolderBackupByDay"/NameTableDatabase.sql" &&
    mysqldump -u AccountDataBase -pPasswordDatabase NameDatabase NameTableDatabase > $FolderBackupByDay"/NameTableDatabase.sql"
    
    
     
    Last edited: Feb 1, 2020
  12. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    xem qua thấy ổn đó. Thử là biết ngay có đc hay không nhé bro. Hãy thử chạy xem có lỗi gì ko?