Hỏi về mysql replication Master Slave

Discussion in 'Hỏi Đáp Kỹ Thuật' started by dev9x, Jun 23, 2021.

  1. dev9x

    dev9x Sơ Nhập Giang Hồ

    Chào mn, em là code c#, dân ngoại đạo cũng có hiểu biết 1 chút về server. Em có đọc qua một số bài viết về cấu trúc server master slave. Theo em hiểu là có 1 con master, 1 con slave
    con slave sẽ lắng nghe log từ con master để cập nhật vào db. Có 1 số câu hỏi thắc mắc mong đc các bác giải đáp a.
    1. Độ trễ giữa khi sync sang con slave liệu khoảng bn? Nếu em dùng con master để ghi, con slave để đọc thì dữ liệu lấy từ slave có thể k đc mới nhất đúng k ạ
    2. Nếu con master có vấn đề, thì dùng con slave để chạy thay thế. Sau đó cài lại hoặc fix con master, backup data import sang master => Vấn đề khi backup là phải off hẳn slave, ko cho write để đảm bảo dữ liệu k bị lỗi trong quá trình backup, data của cty em khá nặng khoảng 100gb, backup rất mất nhiều thời gian. => TH vẫn bị ảnh hưởng đến user đồng bộ data rất nhiều và bên em k muốn như thế. Theo em hiểu là như vậy.
    Mong đc giải đáp. Thank các bác nhiều.
     
  2. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Em có thể dùng Master to master. Nhưng giải pháp MySQL Cluster sẽ là tốt nhất. Search trên google sẽ cho e kết quả.
     
    dev9x likes this.
  3. remake2020

    remake2020 Sơ Nhập Giang Hồ

    100G thì dùng mysqldump chắc backup mất 5s giây chứ mấy :/
    data mình 50TB mà backup cũng xíu là xong à
     
    dev9x likes this.
  4. automan

    automan Hương Chủ

    Mysqldump chạy trên nền nào mà 100gb 5s vậy bác {after_boom}
     
    thitgaluoc likes this.
  5. Nai

    Nai MiddleMan Staff Member

    Mình vừa search ra bài viết này dựa trên từ khóa "cấu trúc server master slave" của bạn
    thì ra bài viết sau để trả lời câu hỏi của bạn
    Code:
    https://kipalog.com/posts/Master---Slave--Giai-phap-giam-tai-request--an-toan-du-lieu-mysql
    1/ Độ trễ đó sẽ phụ thuộc vào cấu hình delay giữa các lần đọc log của slave. Thiết lặp phần này mình nghĩ bạn có thể test hoặc thử tìm hiểu thêm cách câu hình. Nếu slave để đọc thì chắc chắn không mới nhất rồi, nhưng cũng không đến nỗi nào nếu delay giữa các lần đọc log ngắn (5' chẳng hạn). Nhưng tại sao lại làm như vậy nhỉ replication chỉ là phương án dự backup cho trường hợp 1 trong 2 server bị lỗi, mà xác suất là giờ đây là 50% rồi thì nên đọc và ghi trên master luôn đi.
    2/ Trường hợp có vấn đề xảy ra:
    2.1/ Master die: Thì slave sẽ chạy chính, cấu hình chuyển thanh master và 1 con khác vào thay thế. Sẽ không có dữ liệu nào bị sót hết vì nó đọc log của master nên sẽ có hết dữ liệu từ master lúc trút hơi thở cuối cùng.
    2.2/ Slaver die: Die thì nhét thằng khác vào thay vị trí slave là xong. Nếu log đã bị xóa rồi thì backup từ master sang slave, và nó tiếp tục công việc đọc log của master.

    Dùng mysqldump thì không cần phải turn off con nào cả. Trừ khi ngay từ đầu đã không cấu hình "tự động bàn giao nhiệm vụ cho slave khi master die", và trường hợp khi cấu hình tay bắt buộc phải restart lại mysql thì nó mysql chỉ die tạm thời trong quá trình restart service.
    --- Double Post Merged, Jun 23, 2021, Original Post Date: Jun 23, 2021 ---
    À, nếu 100GB mà bác sợ server treo thì có thể dump ra theo từng table, table nào mấy chục triệu rows thì backup nó vài triệu mỗi lần cho nhẹ.
     
    dev9x likes this.
  6. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Máy chủ của em ý nói là chip xeon 32 cpu, dd ram 4 Ecc 256Gb, disk ssd bro à. :D
     
  7. Tạ hơi nặng

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

    Chuẩn đại ka, 1gb 5s còn phải xem xét @@
     
  8. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Cái này phụ thuộc vào máy chủ e nhé. Máy chủ 500$ nó sẽ khác bọt nhiều đó. Và máy chủ đó chỉ có 1 nhiệm vụ là cài mysql thôi.
     
    dev9x likes this.
  9. dev9x

    dev9x Sơ Nhập Giang Hồ

    Thank anh, em sẽ nghiên cứu thêm
    --- Double Post Merged, Jun 23, 2021, Original Post Date: Jun 23, 2021 ---
    Thank bác đã thông não. em sẽ cài thử test trực tiếp các th xem kq thế nào. Một lần nữa cảm ơn bác nhiều.
     
  10. automan

    automan Hương Chủ

    chip mạnh cũng đâu thể vượt được tốc độ đọc-ghi của ssd, tốc độ nhanh nhất hiện tại cũng chỉ tầm 4Gb, đó là lý tưởng thôi. {brick}
     
    xmenvn2510 likes this.
  11. sincos

    sincos Bang Chúng

    Theo kinh nghiệm của tớ vài lần deloy Master/Slaver cho mysql thì thấy rất không ổn.

    Thi thoảng có vấn đề trục trặc giữa Master/Slaver dẫn đến tình trạng data mất đồng bộ rất khó fix - hầu như trên slaver phải xóa đi import lại. Theo mình chỉ nên dùng mô hình này để backup data thì hợp hơn.

    Master/Master còn rắc rối hơn nữa.
     
  12. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Bro lại quá chính xác luôn. :D
     
    automan likes this.
  13. automan

    automan Hương Chủ

    thế mấy con site bự nó dùng mô hình gì vậy bro
     
  14. sincos

    sincos Bang Chúng

    Chắc cluster rồi.
     
  15. remake2020

    remake2020 Sơ Nhập Giang Hồ

    thật ra mình đoán thế chứ thời gian cũng ko thấy lâu lắm :p
     
  16. KenhSongAo.com

    KenhSongAo.com Tân Thủ Thôn

    Bác trên nói đúng mà! SSD có ghi đc cỡ 2GB/s thì 100GB cũng phải mất tối thiếu 50s.
     
  17. Nai

    Nai MiddleMan Staff Member

    SSD gì mà tốc độ 2GB/s ảo vãi.
     
  18. remake2020

    remake2020 Sơ Nhập Giang Hồ

    của mình có >700mb à :( dùng 4 ổ SSD raid 5.
    còn thời gian mình đoán đại chứ chả tính ;p
     
  19. automan

    automan Hương Chủ

    Nai likes this.
  20. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Để nghị bạn @automan và các anh em khác, quay lại chủ đề chính thớt hỏi nhé.
    Không lan man. :D
    {bike}
     
    automan likes this.