Có một môi trường thử nghiệm là điều bắt buộc ở tất cả các công ty. Nó có thể cần thiết để kiểm tra các thay đổi hoặc bản phát hành mới của ứng dụng, hoặc thậm chí để kiểm tra ứng dụng hiện có của bạn với phiên bản PostgreSQL mới. Phần khó của việc này trước tiên là làm thế nào để triển khai một môi trường thử nghiệm càng giống với môi trường sản xuất càng tốt và làm thế nào để duy trì môi trường đó mà không cần tạo lại mọi thứ từ đầu.
Trong blog này, chúng ta sẽ thấy cách triển khai môi trường thử nghiệm theo những cách khác nhau bằng cách sử dụng ClusterControl, điều này sẽ giúp bạn tự động hóa quy trình và tránh các tác vụ thủ công tốn thời gian.
Sao chép theo cụm
Vì ClusterControl 1.7.4 có một tính năng được gọi là Cluster-to-Cluster Replication. Nó cho phép bạn có một bản sao chạy giữa hai cụm tự trị.
Chúng ta sẽ xem xét cách sử dụng tính năng này cho một cụm PostgreSQL hiện có. Đối với tác vụ này, chúng tôi sẽ giả sử bạn đã cài đặt ClusterControl và Cụm chính đã được triển khai bằng cách sử dụng nó.
Tạo bản sao theo cụm thành cụm
Để tạo Bản sao theo cụm mới từ giao diện người dùng ClusterControl, hãy chuyển đến ClusterControl -> Chọn PostgreSQL Cluster -> Cluster Actions -> Create Slave Cluster.
Cụm nô lệ sẽ được tạo bằng cách truyền dữ liệu từ Cụm chính hiện tại.
Bạn phải chỉ định cổng và thông tin đăng nhập SSH, tên cho Cụm nô lệ của bạn và nếu bạn muốn ClusterControl cài đặt phần mềm và cấu hình tương ứng cho bạn.
Sau khi thiết lập thông tin truy cập SSH, bạn phải xác định phiên bản cơ sở dữ liệu, datadir, cổng và thông tin đăng nhập quản trị viên. Vì nó sẽ sử dụng sao chép trực tuyến, hãy đảm bảo rằng bạn sử dụng cùng một phiên bản cơ sở dữ liệu và thông tin đăng nhập phải giống nhau được Cụm chính sử dụng.
Trong bước này, bạn cần thêm máy chủ vào Cụm nô lệ mới. Đối với tác vụ này, bạn có thể nhập cả Địa chỉ IP hoặc Tên máy chủ của nút cơ sở dữ liệu.
Bạn có thể theo dõi trạng thái công việc trong trình theo dõi hoạt động ClusterControl. Sau khi tác vụ hoàn thành, bạn có thể thấy cụm trong màn hình ClusterControl chính.
ClusterControl CLI
ClusterControl CLI, còn được gọi là s9s, là một công cụ dòng lệnh được giới thiệu trong ClusterControl phiên bản 1.4.1 để tương tác, kiểm soát và quản lý các cụm cơ sở dữ liệu bằng hệ thống ClusterControl. ClusterControl CLI mở ra một cánh cửa mới cho tự động hóa cụm, nơi bạn có thể dễ dàng tích hợp nó với các công cụ tự động hóa triển khai hiện có như Ansible, Puppet, Chef, v.v. Bạn cũng có thể sử dụng công cụ ClusterControl này để tạo một Slave Cluster. Hãy xem một ví dụ:
$ s9s cluster --create --cluster-name=PostgreSQL1rep --cluster-type=postgresql --provider-version=13 --nodes="192.168.100.133" --os-user=root --os-key-file=/root/.ssh/id_rsa --db-admin=admin --db-admin-passwd=********* --vendor=postgres --remote-cluster-id=14 --log
Bây giờ, chúng ta hãy xem thông số được sử dụng chi tiết hơn:
-
Cụm:Để liệt kê và thao tác các cụm.
-
Tạo:Tạo và cài đặt một cụm mới.
-
Cluster-name:Tên của Cụm nô lệ mới.
-
Cluster-type:Loại cụm cần cài đặt.
-
Phiên bản nhà cung cấp:Phiên bản phần mềm.
-
Nút:Danh sách các nút mới trong Cụm nô lệ.
-
Os-user:Tên người dùng cho các lệnh SSH.
-
Os-key-file:Tệp khóa để sử dụng cho kết nối SSH.
-
Db-admin:Tên người dùng quản trị cơ sở dữ liệu.
-
Db-admin-passwd:Mật khẩu dành cho quản trị viên cơ sở dữ liệu.
-
Remote-cluster-id:Master Cluster ID cho Bản sao Cluster-to-Cluster.
-
Nhật ký:Chờ và theo dõi thông báo công việc.
Quản lý Sao chép Cụm thành Cụm
Bây giờ, bạn đã thiết lập và chạy Bản sao theo cụm từ cụm thành cụm của mình, có các hành động khác nhau để thực hiện trên cấu trúc liên kết này bằng cách sử dụng ClusterControl từ cả giao diện người dùng và CLI.
Xây dựng lại Cụm nô lệ
Để xây dựng lại một Cụm nô lệ, hãy đi tới ClusterControl -> Chọn Cụm nô lệ -> Nút -> Chọn nút -> Hành động nút -> Xây dựng lại Slave nhân bản.
ClusterControl sẽ thực hiện các bước sau:
-
Dừng Máy chủ PostgreSQL
-
Xóa nội dung khỏi datadir
-
Truyền một bản sao lưu từ Master đến Slave bằng pg_basebackup
-
Khởi động nô lệ
Bạn cũng có thể xây dựng lại Cụm nô lệ bằng cách sử dụng lệnh sau từ máy chủ ClusterControl:
$ s9s replication --stage --master="192.168.100.125" --slave="192.168.100.133" --cluster-id=15 --remote-cluster-id=14 --log
Các tham số là:
-
Sao chép:Để theo dõi và kiểm soát việc sao chép dữ liệu.
-
Giai đoạn:Giai đoạn / Xây dựng lại một nô lệ sao chép.
-
Master:Bản sao chính trong cụm chính.
-
Slave:Nô lệ sao chép trong cụm nô lệ.
-
Cluster-id:ID Cụm nô lệ.
-
Remote-cluster-id:ID Cụm Chính.
-
Nhật ký:Chờ và theo dõi thông báo công việc.
Tạo Cụm từ Sao lưu
Một cách khác để tạo môi trường thử nghiệm là tạo một cụm mới từ bản sao lưu Cụm chính của bạn. Đối với điều này, hãy đi tới ClusterControl -> Chọn cụm PostgreSQL của bạn -> Sao lưu. Tại đó, chọn bản sao lưu sẽ được khôi phục từ danh sách.
Bây giờ, bạn có thể khôi phục bản sao lưu này trong cơ sở dữ liệu hiện tại của mình, trong một nút riêng biệt hoặc tạo một cụm mới từ bản sao lưu này.
Tùy chọn “Tạo cụm từ bản sao lưu” sẽ tạo một cụm PostgreSQL mới từ bản sao lưu đã chọn.
Bạn cần thêm thông tin đăng nhập hệ điều hành và cơ sở dữ liệu cũng như thông tin để triển khai cụm mới. Khi công việc này kết thúc, bạn sẽ thấy cụm mới trong giao diện người dùng ClusterControl.
Khôi phục Sao lưu trên Máy chủ Độc lập
Trong cùng một phần Sao lưu, bạn có thể chọn tùy chọn “Khôi phục và xác minh trên máy chủ độc lập” để khôi phục bản sao lưu trong một nút riêng biệt.
Tại đây bạn có thể chỉ định xem bạn có muốn ClusterControl cài đặt phần mềm trong nút mới hay không và tắt tường lửa hoặc AppArmor / SELinux (tùy thuộc vào hệ điều hành). Bạn có thể duy trì nút hoạt động hoặc ClusterControl có thể tắt dịch vụ cơ sở dữ liệu cho đến khi thực hiện công việc khôi phục tiếp theo. Khi quá trình hoàn tất, bạn sẽ thấy bản sao lưu đã được khôi phục / xác minh trong danh sách sao lưu được đánh dấu bằng dấu tích.
Nếu bạn không muốn thực hiện tác vụ này theo cách thủ công, bạn có thể lập lịch quá trình này bằng cách sử dụng Tính năng xác minh sao lưu, để lặp lại công việc này theo định kỳ trong Công việc sao lưu.
Xác minh Sao lưu ClusterControl Tự động
Trong ClusterControl -> Chọn Cụm PostgreSQL của bạn -> Sao lưu -> Tạo Sao lưu.
Tính năng sao lưu tự động xác minh khả dụng cho các bản sao lưu đã lên lịch. Khi lên lịch sao lưu, ngoài việc chọn các tùy chọn phổ biến như phương pháp hoặc bộ nhớ, bạn cũng cần chỉ định lịch trình / tần suất.
Sử dụng ClusterControl, bạn có thể chọn các phương pháp sao lưu khác nhau, tùy thuộc vào công nghệ cơ sở dữ liệu và trong cùng một phần, bạn có thể chọn máy chủ để lấy bản sao lưu, nơi bạn muốn lưu trữ bản sao lưu. và nếu bạn muốn tải bản sao lưu lên đám mây (AWS, Azure hoặc Google Cloud). Bạn cũng có thể nén và mã hóa bản sao lưu của mình cũng như chỉ định khoảng thời gian lưu giữ.
Để sử dụng Tính năng Xác minh Sao lưu, bạn cần một máy chủ (hoặc máy ảo) chuyên dụng không phải là một phần của cụm. ClusterControl sẽ cài đặt phần mềm và sẽ khôi phục bản sao lưu trong máy chủ này mỗi khi công việc chạy.
Sau khi khôi phục, bạn có thể thấy biểu tượng xác minh trong phần Sao lưu ClusterControl, biểu tượng giống như biểu tượng bạn sẽ có khi thực hiện xác minh theo cách ClusterControl thủ công, với sự khác biệt mà bạn không cần phải lo lắng về nhiệm vụ khôi phục. ClusterControl sẽ tự động khôi phục bản sao lưu mọi lúc.
Kết luận
Triển khai môi trường thử nghiệm mọi lúc bạn cần có thể là một nhiệm vụ tốn thời gian và khó có thể duy trì tính cập nhật này. Kết quả của việc này là đôi khi các công ty không thử nghiệm các bản phát hành mới hoặc thử nghiệm không đúng, chẳng hạn như sử dụng môi trường khác với môi trường sản xuất.
Như bạn có thể thấy, ClusterControl cho phép bạn triển khai cùng một môi trường mà bạn đang sử dụng trong sản xuất chỉ với một vài cú nhấp chuột hoặc thậm chí tự động hóa quy trình để tránh bất kỳ tác vụ thủ công nào.