Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sao lưu các phương pháp hay nhất cho MySQL, MariaDB và Galera Cluster

Rất cảm ơn tất cả những người đã đăng ký và / hoặc tham gia hội thảo trên web hôm thứ Ba về các chiến lược sao lưu và các phương pháp hay nhất cho các cụm MySQL, MariaDB và Galera do Krzysztof Książek, Kỹ sư hỗ trợ cấp cao tại Somenines dẫn đầu. Nếu bạn đã bỏ lỡ phiên, muốn xem lại hoặc duyệt qua các trang trình bày, họ hiện đang trực tuyến để xem. Ngoài ra, hãy xem bản ghi của phần Hỏi và Đáp bên dưới.

Xem phát lại hội thảo trên web

Cho dù bạn là một SysAdmin, DBA hay DevOps chuyên nghiệp đang vận hành các cụm MySQL, MariaDB hoặc Galera trong sản xuất, bạn nên đảm bảo rằng các bản sao lưu của mình được lên lịch, thực thi và kiểm tra thường xuyên. Krzysztof đã chia sẻ một số mẹo &thủ thuật thực hành tốt nhất ngày hôm qua về cách thực hiện điều đó; bao gồm một bản demo trực tiếp với ClusterControl. Tóm lại, buổi phát lại hội thảo trên web này cho bạn thấy ưu và nhược điểm của các tùy chọn sao lưu khác nhau và giúp bạn chọn tùy chọn phù hợp nhất với môi trường của mình.

Chúc bạn sao lưu vui vẻ!

Câu hỏi và câu trả lời

H:Chúng tôi có thể kiểm soát I / O trong khi thực hiện sao lưu với mysqldump và mysqldumper không (tôi đã sử dụng rất tốt trước đây, nhưng nó không hữu ích).

A. Về mặt lý thuyết thì điều đó có thể xảy ra, mặc dù chúng tôi chưa thực sự kiểm tra điều đó. Nếu bạn thực sự muốn áp dụng một số điều chỉnh thì bạn có thể muốn xem xét các nhóm - nó sẽ giúp bạn điều chỉnh hoạt động I / O trên cơ sở từng quy trình.

Q. Chúng ta có thể sử dụng mydumper với ClusterControl và ClusterControl có phải là phần mềm miễn phí không?

A. Chúng tôi hiện không hỗ trợ nó, nhưng bạn luôn có thể sử dụng nó theo cách thủ công; ClusterControl không ngăn cản bạn sử dụng công cụ này. Có một phiên bản cộng đồng miễn phí của ClusterControl, mặc dù các tính năng sao lưu của nó là một phần của phiên bản thương mại. Với phiên bản cộng đồng miễn phí, bạn có thể triển khai và giám sát (các cụm) cơ sở dữ liệu của mình cũng như phát triển các cố vấn cơ sở dữ liệu tùy chỉnh của riêng bạn. Bạn cũng có thời gian dùng thử một tháng cho phép bạn truy cập vào tất cả các tính năng của ClusterControl. Bạn có thể tìm thấy tất cả các chi tiết về tính năng tại đây:https://severalnines.com/pricing

H:Xtrabackup có thể hoạt động với mã hóa dữ liệu lúc nghỉ không?

Đ. Nó có thể hoạt động với dữ liệu được mã hóa trong MySQL hoặc Percona Server - đó là vì chúng chỉ mã hóa các không gian bảng, mà xtrabackup chỉ sao chép - nó không phải truy cập nội dung của các không gian bảng. MariaDB không chỉ mã hóa không gian bảng mà còn, chẳng hạn như InnoDB làm lại nhật ký, mà xtrabackup phải truy cập - do đó xtrabackup không thể hoạt động với mã hóa dữ liệu tại chỗ như được triển khai trong MariaDB. Vì điều này MariaDB Corporation đã chia xtrabackup thành MariaDB Backup. Công cụ này hỗ trợ mã hóa do MariaDB thực hiện.

H:Bạn có thể sử dụng mydumper để khôi phục tại thời điểm không?

A. Có, nó có thể. mydumper có thể lưu trữ dữ liệu GTID để bạn có thể xác định giao dịch được áp dụng gần đây nhất và sử dụng nó làm vị trí bắt đầu để xử lý nhật ký nhị phân.

Q. Có vấn đề gì không nếu chúng tôi sử dụng nhật ký nhị phân với xtrabackup với ngày bắt đầu và ngày kết thúc thay vì vị trí bắt đầu và vị trí kết thúc? Chúng tôi thực hiện một bản sao lưu đầy đủ vào các ngày thứ Sáu và mỗi ngày một bản sao lưu gia tăng. Khi chúng tôi cần khôi phục, chúng tôi thực hiện các bản sao lưu đầy đủ và gia tăng lần cuối cùng và nhật ký nhị phân từ ngày này bắt đầu từ 00:00 đến BÂY GIỜ ... có thể xảy ra sự cố với apply-log?

Đ. Nói chung, bạn không nên sử dụng --start-datetime hoặc --end-datetime khi bạn muốn trả lời nhật ký nhị phân trên cơ sở dữ liệu. Nó không đủ chi tiết - nó có độ phân giải trong một giây và có thể có nhiều giao dịch đã xảy ra trong giây đó. Bạn có thể sử dụng nó để giảm thiểu khung thời gian tìm kiếm theo cách thủ công, nhưng đó là tất cả. Nếu bạn muốn phát lại các bản ghi nhị phân, bạn nên sử dụng --start-position và --end-position. Chỉ điều này mới xác định chính xác sự kiện nào bạn sẽ phát lại binlog và sự kiện đó sẽ kết thúc.

Q. Tôi có nên chạy phần mềm kết xuất trên bộ cân bằng tải hoặc một trong các nút MySQL không?

A. Thông thường, bạn sẽ sử dụng nó trên các nút MySQL. Một số công cụ chỉ có thể làm được điều đó. Ví dụ, Xtrabackup - bạn phải chạy nó cục bộ, trên máy chủ cơ sở dữ liệu. Bạn có thể truyền đầu ra đến một vị trí khác, nhưng nó phải được khởi động cục bộ.

Q. Chúng tôi có thể sao lưu từng phần với ClusterControl không? Và nếu có, làm cách nào chúng ta có thể khôi phục bản sao lưu trên một phiên bản đang chạy?

Đ:Có, bạn có thể sao lưu một phần bằng ClusterControl (bạn có thể sao lưu lược đồ riêng biệt bằng xtrabackup) nhưng hiện tại, bạn không thể khôi phục bản sao lưu một phần trên một phiên bản đang chạy. Điều này là do thực tế là lược đồ bạn muốn khôi phục sẽ không nhất quán với phần còn lại của cụm. Để làm cho nó nhất quán, cụm phải được khởi động từ nút mà bạn khôi phục bản sao lưu. Vì vậy, về mặt kỹ thuật, nút này chạy mọi lúc nhưng đó là một hoạt động khá nặng và xâm lấn. Điều này sẽ thay đổi trong phiên bản tiếp theo của ClusterControl, trong đó bạn có thể khôi phục các bản sao lưu trên một máy chủ riêng biệt. Từ máy chủ đó, bạn có thể kết xuất nội dung của một lược đồ đã khôi phục bằng cách sử dụng mysqldump (hoặc mydumper) và khôi phục nó trên một cụm sản xuất.

Q. Bạn có thể vui lòng chia sẻ lệnh mysqldumper không?

A. Thật khó để trả lời câu hỏi này nếu không thực hiện sao chép và dán từ tài liệu, vì vậy chúng tôi nghĩ rằng sẽ là tốt nhất nếu chúng tôi hướng bạn đến tài liệu:https://github.com/maxbube/mydumper/tree/ master / docs

Xem phát lại hội thảo trên web

Sách trắng liên quan Hướng dẫn DevOps về Sao lưu cơ sở dữ liệu cho MySQL và MariaDBT Sách trắng này thảo luận về hai tiện ích sao lưu phổ biến nhất hiện có cho MySQL và MariaDB, đó là mysqldump và Percona XtraBackup.
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm đối sánh toàn bộ từ trong MySQL

  2. Sử dụng tệp .php để tạo kết xuất MySQL

  3. Làm cách nào để xóa tất cả các bảng MySQL khỏi dòng lệnh mà không có quyền cơ sở dữ liệu DROP?

  4. Làm cách nào để cung cấp cho mỗi người dùng đã đăng ký url của riêng họ bằng PHP?

  5. có hàm group_concat trong ms-access không?