Rate this post

Sharding là một phương pháp để phân phối dữ liệu trên các máy khác nhau. Sharding có thể được sử dụng bởi MongoDB để hỗ trợ triển khai trên các tập dữ liệu quy mô rất lớn và các hoạt động thông lượng cao.

Các bài viết liên quan:

Lệnh MongoDB sh.addShard (<url>)

Một tập hợp bản sao phân đoạn được thêm vào một cụm phân đoạn bằng lệnh này. Nếu chúng ta thêm nó vào giữa các phân đoạn của cụm, nó sẽ ảnh hưởng đến sự cân bằng của các khối. Nó bắt đầu chuyển các khối để cân bằng cụm.

<replica_set>/<hostname><:port>,<hostname><:port>, …

Cú pháp:

sh.addShard("<replica_set>/<hostname><:port>")  

Ví dụ:

sh.addShard ("repl0 / mongodb3.example.net: 27327")

Nó sẽ thêm một phân đoạn để chỉ định tên của tập hợp bản sao và tên máy chủ của ít nhất một thành viên của tập hợp bản sao.

Lệnh MongoDB sh.addShardTag ()

Lệnh này được hỗ trợ bằng thẻ hoặc mã định danh trong một phân đoạn. MongoDB sử dụng các số nhận dạng này để gửi chuỗi nằm trong phạm vi được gắn thẻ đến các phân đoạn được chỉ định.

Ví dụ:

sh.addShardTag("shard0000", "NYC")  
sh.addShardTag("shard0001", "LAX")  
sh.addShardTag("shard0002", "NRT")  

Nó sẽ thêm ba thẻ vào ba phân đoạn khác nhau.

MongoDB sh.addShardToZone(shard, zone)

Lệnh này thêm phân đoạn được chỉ định vào vùng được chỉ định. Lệnh này được giới thiệu trong phiên bản 3.4. Chỉ những phần đó mới được gán cho những phần được bao phủ bởi vùng.

Ví dụ:

sh.addShardToZone("shard0000", "JFK")  
sh.addShardToZone("shard0001", "LAX")  
sh.addShardToZone("shard0002", "NRT")  

// liên kết LGA với shard0000:

sh.addShardToZone("shard0000", "LGA")  

// shard0000 liên kết với cả vùng LGA và vùng JFK.

Lệnh MongoDB sh.addTagRange(namespace, min, max, tag)

Một dải giá trị khóa phân đoạn sẽ được gắn vào thẻ phân đoạn bằng lệnh này. Phạm vi vùng luôn loại trừ giới hạn trên và bao gồm giới hạn dưới.

Ví dụ:

Chúng tôi có khóa phân đoạn là {state: 1, zip: 1},

Ví dụ dưới đây tạo một phạm vi thẻ cụ thể bao gồm các mã zip ở tiểu bang California:

sh.addTagRange( "statedb.collection",  
                { state: "CA", zip: MinKey },  
                { state: "CA", zip: MaxKey },  
                "NY"  
              )  

Lệnh MongoDB sh.disableBalancing (name_space)

Bộ cân bằng cho phân đoạn được chỉ định trong đối số sẽ bị vô hiệu hóa bằng lệnh này. Nó không có bất kỳ ảnh hưởng nào đến việc cân bằng các khối nhưng đối với bộ sưu tập được phân đoạn khác trong cùng một cụm.

Lệnh MongoDB sh.enableBalancing (không gian tên)

Lệnh bật bộ cân bằng cho phân đoạn được chỉ định trong đối số. Nó không có bất kỳ ảnh hưởng nào đến việc cân bằng các khối nhưng đối với bộ sưu tập được phân đoạn khác trong cùng một cụm.

Lệnh MongoDB sh.disableAutoSplit

Lệnh này loại bỏ cờ autosplit trong bộ sưu tập cài đặt cấu hình. Khi nhóm phân đoạn được bật tùy chọn tự động tách, nó sẽ tự động chia thành nhiều phần bằng MongoDB dựa trên các giá trị khóa phân đoạn.

sh.disableAutoSplit () chỉ có thể được thực thi từ một trình bao mongo được kết nối với cá thể mongos được chỉ định. Lệnh sh.disableAutoSplit () trả về lỗi nếu chạy trên một phiên bản mongod

Lệnh MongoDB updateZoneKeyRange

Mối quan hệ giữa một loạt các giá trị khóa phân đoạn và một vùng sẽ được tạo hoặc xóa với sự trợ giúp của lệnh này. Sử dụng phương thức db.runCommand ({<command>}) để chạy updateZoneKeyRange. Bạn phải chạy addShardToZone trên cơ sở dữ liệu quản trị.

Cú pháp:

{  
  updateZoneKeyRange: <string>,  
  min: <document>,  
  max: <document>,  
  zone: <string> | <null>  
}  

Ví dụ:

Ví dụ sau tạo một phạm vi có giới hạn dưới là 1 và giới hạn trên là 10 trên vùng alpha:

admin = db.getSiblingDB("admin")  
admin.runCommand(  
   {  
      updateZoneKeyRange : "exampledb.collection",  
      min : { a : 1 },  
      max : { a : 10 },  
      zone : "alpha"  
   }  
)  

Truy vấn sau đây loại bỏ phạm vi đã tạo trước đó bằng cách chuyển null cho trường vùng.

admin = db.getSiblingDB("admin")  
admin.runCommand(  
   {  
      updateZoneKeyRange : "exampledb.collection",  
      min : { a : 1 },  
      max : { a : 10 },  
      zone : null  
   }  
)  

Bây giờ hãy kiểm tra trạng thái của phân đoạn của bạn:

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now