Bộ bản sao Mongodb thay đổi ip

Nếu là tài liệu, hãy chỉ định tài liệu cấu hình thành viên bộ bản sao như được tìm thấy trong mảng. Bạn phải chỉ định trường trong tài liệu cấu hình thành viên

sao chép

 {
   _id: <int>,
   host: <string>,        // required
   arbiterOnly: <boolean>,
   buildIndexes: <boolean>,
   hidden: <boolean>,
   priority: <number>,
   tags: <document>,
   slaveDelay: <int>,
   votes: <number>
}

Để biết mô tả về trường cấu hình, hãy tham khảo

  • Nếu là một chuỗi, hãy chỉ định tên máy chủ và tùy chọn số cổng cho thành viên mới

  • mongod --bind_ip localhost,My-Example-Associated-Hostname
    
    8booleanTùy chọn. Chỉ áp dụng nếu giá trị
    mongod --bind_ip localhost,My-Example-Associated-Hostname
    
    9 là một chuỗi. Nếu
    mongo --host My-Example-Associated-Hostname
    
    mongo --host 198.51.100.1
    
    0, người dẫn chương trình được thêm vào là trọng tài

    cung cấp một trình bao bọc xung quanh một số chức năng của và trình trợ giúp trình bao tương ứng. Xem tài liệu Cấu hình bộ bản sao để biết tài liệu đầy đủ về tất cả các tùy chọn cấu hình bộ bản sao.

    Liên kết IP

    Bắt đầu từ MongoDB 3. 6, các tệp nhị phân MongoDB và , liên kết với máy chủ cục bộ theo mặc định. Nếu cài đặt tệp cấu hình hoặc tùy chọn dòng lệnh

    mongo --host My-Example-Associated-Hostname
    
    mongo --host 198.51.100.1
    
    8 được đặt cho tệp nhị phân, tệp nhị phân sẽ liên kết bổ sung với địa chỉ IPv6 localhost

    Trước đây, bắt đầu từ MongoDB 2. 6, chỉ các tệp nhị phân từ các gói MongoDB RPM chính thức (Red Hat, CentOS, Fedora Linux và các công cụ phái sinh) và DEB (Debian, Ubuntu và các công cụ phái sinh) liên kết với localhost theo mặc định

    Khi chỉ bị ràng buộc với máy chủ cục bộ, các MongoDB 3 này. 6 tệp nhị phân chỉ có thể chấp nhận kết nối từ máy khách (bao gồm trình bao, các thành viên khác trong quá trình triển khai của bạn cho bộ bản sao và cụm phân đoạn) đang chạy trên cùng một máy. Máy khách từ xa không thể kết nối với các tệp nhị phân chỉ được liên kết với localhost

    Để ghi đè và liên kết với các địa chỉ ip khác, bạn có thể sử dụng cài đặt tệp cấu hình hoặc tùy chọn dòng lệnh

    rs.add( { host: "mongodbd4.example.net:27017" } )
    
    1 để chỉ định danh sách tên máy chủ hoặc địa chỉ ip

    Cảnh báo

    Trước khi liên kết với một máy chủ không phải máy chủ cục bộ (e. g. địa chỉ IP có thể truy cập công khai), đảm bảo bạn đã bảo vệ cụm của mình khỏi bị truy cập trái phép. Để biết danh sách đầy đủ các đề xuất bảo mật, hãy xem Danh sách kiểm tra bảo mật . Ở mức tối thiểu, hãy xem xét và củng cố cơ sở hạ tầng mạng .

    Ví dụ: trường hợp sau liên kết với cả máy chủ cục bộ và tên máy chủ

    rs.add( { host: "mongodbd4.example.net:27017" } )
    
    3, được liên kết với địa chỉ ip
    rs.add( { host: "mongodbd4.example.net:27017" } )
    
    4

    sao chép

    mongod --bind_ip localhost,My-Example-Associated-Hostname
    

    Để kết nối với phiên bản này, các máy khách từ xa phải chỉ định tên máy chủ hoặc địa chỉ IP được liên kết của nó

    rs.add( { host: "mongodbd4.example.net:27017" } )
    
    4

    sao chép

    mongo --host My-Example-Associated-Hostname
    
    mongo --host 198.51.100.1
    

    Mẹo

    Khi có thể, hãy sử dụng tên máy chủ DNS hợp lý thay vì địa chỉ IP, đặc biệt khi định cấu hình thành viên bộ bản sao hoặc thành viên cụm phân đoạn. Việc sử dụng tên máy chủ DNS hợp lý tránh thay đổi cấu hình do thay đổi địa chỉ IP

    Cư xử

    trong một số trường hợp, có thể kích hoạt một cuộc bầu cử chính sẽ ngắt kết nối trình bao (chẳng hạn như thêm một thành viên mới có mức độ ưu tiên cao hơn thành viên chính hiện tại). Trong những trường hợp như vậy, trình bao có thể hiển thị lỗi ngay cả khi thao tác thành công

    Mẹo

    Khi một phụ mới được thêm có cài đặt và lớn hơn 0, trong quá trình đồng bộ hóa ban đầu, phụ vẫn được tính là thành viên biểu quyết mặc dù không thể phục vụ lượt đọc cũng như không thể trở thành chính vì dữ liệu của phụ không nhất quán

    Điều này có thể dẫn đến trường hợp đa số thành viên bỏ phiếu trực tuyến nhưng không thể bầu sơ bộ. Để tránh những tình huống như vậy, ban đầu hãy xem xét thêm phụ mới với và. Sau đó, khi thành viên đã chuyển sang trạng thái, hãy sử dụng để cập nhật mức độ ưu tiên và phiếu bầu của họ

    Thí dụ

    Thêm một phụ vào một bộ bản sao mới

    Để thêm một thành viên phụ mới với cài đặt ưu tiên và bỏ phiếu mặc định vào một bộ bản sao mới, bạn có thể gọi phương thức này bằng

    • Tài liệu cấu hình thành viên

      sao chép

      rs.add( { host: "mongodbd4.example.net:27017" } )
      

    • Tên máy chủ

      sao chép

      rs.add( "mongodbd4.example.net:27017" )
      

    Thêm bản sao phụ vào bộ bản sao hiện có

    Mẹo

    Khi một phụ mới được thêm có cài đặt và lớn hơn 0, trong quá trình đồng bộ hóa ban đầu, phụ vẫn được tính là thành viên biểu quyết mặc dù không thể phục vụ lượt đọc cũng như không thể trở thành chính vì dữ liệu của phụ không nhất quán

    Điều này có thể dẫn đến trường hợp đa số thành viên bỏ phiếu trực tuyến nhưng không thể bầu sơ bộ. Để tránh những tình huống như vậy, ban đầu hãy xem xét thêm phụ mới với và. Sau đó, khi thành viên đã chuyển sang trạng thái, hãy sử dụng để cập nhật mức độ ưu tiên và phiếu bầu của họ

    Để thêm thành viên phụ mới với cài đặt ưu tiên và bỏ phiếu mặc định vào bộ bản sao hiện có

    1. Thêm thành viên ban đầu dưới dạng thành viên , ưu tiên 0 .

      sao chép

      rs.add( { host: "mongodbd4.example.net:27017", priority: 0, votes: 0 } )
      

    2. Đảm bảo rằng thành viên mới đã đạt đến trạng thái. Để kiểm tra trạng thái của các thành viên bộ bản sao, hãy chạy

      sao chép

      rs.status()
      

    3. Cấu hình lại bộ bản sao để cập nhật phiếu bầu và ưu tiên của thành viên mới

      sao chép

      var cfg = rs.conf();
      
      cfg.members[n].priority = 1;  // Substitute the correct array index for the new member
      cfg.members[n].votes = 1;     // Substitute the correct array index for the new member
      
      rs.reconfig(cfg)
      

      trong đó

      rs.add( { host: "mongodbd4.example.net:27017", priority: 0, votes: 0 } )
      
      3 là chỉ số mảng của thành viên mới trong mảng

    Cảnh báo

    • Phương thức shell có thể buộc bước chính hiện tại giảm xuống, điều này gây ra lỗi. Khi bước chính xuống, đóng tất cả các kết nối máy khách. Mặc dù quá trình này thường mất 10-20 giây, nhưng hãy thử thực hiện những thay đổi này trong thời gian bảo trì theo lịch trình
    • Tránh cấu hình lại các bộ bản sao chứa các thành viên của các phiên bản MongoDB khác nhau vì các quy tắc xác thực có thể khác nhau giữa các phiên bản MongoDB

    Thêm Thành viên Ưu tiên 0 vào Bộ Bản sao

    Thao tác sau đây thêm một phiên bản, chạy trên máy chủ

    rs.add( { host: "mongodbd4.example.net:27017", priority: 0, votes: 0 } )
    
    8 và có thể truy cập trên cổng mặc định
    rs.add( { host: "mongodbd4.example.net:27017", priority: 0, votes: 0 } )
    
    9, dưới dạng ưu tiên 0 thành viên phụ.

    sao chép

    rs.add( { host: "mongodbd4.example.net:27017", priority: 0 } )
    

    Bạn phải chỉ định trường trong tài liệu cấu hình thành viên

    Xem cài đặt cấu hình thành viên bộ bản sao có sẵn

    Thêm Trọng tài viên vào Bộ bản sao

    Thao tác sau đây thêm một phiên bản, chạy trên máy chủ

    rs.status()
    
    3 và có thể truy cập trên cổng mặc định
    rs.add( { host: "mongodbd4.example.net:27017", priority: 0, votes: 0 } )
    
    9 với tư cách là người phân xử

    • Tài liệu cấu hình thành viên

      sao chép

      rs.add( { host: "mongodb3.example.net:27017", arbiterOnly: true } )
      

    • Tên máy chủ

      sao chép

      mongod --bind_ip localhost,My-Example-Associated-Hostname
      
      0

    Đối với các phiên bản MongoDB sau,

    rs.status()
    
    5 tăng khả năng khôi phục so với
    rs.status()
    
    7 (không còn được hỗ trợ trong MongoDB 4. 0+) cho các bộ bản sao có trọng tài

    • MongoDB 3. 4. 1
    • MongoDB 3. 4. 0
    • MongoDB 3. 2. 11 hoặc sớm hơn

    Xem Phiên bản giao thức bộ bản sao .

    Xem thêm

    • Thêm thành viên vào một bộ bản sao
    • Thêm Người phân xử vào Bộ bản sao
    • Thay thế một thành viên bộ bản sao
    • Xóa thành viên khỏi Bộ bản sao

    ←   Phương pháp sao chép rs. addArb()  →

    © MongoDB, Inc 2008-nay. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc

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

    Đối với mỗi thành viên, hãy bắt đầu phiên bản mongod với các cài đặt sau. .
    Đặt bản sao. tùy chọn replSetName thành tên bộ bản sao. .
    đặt lưới. tùy chọn bindIp cho tên máy chủ/ip hoặc danh sách tên máy chủ/ip được phân tách bằng dấu phẩy
    Đặt bất kỳ cài đặt nào khác phù hợp với việc triển khai của bạn

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

    Cài đặt nào có thể được kiểm soát bởi RS reconfig()?

    Thay đổi kích thước của Oplog
    Thực hiện bảo trì trên các thành viên của bộ bản sao
    Buộc một thành viên trở thành chính
    Đồng bộ lại một thành viên của bộ bản sao
    Định cấu hình Bộ thẻ Bộ bản sao
    Định cấu hình lại Bộ bản sao với các thành viên không khả dụng
    Quản lý bản sao chuỗi
    Thay đổi tên máy chủ trong bộ bản sao

    Sự khác biệt giữa bộ bản sao và sharding trong MongoDB là gì?

    Sự khác biệt giữa sao chép và sharding là gì? . Nút máy chủ chính sao chép dữ liệu vào các nút máy chủ phụ. Điều này có thể giúp tăng tính khả dụng của dữ liệu và hoạt động như một bản sao lưu, trong trường hợp nếu máy chủ chính bị lỗi. sharding. Xử lý chia tỷ lệ ngang trên các máy chủ bằng khóa phân đoạn