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ạn sẽ thiết lập bộ bản sao MongoDB như thế nào?

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.

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

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.

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

    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 .

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

  • 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.

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

  • 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 .

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

  • 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

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

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 .

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

      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 .

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

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

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

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}

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

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.

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

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"},]}

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

~/. vnc/xstartup

1

rs. bắt đầu()

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

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.

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

       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ạn sẽ thiết lập bộ bản sao MongoDB như thế nào?

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

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

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

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

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

Đ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.

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

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

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

Đ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ủ.

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

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

    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:

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

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

<. -- ?php thử . //{db_username}. {db_password}@node{NodeID}-{environment_domain}. 27017, nút{NodeID}-{environment_domain}. 27017,nút{NodeID}-{environment_domain}. 27017,nút{NodeID}-{environment_domain}. 27017/?replicaSet={replica_set_name}&readPreference=primary" $mongodbConnectionURI= "mongodb://{db_username}:{db_password}@node{NodeID}-{environment_domain}:27017, node{NodeID}-{environment_domain}:27017,node{NodeID}-{environment_domain}:27017,node{NodeID}-{environment_domain}:27017/?replicaSet={replica_set_name}&readPreference=primary"; $người quản lý = new MongoDB\Driver\Manager($mongodbConnectionURI); $command = new MongoDB\Driver\Command(['ping' => 1]); $cursor = $manager->executeCommand('db', $command); $response = $cursor->toArray()[0]; var_dump($response); echo'

'
; var_dump($manager->getServers()); } catch (Exception $e){ echo $e->getMessage(); } ?-->

Các giá trị sau trong đoạn mã trên cần được thay thế bằng dữ liệu tương ứng của bạn

  • {replica_set_name} – nhập tên bộ bản sao của bạn.
  • {db_username} – thêm người dùng quản trị của cơ sở dữ liệu chính đã chọn (mặc định là quản trị viên).
  • {db_password} – nhập mật khẩu của người dùng quản trị.
  • {NodeID} – đề cập đến số nhận dạng của nút tương ứng. Bạn có thể tìm thấy điều này trên bảng điều khiển CloudSigma PaaS.
  • {environment_domain} – thêm miền môi trường. Bạn cũng có thể tìm thấy điều này trên bảng điều khiển CloudSigma PaaS.

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

Đảm bảo rằng bạn chỉ định ID của mọi nút trong bộ bản sao của mình trong phần mongodbConnectionURI thích hợp.

Nhập các giá trị tương ứng và chạy mã sẽ hiển thị cho bạn một bộ chuỗi tương tự như thế này

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

Đảm bảo rằng bạn Lưu tệp tại thời điểm này.

4. Để Apache tương tác với máy chủ MongoDB, nó yêu cầu một mô-đun đặc biệt. Bạn có thể thêm mô-đun này trong cấu hình. Chuyển đến thư mục etc và mở php. ini tệp . Xác định vị trí phần [mongodb]. Tại đây, tất cả những gì bạn cần làm là xóa dấu chấm phẩy trước tiện ích mở rộng = mongodb.so để bật tiện ích mở rộng này.

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

      5. Áp dụng các cấu hình mới bằng cách nhấp vào Lưu trong cửa sổ trình chỉnh sửa. Như mọi khi, chúng ta cần khởi động lại các nút để áp dụng các thay đổi. Nhấp vào nút Khởi động lại nút bên cạnh Máy chủ ứng dụng để làm như vậy.

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

    6. Bây giờ hãy nhấp vào nút Mở trong trình duyệt để kiểm tra.

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

Nhấp vào biểu tượng này sẽ mở ra một tab trình duyệt mới sẽ hiển thị tất cả thông tin về các thành viên/nút của bộ bản sao của bạn và khả năng truy cập của chúng như thế này

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

Vì chúng ta đã sử dụng lệnh ping (dòng 6 của chỉ mục.php ), dòng đầu tiên hiển thị kết quả để kiểm tra tính khả dụng của bộ bản sao.

~/. vnc/xstartup

1

đối tượng(stdClass)#11 (3)

Điều này có nghĩa là bộ bản sao đã được thử nghiệm thành công.  

Khối tiếp theo trong kết quả hiển thị thông tin chi tiết về các máy chủ được đặt bản sao. Dữ liệu này có được nhờ chức năng getServers (dòng 11 của chỉ mục.php ). Tương tự, bạn cũng có thể kiểm tra một số giá trị được gán trong quá trình tạo bộ bản sao này.

  • máy chủ – địa chỉ IP của một cơ sở dữ liệu cụ thể.
  • cổng – đây là cổng của thành viên sao chép hiện tại.
  • [“is_primary”] and [“is_secondary”] – tham số cho biết trạng thái máy chủ. Các giá trị tương ứng cho máy chủ MongoDB chính đã chọn là đúng, sai và cho hai máy chủ MongoDB khác - lần lượt là sai, đúng.

Ngoài ra, bạn có thể bắt đầu và dừng các nút cơ sở dữ liệu bất kỳ lúc nào để theo dõi các thay đổi. Bạn cũng có thể làm mới trang để làm điều tương tự. Điều này cho phép bạn đảm bảo rằng cụm MongoDB của bạn luôn khả dụng, hoạt động và đang chạy khi bạn định cấu hình nó

CloudSigma PaaS cho phép người dùng tận dụng lợi ích của việc sử dụng các bộ bản sao mà không phải lo lắng quá nhiều về cấu hình và mặt sau của mọi thứ. Hướng dẫn này cho thấy cách đơn giản để thiết lập cụm MongoDB của riêng bạn chỉ với một vài bước đơn giản. Bạn có thể tìm hiểu thêm về

Bộ bản sao MongoDB hoạt động như thế nào?

Bộ bản sao là một nhóm các phiên bản mongod duy trì cùng một bộ dữ liệu . Một bộ bản sao chứa một số nút mang dữ liệu và tùy chọn một nút trọng tài. Trong số các nút mang dữ liệu, một và chỉ một thành viên được coi là nút chính, trong khi các nút khác được coi là nút phụ.

Làm cách nào để triển khai sao chép trong MongoDB?

Bạn có thể sao chép dữ liệu MongoDB của mình thành nhiều Phân đoạn khác nhau bằng các bước sau. .
Bước 1. Tạo máy chủ cấu hình cho MongoDB
Bước 2. Tạo Shard Server cho MongoDB
Bước 3. Khởi động Máy chủ để khởi tạo Bản sao MongoDB
Bước 4. Thêm phân đoạn vào máy chủ phân đoạn MongoDB
Bước 5. Kiểm tra quá trình sao chép

Làm cách nào để định cấu hình bản sao MongoDB được đặt trên Ubuntu?

Định cấu hình tệp cấu hình trên tất cả máy chủ. mở mongod. conf bằng lệnh sau. $ sudo nano /etc/mongod. conf. # mongod. .
Khởi động lại mongod. dịch vụ trên mỗi máy chủ. Khởi động lại MongoDB. .
Bắt đầu bộ bản sao. Chọn một máy chủ để bắt đầu bộ bản sao và kết nối với mongo. Tôi đã chọn máy chủ1

Lệnh nào được sử dụng để bắt đầu một bộ bản sao mới?

initiate() để bắt đầu quá trình sao chép. Bây giờ Mongo Shell sẽ thay đổi lời nhắc của nó thành tên của Bộ bản sao của bạn, replicaSet1.