Bạn sẽ thiết lập bộ bản sao MongoDB như thế nào?

được định nghĩa là một cụm cơ sở dữ liệu gồm nhiều nút có sao chép và chuyển đổi dự phòng tự động được định cấu hình giữa chúng. Để đảm bảo cơ sở dữ liệu CHÍNH được chọn chính xác, điều quan trọng là phải có số lượng thành viên lẻ trong tập hợp [bao gồm hoặc loại trừ nút Người phân xửnút].  

Cơ sở dữ liệu được chọn chịu trách nhiệm cho tất cả các nhiệm vụ chính. Nó xử lý các hoạt động ghi đến và lưu trữ thông tin của chúng trong oplog. Thông tin này có thể được truy cập và sao chép bởi các thành viên bản sao THỨ HAI để áp dụng cho bộ dữ liệu của riêng họ. Do đó, tất cả các máy chủ trong bộ sẽ đại diện cho cùng một nội dung và đảm bảo tính khả dụng của nội dung đó

Bây giờ hãy xem xét một tình huống trong đó sự cố không mong muốn [như phần cứng hoặc lỗi kết nối] khiến cơ sở dữ liệu chính gặp phải thời gian ngừng hoạt động. Trong trường hợp như vậy, hệ thống sẽ tự động bắt đầu quy trình bầu cử mới để khôi phục hoạt động bình thường mà không yêu cầu bất kỳ sự can thiệp thủ công nào. Lợi ích của một hệ thống như vậy là bạn tận dụng tốt nhất nhân rộng, chẳng hạn như tăng tính khả dụng, dự phòng chuyển đổi dự phòng và khắc phục thảm họa mà không phải lo lắng về .

Nếu bạn muốn sử dụng một hệ thống tương tự, hướng dẫn này sẽ chỉ cho bạn cách định cấu hình bộ bản sao MongoDB với CloudSigma PaaS . Như bạn sẽ thấy trong hướng dẫn này, chúng tôi sẽ sử dụng ba thành viên thường đủ để cung cấp biên độ an toàn thông tin tốt và khả năng xử lý các hoạt động I/O cho hầu hết các ứng dụng phổ biến. Cùng với cấu hình thực tế của bản sao, chúng ta cũng sẽ tìm hiểu cách chuẩn bị môi trường, thiết lập xác thực giữa các nút DB và cách đảm bảo công việc của bạn thành công.

Bước 1. Tạo một môi trường mới

Để bắt đầu, bạn sẽ cần ít nhất 3 nút MongoDB để bắt đầu định cấu hình bộ bản sao. Vì vậy, hãy tiếp tục và tạo một môi trường mới như sau.

Trong ví dụ của chúng tôi, chúng tôi đang phân bổ tất cả các phiên bản MongoDB của 4. 0. 2 phiên bản cho cùng một môi trường. Bạn có thể thay đổi Tên môi trường nếu cần trong không gian nhất định và tiếp tục quá trình cài đặt.

Bước tiếp theo trong quy trình sẽ xử lý tính bảo mật của giao tiếp giữa các nút này bằng tệp khóa xác thực

Bước 2. Thêm tệp khóa xác thực

Xác thực là một thành phần quan trọng của bất kỳ bản sao nào. Đây là một quy trình đảm bảo an ninh chỉ cấp quyền truy cập cho một thành viên của bộ bản sao sau khi thành viên này xác định chính xác chính nó bằng một tệp khóa xác thực duy nhất. Điều này giúp dữ liệu của bạn an toàn trước những người xem và bên thứ ba không mong muốn. Đây là cách bạn có thể tạo tệp khóa xác thực của riêng mình

  1. Nhấp vào tùy chọn Web SSH cho một trong các nút cơ sở dữ liệu và đăng nhập.

    2. Tiếp theo, bạn có thể nhập tệp khóa của riêng mình hoặc tạo tệp mới bằng openssl bằng lệnh sau.

~/. vnc/xstartup

1

openssl rand - base64 741 > my.phím

Trong lệnh này, 741 biểu thị kích thước khóa tính bằng byte và của tôi. khóa là tên của khóa.

3. Đã đến lúc phân phối tệp khóa mới trên tất cả các phiên bản MongoDB của bạn. Đây là cách để làm điều đó

  • Mở Trình quản lý tệp bằng cách nhấp vào Cấu hình .

  • Xác định vị trí của tôi. Tệp key trong tab cấu hình theo đường dẫn. / nhà / jelastic / . my.phím . Mở nó và sao chép nội dung của tập tin.

  • Theo đường dẫn / var / lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib /lib/jelastic/keys you will find the keys directory. Create a New File which the MongoDB instances will utilize to authenticate each other’s identities. In our case, we will create a file called mongo - set. phím .

  • Dán nội dung đã sao chép trước đó vào tệp này và áp dụng các thay đổi bằng cách nhấp vào Lưu cho tất cả các phiên bản

Kết quả của quá trình này là mongo - bộ.key đã được phân phối trên tất cả các nút MongoDB của chúng tôi.

Bước 3. Định cấu hình Bản sao MongoDB

Bây giờ chúng tôi đã đảm bảo tính bảo mật của các phiên bản, chúng tôi có thể chuyển sang cấu hình thực sự cho bộ bản sao. Hãy bắt đầu nào

  1. Bắt đầu bằng cách chuyển đến tab cấu hình cho các nút MongoDB và mở mongo. conf trong thư mục etc. Cuộn xuống cho đến khi bạn tìm thấy phần sao chép. Bỏ ghi chú và thêm chuỗi sau với tên duy nhất cho bộ bản sao của bạn. Đối với ví dụ của chúng tôi, chúng tôi sẽ đặt tên cho nó là db - replication .

~/. vnc/xstartup

1

replSetName. db - sao chép

      2. Tiếp theo, chúng ta sẽ thêm một tham số mới có tên là keyFile trong phần bảo mật. Điều này sẽ phục vụ để chỉ định đường dẫn đến tệp chính hiện đang nằm ở đường dẫn. / var / lib / . jelastic/keys/mongo-set.phím .

      3. Nhấp vào nút thích hợp để Lưu các thay đổi cho tất cả các phiên bản trong .

      4. Bây giờ bạn phải Khởi động lại tất cả các nút DB của bạn để áp dụng cấu hình mới .

Một điều cần lưu ý là bạn đã hoàn tất việc định cấu hình bộ bản sao và đang khởi động lại tất cả các nút hoặc nút CHÍNH, quy trình bầu chọn cơ sở dữ liệu CHÍNH mới sẽ bắt đầu trong quá trình khởi động lại

5. Chọn máy chủ MongoDB mà bạn muốn sử dụng làm CHÍNH và truy cập nó bằng giao thức SSH

Ghi nhớ. khi cơ sở dữ liệu CHÍNH đã được chọn, các thành viên bộ bản sao khác sẽ không thể truy cập được cho các thao tác ghi trực tiếp. Điều này có nghĩa là tất cả các thay đổi và cấu hình chỉ có thể được thực hiện và áp dụng cho nút CHÍNH hiện tại mà thôi. Vì vậy, trừ khi bạn đã sắp xếp mức độ ưu tiên, bạn sẽ phải thay đổi chuỗi kết nối trong ứng dụng của mình thành nút CHÍNH mới.

6. Tiếp theo, truy cập cơ sở dữ liệu được sao chép bằng thông tin đăng nhập tương ứng của bạn

~/. vnc/xstartup

1

mongo - u {người dùng} -p {password} {DB_name}

Trong lệnh này

  • {user} – là tên người dùng quản trị viên sẽ được gửi tới email của bạn [thường là quản trị viên theo mặc định].
  • {password} – đây là mật khẩu được gửi đến email của bạn cùng với tên người dùng tương ứng.
  • {DB_name}- đại diện cho tên của cơ sở dữ liệu bạn muốn sao chép trong bộ bản sao này [chúng tôi đang sử dụng quản trị viên mặc định trong ví dụ của mình].

Trong trường hợp bầu cử mới, bạn có thể sử dụng cùng thông tin đăng nhập của người dùng quản trị viên để đăng nhập vào cơ sở dữ liệu CHÍNH mới

7. Bây giờ kết nối đã được thiết lập, bạn sẽ cần thực hiện các dòng sau để xác định các tham số cho nút MongoDB hiện tại và bắt đầu bộ bản sao

~/. vnc/xstartup

1

2

3

4

5

config = {_id . "{replica_set}", thành viên . [{_id . 0,

 

máy chủ. "{current_db_ip}. 27017"},]}

 

rs. bắt đầu[]

Trong các dòng trên, bạn sẽ thay thế các giá trị trong ngoặc bằng dữ liệu tương ứng của riêng bạn

  • {replica_set} – đây là tên của nhóm cơ sở dữ liệu sao chép mà bạn đã chỉ định ở đầu phần này. Trong trường hợp của chúng tôi, đây là bản sao db.
  • {current_db_ip} – cho biết địa chỉ IP của vùng chứa cơ sở dữ liệu mà bạn đã chọn.

Trong trường hợp của chúng tôi, các dòng thực hiện là

~/. vnc/xstartup

1

2

config = {_id . "db-replication", thành viên . [{_id . 0,

máy chủ. "10. 100. 2. 182. 27017"},]}

~/. vnc/xstartup

1

rs. bắt đầu[]

số 8. Tiếp theo, thực hiện lệnh sau cho tất cả các cơ sở dữ liệu còn lại

~/. vnc/xstartup

1

rs. thêm["{db_ip}. 27017"]

Ở đây, {db_ip} là địa chỉ IP của mỗi cơ sở dữ liệu.

       9. Khi bạn đã thêm tất cả các thành viên sao chép, bạn sẽ nhận được một bộ sao chép đầy đủ chức năng. Chúng tôi khuyên bạn nên đảm bảo mọi thứ đã được định cấu hình đúng khi kết thúc quá trình. Để làm như vậy, thực hiện lệnh. rs. trạng thái[] . Điều này sẽ hiển thị cho bạn thông tin đầy đủ về bộ bản sao của bạn, như sau.

Bước 4. Thiết lập Trọng tài ReplicaSet

Chúng tôi khuyên bạn nên sử dụng nút Người phân xử trong một số trường hợp nhất định. Nút Người phân xử là gì? . Vì vậy, nếu bạn hiện có số lượng nút chẵn trong tập hợp của mình, bạn có thể thêm nút Người phân xử để duy trì số đại biểu dự kiến ​​vì nút này đáp ứng nhịp tim và yêu cầu bầu cử . Dưới đây là một số thông tin chi tiết về Người phân xử nút.

  • Trọng tài viên không lưu trữ bất kỳ dữ liệu nào;
  • Nó rất nhẹ và không tiêu tốn quá nhiều tài nguyên
  • Nó trao đổi thông tin đăng nhập của người dùng giữa các bản sao được mã hóa
  • Để duy trì tính khả dụng cao nhất, hãy thử chạy Arbiter trên một nút riêng biệt

Đây là cách bạn có thể thêm nút Arbiter vào bộ bản sao của mình

  1. Đầu tiên, chúng tôi sẽ thực hiện một số tỷ lệ theo chiều ngang và thêm một nút bổ sung vào cụm

2. Với nút được thêm vào, chúng tôi cần một tệp khóa mới. Chuyển đến thư mục keys và tạo một tệp khóa mongo - set.phím . Sao chép nội dung chính từ bất kỳ nút cơ sở dữ liệu nào được định cấu hình trước đó và dán tất cả vào đây như chúng tôi đã làm trước đây.

3. Chuyển đến mongod. conf tệp cấu hình. Bỏ ghi chú phần sao chép và thêm repISetName [nó là db - replication in our case]. Also, head over to the security section and add the keyFile [ / var/lib/jelastic/keys/mongo-set.phím trong trường hợp của chúng tôi].

4. Cuối cùng, khởi động lại nút mới để áp dụng các tham số cấu hình mới này

Điều quan trọng cần nhớ là bạn KHÔNG cần khởi động lại tất cả các nút trong cụm tại thời điểm này. Chỉ khởi động lại nút Arbiter mới được thêm vào. Khởi động lại tất cả các nút sẽ dẫn đến một cuộc bầu chọn CHÍNH mới [trừ khi bạn đã chỉ định mức độ ưu tiên để chọn một nút cơ sở dữ liệu cụ thể làm CHÍNH]

5. Cuối cùng, Arbiter có thể được thêm vào bộ bản sao. Để làm như vậy, hãy đưa ra lệnh sau tại nút CHÍNH

~/. vnc/xstartup

1

rs. addArb["{db_ip}. 27017"]

Đây, {db_ip} là địa chỉ IP của nút mới.

6. Bây giờ, bạn có thể kiểm tra để xác nhận xem nút mới đã trở thành Người phân xử hay chưa. Bạn có thể thực hiện việc này bằng cách đăng nhập vào nút mới bằng SSH và kết nối với phiên bản MongoDB bằng thông tin đăng nhập bạn nhận được trên email của mình tại thời điểm tạo nút

Điều này cho thấy rằng nút mới mà chúng ta vừa thêm vào cụm đang đóng vai trò là Người phân xử của db - replication. This ensures a quorum in any given situation, making the replica set more reliable.

Bước 5. Kiểm tra tính khả dụng của cụm cơ sở dữ liệu

Tiếp theo, chúng ta có thể thiết lập cụm MongoDB của mình để kết nối và thực hiện các hoạt động từ xa. Trong ví dụ sau, chúng ta sẽ kết nối và thực thi một vài lệnh kiểm tra bằng cách sử dụng một PHP applet đơn giản

Đối với mục đích này, bạn sẽ cần một máy chủ ứng dụng, chẳng hạn như Apache. Bạn có thể thêm một cái vào môi trường của mình như chúng tôi đã làm hoặc tạo một cái mới trong một môi trường riêng biệt.

  1. Bắt đầu bằng cách nhấp vào Thay đổi cấu trúc liên kết môi trường và thêm máy chủ.

    2. Mở tab Trình quản lý cấu hình cho máy chủ Apache bằng cách nhấp vào < . Config button as shown below:

3. Định vị và mở chỉ mục. Tệp php trong / var/www/webroot/ROOT directory and paste the following code in place of the default content:

~/. vnc/xstartup

1

Chủ Đề