Khi nói đến sao lưu và lưu trữ dữ liệu, các bộ phận CNTT thường phải căng thẳng để đáp ứng các thỏa thuận mức độ dịch vụ nghiêm ngặt cũng như cung cấp các quy trình sao lưu mạnh mẽ hơn sẽ giảm thiểu thời gian chết, tăng tốc quá trình sao lưu, chi phí ít hơn và đáp ứng các yêu cầu bảo mật chặt chẽ.
Có nhiều cách để sao lưu cơ sở dữ liệu MySQL, nhưng chúng ta có thể chia các phương pháp này thành hai nhóm - logic và vật lý.
Bản sao lưu lôgic chứa dữ liệu được xuất bằng lệnh SQL và được lưu trữ trong tệp. Nó có thể là, ví dụ, một tập hợp các lệnh SQL, khi được thực thi, sẽ dẫn đến việc khôi phục nội dung của cơ sở dữ liệu. Với một số sửa đổi đối với cú pháp của tệp đầu ra, bạn có thể lưu trữ bản sao lưu của mình trong tệp CSV.
Sao lưu lôgic rất dễ thực hiện, chỉ với một lớp lót, bạn có thể sao lưu tất cả bảng, cơ sở dữ liệu hoặc tất cả cơ sở dữ liệu mysql trong phiên bản.
Thật không may, sao lưu logic có nhiều hạn chế. Chúng thường chậm hơn so với vật lý. Điều này là do chi phí cần thiết để thực hiện các lệnh SQL để lấy dữ liệu ra và sau đó thực hiện một bộ lệnh SQL khác để đưa dữ liệu trở lại cơ sở dữ liệu. Chúng kém linh hoạt hơn, trừ khi bạn viết khối lượng công việc sao lưu phức tạp sẽ bao gồm nhiều bước. Nó không hoạt động tốt trong môi trường song song, cung cấp ít bảo mật hơn, v.v., v.v.
Sao lưu vật lý trong MySQL World
MySQL không đi kèm với sao lưu vật lý trực tuyến cho phiên bản cộng đồng. Bạn có thể trả tiền cho phiên bản Enterprise hoặc sử dụng công cụ của bên thứ ba. Công cụ của bên thứ ba phổ biến nhất trên thị trường là XtraBackup. Những thứ chúng ta sẽ so sánh trong bài viết blog này.
Percona XtraBackup là phần mềm sao lưu nóng MySQL / MariaDB mã nguồn mở, rất phổ biến, thực hiện sao lưu không chặn cho cơ sở dữ liệu InnoDB và XtraDB. Nó thuộc danh mục sao lưu vật lý, bao gồm các bản sao chính xác của thư mục dữ liệu MySQL và các tệp bên dưới nó.
Một trong những ưu điểm lớn nhất của XtraBackup là nó không khóa cơ sở dữ liệu của bạn trong quá trình sao lưu. Đối với cơ sở dữ liệu lớn (hơn 100 GB), nó cung cấp thời gian khôi phục tốt hơn nhiều so với mysqldump. Quá trình khôi phục bao gồm việc chuẩn bị dữ liệu MySQL từ các tệp sao lưu, trước khi thay thế hoặc chuyển nó bằng thư mục dữ liệu hiện tại trên nút đích.
Percona XtraBackup hoạt động bằng cách ghi nhớ số thứ tự nhật ký (LSN) khi nó khởi động và sau đó sao chép các tệp dữ liệu sang một vị trí khác. Việc sao chép dữ liệu mất thời gian và nếu các tệp đang thay đổi, chúng sẽ phản ánh trạng thái của cơ sở dữ liệu tại các thời điểm khác nhau. Đồng thời, XtraBackup chạy một quy trình nền theo dõi các tệp nhật ký giao dịch (hay còn gọi là nhật ký làm lại) và sao chép các thay đổi từ đó. Việc này phải được thực hiện liên tục vì nhật ký giao dịch được viết theo kiểu tuần hoàn và có thể được sử dụng lại sau một thời gian. XtraBackup cần bản ghi nhật ký giao dịch cho mọi thay đổi đối với tệp dữ liệu kể từ khi nó bắt đầu thực thi.
Bằng cách sử dụng công cụ này, bạn có thể:
- Tạo các bản sao lưu InnoDB nóng, hoàn thành nhanh chóng và đáng tin cậy, mà không cần tạm dừng cơ sở dữ liệu của bạn hoặc thêm tải cho máy chủ
- Sao lưu gia tăng
- Di chuyển bảng giữa các máy chủ MySQL trực tuyến
- Dễ dàng tạo nô lệ sao chép MySQL mới
- Truyền trực tuyến các bản sao lưu MySQL đã nén tới một máy chủ khác
- Tiết kiệm dung lượng ổ đĩa và băng thông mạng
MySQL Enterprise Backup cung cấp các bản sao lưu nóng, trực tuyến, không chặn trên nhiều nền tảng. Nó không phải là một công cụ sao lưu miễn phí, nhưng nó cung cấp rất nhiều tính năng. Chi phí cấp phép tiêu chuẩn là $ 5000 (nhưng có thể thay đổi tùy theo thỏa thuận của bạn với Oracle.)
Nền tảng được hỗ trợ quá trình sao lưu
MySQL Enterprise
Nó có thể chạy trên Linux, Windows, Mac &Solaris. Điều cần thiết là nó cũng có thể lưu trữ bản sao lưu vào băng, đây thường là một giải pháp rẻ hơn so với việc ghi vào đĩa. Việc ghi băng trực tiếp hỗ trợ tích hợp với Veritas Netbackup, Tivoli Storage Manager và EMC NetWorker.
XtraBackup
XtraBackup có thể chỉ chạy trên nền tảng Linux, chắc chắn đây có thể là một công cụ chặn chương trình cho những người chạy trên windows. Một giải pháp ở đây có thể sao chép sang nô lệ chạy trên Linux và chạy sao lưu từ đó.
Những điểm khác biệt chính của quy trình sao lưu
MySQL Enterprise Backup cung cấp một tập hợp phong phú các tính năng và chức năng khôi phục, bao gồm các cải tiến hiệu suất đáng kể so với các phương pháp sao lưu MySQL hiện có.
Oracle cho biết bản sao lưu Enterprise nhanh hơn mysqldump gấp 49 lần. Tất nhiên, điều đó có thể khác nhau tùy thuộc vào dữ liệu của bạn, tuy nhiên có nhiều tính năng để cải thiện quá trình sao lưu. Bản sao lưu song song chắc chắn là một trong những điểm khác biệt lớn nhất giữa bản sao lưu mysqldump và bản sao lưu Doanh nghiệp. Nó làm tăng hiệu suất bằng cách xử lý đa luồng. Tuy nhiên, tính năng thú vị nhất là nén.
- nén
Tạo bản sao lưu ở định dạng nén. Đối với một bản sao lưu thông thường, trong số tất cả các công cụ lưu trữ được MySQL hỗ trợ, chỉ các tệp dữ liệu có định dạng InnoDB được nén và chúng có phần mở rộng .ibz sau khi nén. Tương tự, đối với sao lưu một ảnh, chỉ các tệp dữ liệu có định dạng InnoDB bên trong ảnh sao lưu mới được nén. Các tệp nhật ký nhị phân và nhật ký chuyển tiếp được nén và lưu với phần mở rộng .bz khi được đưa vào bản sao lưu nén.
-compress-method=zlib,lz4(default), lzma, punch-hole
--compress-level=LEVEL(0-9)
--include-tables=REGEXP
Bản sao lưu MySQL với ClusterControl
ClusterControl cho phép bạn lên lịch sao lưu bằng XtraBackup và mysqldump. Nó có thể lưu trữ cục bộ các tệp sao lưu trên nút nơi sao lưu được thực hiện hoặc các tệp sao lưu cũng có thể được truyền trực tuyến tới nút bộ điều khiển và nén khi đang di chuyển. Nó không hỗ trợ sao lưu MySQL Enterprise tuy nhiên với các tính năng mở rộng của mysqldump và XtraBackup, nó có thể là một lựa chọn tốt.
ClusterControl là hệ thống quản lý cơ sở dữ liệu mã nguồn mở toàn diện dành cho người dùng có môi trường hỗn hợp. Nó cung cấp chức năng quản lý sao lưu nâng cao cho MySQL hoặc MariaDB.
Với ClusterControl, bạn có thể:
- Tạo chính sách sao lưu
- Theo dõi trạng thái sao lưu, quá trình thực thi và máy chủ không có bản sao lưu
- Thực hiện sao lưu và khôi phục (bao gồm cả khôi phục tại thời điểm)
- Kiểm soát việc lưu giữ bản sao lưu
- Lưu các bản sao lưu trong bộ nhớ đám mây
- Xác thực các bản sao lưu (kiểm tra đầy đủ với quá trình khôi phục trên máy chủ độc lập)
- Mã hóa các bản sao lưu
- Nén các bản sao lưu
- Và nhiều người khác
Kết luận
Là một DBA, bạn cần đảm bảo rằng cơ sở dữ liệu được sao lưu thường xuyên và các quy trình khôi phục thích hợp được đưa ra và được kiểm tra. Cả Percona XtraBackup và MySQL Enterprise Backup đều cung cấp cho DBA giải pháp sao lưu trực tuyến, hiệu suất cao với công nghệ nén và mã hóa dữ liệu để đảm bảo dữ liệu của bạn được bảo vệ trong trường hợp ngừng hoạt động hoặc ngừng hoạt động
Việc sao lưu phải được lập kế hoạch theo yêu cầu khôi phục. Mất dữ liệu có thể toàn bộ hoặc một phần. Ví dụ, không phải lúc nào bạn cũng cần khôi phục toàn bộ dữ liệu. Trong một số trường hợp, bạn có thể chỉ muốn khôi phục một phần bằng cách khôi phục các bảng hoặc hàng bị thiếu. Với bộ tính năng phạm vi tiếp cận, cả hai giải pháp sẽ là sự thay thế tuyệt vời cho mysqldump, đây vẫn là một phương pháp rất phổ biến để sao lưu. Có mysqldump cũng rất quan trọng để khôi phục một phần, nơi cơ sở dữ liệu bị hỏng có thể được sửa bằng cách phân tích nội dung của bãi chứa. Nhật ký nhị phân cho phép chúng tôi đạt được khôi phục tại thời điểm, ví dụ:cho đến ngay trước khi máy chủ MySQL gặp sự cố.
Đây là tất cả cho phần một, trong phần tiếp theo chúng ta sẽ kiểm tra hiệu suất của cả hai giải pháp và chạy một số kịch bản sao lưu và phục hồi trong trường hợp thực.