MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Bảo vệ dữ liệu của bạn với ClusterControl

Trong bốn bài đăng trước đây của loạt blog, chúng tôi đã đề cập đến việc triển khai phân cụm / nhân rộng (MySQL / Galera, MySQL Replication, MongoDB &PostgreSQL), quản lý và giám sát cơ sở dữ liệu và cụm hiện có của bạn, giám sát hiệu suất và sức khỏe và trong bài đăng cuối cùng, cách làm cho thiết lập của bạn có tính khả dụng cao thông qua HAProxy và ProxySQL.

Vì vậy, bây giờ bạn đã thiết lập và chạy cơ sở dữ liệu của mình và có tính khả dụng cao, làm cách nào để bạn đảm bảo rằng bạn có các bản sao lưu dữ liệu của mình?

Bạn có thể sử dụng các bản sao lưu cho nhiều việc:khôi phục sau thảm họa, để cung cấp dữ liệu sản xuất để kiểm tra sự phát triển hoặc thậm chí để cung cấp một nút nô lệ. Trường hợp cuối cùng này đã được ClusterControl bao phủ. Khi bạn thêm một nút (bản sao) mới vào thiết lập bản sao của mình, ClusterControl sẽ tạo một bản sao lưu / ảnh chụp nhanh của nút chính và sử dụng nó để tạo bản sao. Nó cũng có thể sử dụng một bản sao lưu hiện có để tạo bản sao, trong trường hợp bạn muốn tránh tải thêm trên bản chính. Sau khi bản sao lưu đã được giải nén, chuẩn bị và cơ sở dữ liệu đang hoạt động, ClusterControl sẽ tự động thiết lập bản sao.

Tạo sao lưu tức thì

Về bản chất, việc tạo bản sao lưu là giống nhau đối với Galera, MySQL replication, PostgreSQL và MongoDB. Bạn có thể tìm thấy phần sao lưu trong ClusterControl> Sao lưu và theo mặc định, bạn sẽ thấy danh sách các bản sao lưu đã tạo của cụm (nếu có). Nếu không, bạn sẽ thấy một trình giữ chỗ để tạo bản sao lưu:

Từ đây, bạn có thể nhấp vào nút "Tạo sao lưu" để tạo sao lưu tức thì hoặc lập lịch sao lưu mới:

Tất cả các bản sao lưu đã tạo cũng có thể được tải lên đám mây bằng cách chuyển đổi "Tải bản sao lưu lên đám mây", miễn là bạn cung cấp thông tin đăng nhập trên đám mây đang hoạt động. Theo mặc định, tất cả các bản sao lưu cũ hơn 31 ngày sẽ bị xóa (có thể định cấu hình thông qua cài đặt Lưu giữ bản sao lưu) hoặc bạn có thể chọn giữ nó vĩnh viễn hoặc xác định khoảng thời gian tùy chỉnh.

"Tạo Sao lưu" và "Sao lưu theo lịch trình" chia sẻ các tùy chọn tương tự ngoại trừ phần lập lịch và các tùy chọn sao lưu gia tăng cho phần sau. Do đó, chúng tôi sẽ xem xét sâu hơn về tính năng Tạo sao lưu (còn gọi là sao lưu tức thì).

Vì tất cả các cơ sở dữ liệu khác nhau này đều có các công cụ sao lưu khác nhau, nên rõ ràng là có một số khác biệt trong các tùy chọn bạn có thể chọn. Ví dụ với MySQL, bạn có thể chọn giữa mysqldump và xtrabackup (đầy đủ và tăng dần). Đối với MongoDB, ClusterControl hỗ trợ mongodump và mongodb-phù hợp-sao lưu (beta) trong khi PostgreSQL, pg_dump và pg_basebackup được hỗ trợ. Nếu nghi ngờ nên chọn cái nào cho MySQL, hãy xem blog này về sự khác biệt và các trường hợp sử dụng cho mysqldump và xtrabackup.

Sao lưu MySQL và Galera

Như đã đề cập trong đoạn trước, bạn có thể tạo bản sao lưu MySQL bằng cách sử dụng mysqldump hoặc xtrabackup (đầy đủ hoặc tăng dần). Trong trình hướng dẫn "Tạo bản sao lưu", bạn có thể chọn máy chủ lưu trữ bạn muốn chạy bản sao lưu, vị trí bạn muốn lưu trữ các tệp sao lưu cũng như thư mục và các lược đồ cụ thể (xtrabackup) hoặc lược đồ và bảng (mysqldump).

Nếu nút bạn đang sao lưu đang nhận lưu lượng (sản xuất) và bạn sợ việc ghi thêm vào đĩa sẽ bị xâm nhập, bạn nên gửi các bản sao lưu đến máy chủ ClusterControl bằng cách chọn tùy chọn "Lưu trữ trên Bộ điều khiển". Điều này sẽ khiến bản sao lưu truyền các tệp qua mạng tới máy chủ ClusterControl và bạn phải đảm bảo có đủ dung lượng trống trên nút này và cổng phát trực tuyến được mở trên máy chủ ClusterControl.

Ngoài ra còn có một số tùy chọn khác cho dù bạn có muốn sử dụng tính năng nén và mức độ nén hay không. Mức nén càng cao, kích thước sao lưu sẽ càng nhỏ. Tuy nhiên, nó yêu cầu mức sử dụng CPU cao hơn cho quá trình nén và giải nén.

Nếu bạn chọn xtrabackup làm phương pháp sao lưu, nó sẽ mở ra các tùy chọn bổ sung:giải mã, khóa sao lưu, nén và các luồng song song xtrabackup / gzip. Tùy chọn giải mã chỉ có thể áp dụng để giải mã đồng bộ một nút từ một cụm Galera. Khóa dự phòng sử dụng kiểu khóa MDL mới để chặn cập nhật cho các bảng không giao dịch và các câu lệnh DDL cho tất cả các bảng hiệu quả hơn cho khối lượng công việc cụ thể của InnoDB. Nếu bạn đang chạy trên Galera Cluster, bạn nên bật tùy chọn này.

Sau khi lên lịch sao lưu tức thì, bạn có thể theo dõi tiến trình của công việc sao lưu trong Hoạt động> Công việc :

Sau khi hoàn tất, bạn sẽ có thể thấy mục nhập mới trong danh sách sao lưu.

Sao lưu PostgreSQL

Tương tự như các bản sao lưu tức thì của MySQL, bạn có thể chạy bản sao lưu trên cơ sở dữ liệu Postgres của mình. Với sao lưu Postgres, có hai phương pháp sao lưu được hỗ trợ - pg_dumpall hoặc pg_basebackup. Lưu ý rằng ClusterControl sẽ luôn thực hiện sao lưu đầy đủ bất kể phương pháp sao lưu đã chọn là gì.

Chúng tôi đã đề cập đến khía cạnh này trong chi tiết này trong Trở thành DBA PostgreSQL - Bản sao lưu PostgreSQL logic &Vật lý.

Sao lưu MongoDB

Đối với MongoDB, ClusterControl hỗ trợ mongodump tiêu chuẩn và mongodb-phù hợp-sao lưu do Percona phát triển. Phiên bản thứ hai vẫn ở phiên bản beta cung cấp các bản sao lưu tại thời điểm nhất quán theo cụm của MongoDB phù hợp với các thiết lập cụm phân đoạn. Vì cụm MongoDB được phân đoạn bao gồm nhiều tập hợp bản sao, một tập hợp bản sao cấu hình và các máy chủ phân đoạn, nên rất khó để tạo một bản sao lưu nhất quán chỉ sử dụng mongodump.

Lưu ý rằng trong trình hướng dẫn, bạn không cần phải chọn một nút cơ sở dữ liệu để được sao lưu. ClusterControl sẽ tự động chọn bản sao thứ cấp khỏe mạnh nhất làm nút dự phòng. Nếu không, cái chính sẽ được chọn. Khi quá trình sao lưu đang chạy, nút sao lưu đã chọn sẽ bị khóa cho đến khi quá trình sao lưu hoàn tất.

Lập lịch sao lưu

Bây giờ chúng ta đã thử tạo bản sao lưu tức thì, giờ đây chúng ta có thể mở rộng điều đó bằng cách lên lịch sao lưu.

Việc lập lịch biểu rất dễ thực hiện:bạn có thể chọn ngày nào cần thực hiện sao lưu và thời gian cần chạy.

Đối với xtrabackup có một tính năng bổ sung:sao lưu gia tăng. Một bản sao lưu gia tăng sẽ chỉ sao lưu dữ liệu đã thay đổi kể từ lần sao lưu cuối cùng. Tất nhiên, các bản sao lưu gia tăng sẽ vô dụng nếu không có bản sao lưu đầy đủ làm điểm khởi đầu. Giữa hai bản sao lưu đầy đủ, bạn có thể có bao nhiêu bản sao lưu gia tăng tùy thích. Tuy nhiên, việc khôi phục chúng sẽ mất nhiều thời gian hơn.

Sau khi lên lịch, (các) công việc sẽ hiển thị trong tab "Sao lưu đã lên lịch" và bạn có thể chỉnh sửa chúng bằng cách nhấp vào nút "Chỉnh sửa". Giống như với các bản sao lưu tức thì, những công việc này sẽ lên lịch tạo bản sao lưu và bạn có thể theo dõi tiến trình thông qua tab Hoạt động.

Danh sách dự phòng

Bạn có thể tìm thấy Danh sách sao lưu trong ClusterControl> Sao lưu và điều này sẽ cung cấp cho bạn cái nhìn tổng quan ở cấp độ cụm của tất cả các bản sao lưu được thực hiện. Nhấp vào từng mục nhập sẽ mở rộng hàng và hiển thị thêm thông tin về bản sao lưu:

Mỗi bản sao lưu được đi kèm với một bản ghi sao lưu khi ClusterControl thực thi công việc, bản ghi này có sẵn trong nút "Tác vụ khác".

Sao lưu ngoại tuyến trên đám mây

Vì chúng tôi hiện có rất nhiều bản sao lưu được lưu trữ trên máy chủ cơ sở dữ liệu hoặc máy chủ lưu trữ ClusterControl, chúng tôi cũng muốn đảm bảo chúng không bị mất trong trường hợp chúng tôi gặp sự cố toàn bộ cơ sở hạ tầng. (ví dụ:DC bị cháy hoặc bị ngập lụt) Do đó ClusterControl cho phép bạn lưu trữ hoặc sao chép các bản sao lưu ngoại vi của mình trên đám mây. Các nền tảng đám mây được hỗ trợ là Amazon S3, Google Cloud Storage và Azure Cloud Storage.

Quá trình tải lên diễn ra ngay sau khi bản sao lưu được tạo thành công (nếu bạn chuyển đổi "Tải bản sao lưu lên đám mây") hoặc bạn có thể nhấp vào nút biểu tượng đám mây của danh sách sao lưu theo cách thủ công:

Chọn thông tin xác thực trên đám mây và chỉ định vị trí sao lưu cho phù hợp:

Khôi phục và / hoặc Xác minh bản sao lưu

Từ giao diện Danh sách sao lưu, bạn có thể trực tiếp khôi phục bản sao lưu vào máy chủ lưu trữ trong cụm bằng cách nhấp vào nút "Khôi phục" cho bản sao lưu cụ thể hoặc nhấp vào nút "Khôi phục bản sao lưu":

Một tính năng thú vị là nó có thể khôi phục một nút hoặc cụm bằng cách sử dụng các bản sao lưu đầy đủ và tăng dần vì nó sẽ theo dõi bản sao lưu đầy đủ cuối cùng được thực hiện và bắt đầu sao lưu gia tăng từ đó. Sau đó, nó sẽ nhóm một bản sao lưu đầy đủ cùng với tất cả các bản sao lưu gia tăng cho đến lần sao lưu đầy đủ tiếp theo. Điều này cho phép bạn khôi phục bắt đầu từ bản sao lưu đầy đủ và áp dụng các bản sao lưu gia tăng trên đó.

ClusterControl hỗ trợ khôi phục trên một nút cơ sở dữ liệu hiện có hoặc khôi phục và xác minh trên một máy chủ độc lập mới:

Hai tùy chọn này khá giống nhau, ngoại trừ xác minh có thêm tùy chọn cho thông tin máy chủ mới. Nếu bạn làm theo trình hướng dẫn khôi phục, bạn sẽ cần chỉ định một máy chủ mới. Nếu "Cài đặt phần mềm cơ sở dữ liệu" được bật, ClusterControl sẽ xóa mọi cài đặt MySQL hiện có trên máy chủ đích và cài đặt lại phần mềm cơ sở dữ liệu có cùng phiên bản với máy chủ MySQL hiện có.

Sau khi bản sao lưu được khôi phục và xác minh, bạn sẽ nhận được thông báo về trạng thái khôi phục và nút sẽ tự động tắt.

Khôi phục điểm trong thời gian

Đối với MySQL, cả xtrabackup và mysqldump đều có thể được sử dụng để thực hiện khôi phục điểm trong thời gian và cũng để cung cấp một nô lệ nhân bản mới cho bản sao chủ nô hoặc Galera Cluster. Bản sao lưu tương thích với mysqldump PITR chứa một tệp kết xuất duy nhất, với thông tin GTID, tệp binlog và vị trí. Do đó, chỉ nút cơ sở dữ liệu tạo nhật ký nhị phân mới có tùy chọn "tương thích với PITR":

Khi tùy chọn tương thích PITR được bật, trường cơ sở dữ liệu và bảng sẽ chuyển sang màu xám vì ClusterControl sẽ luôn thực hiện sao lưu đầy đủ chống lại tất cả cơ sở dữ liệu, sự kiện, trình kích hoạt và quy trình của máy chủ MySQL đích.

Bây giờ đang khôi phục bản sao lưu. Nếu bản sao lưu tương thích với PITR, một tùy chọn sẽ được hiển thị để thực hiện Khôi phục điểm trong thời gian. Bạn sẽ có hai tùy chọn cho điều đó - "Dựa trên thời gian" và "Dựa trên vị trí". Đối với "Dựa trên thời gian", bạn có thể thông qua ngày và giờ. Đối với "Dựa trên vị trí", bạn có thể chuyển vị trí chính xác đến nơi bạn muốn khôi phục. Đó là một cách chính xác hơn để khôi phục, mặc dù bạn có thể cần lấy vị trí binlog bằng cách sử dụng tiện ích mysqlbinlog. Bạn có thể tìm thấy thêm thông tin chi tiết về khôi phục tại thời điểm trong blog này.

Mã hóa sao lưu

Thông thường, ClusterControl hỗ trợ mã hóa sao lưu cho MySQL, MongoDB và PostgreSQL. Các bản sao lưu được mã hóa ở trạng thái còn lại bằng thuật toán AES-256 CBC. Khóa được tạo tự động sẽ được lưu trữ trong tệp cấu hình của cụm trong /etc/cmon.d/cmon_X.cnf (trong đó X là ID cụm):

$ sudo grep backup_encryption_key /etc/cmon.d/cmon_1.cnf
backup_encryption_key='JevKc23MUIsiWLf2gJWq/IQ1BssGSM9wdVLb+gRGUv0='

Nếu đích sao lưu không phải là cục bộ, các tệp sao lưu sẽ được chuyển ở định dạng được mã hóa. Tính năng này bổ sung cho sao lưu ngoại vi trên đám mây, nơi chúng tôi không có toàn quyền truy cập vào hệ thống lưu trữ bên dưới.

Lời kết

Chúng tôi đã hướng dẫn bạn cách sao lưu dữ liệu của bạn và cách lưu trữ chúng một cách an toàn ngoài trang web. Phục hồi luôn là một điều khác biệt. ClusterControl có thể tự động khôi phục cơ sở dữ liệu của bạn từ các bản sao lưu đã tạo trước đây được lưu trữ tại chỗ hoặc sao chép lại từ đám mây.

Rõ ràng là có nhiều thứ hơn để bảo mật dữ liệu của bạn, đặc biệt là về mặt bảo mật các kết nối của bạn. Chúng tôi sẽ đề cập đến vấn đề này trong bài đăng blog tiếp theo!


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để bạn truy vấn cho không phải là null trong Mongo?

  2. Lưu trữ và truy xuất các đối tượng JavaScript trong / từ MongoDB

  3. Vui lòng sử dụng 'MongoMappingContext # setAutoIndexCreation (boolean)' hoặc ghi đè 'MongoConfigurationSupport # autoIndexCreation ()' thành tục tĩu

  4. Làm thế nào để truy xuất một giá trị từ mongoDB, bằng tên khóa của nó?

  5. Tạo một cụm cơ sở dữ liệu trong đám mây với MongoDB Atlas