Mongodb資料分區的維護

來源:互聯網
上載者:User

轉載自 http://www.cnblogs.com/spnt/

Mongodb的Sharding維護也是就那幾個命令,相對來說都很簡單,結合執行個體做下示範。

1,列出所有的Shard Server

注意一點是:需要串連到路由的admin下。listshards的參數1是一個固定的預設值,沒有特殊的意義。

2,查看Sharding的資訊

切換到Friends資料庫,使用printShardingStatus(),可以看到當前Sharding的資訊。

3,對現有的表執行Sharding。

  上面我們對FriendUserAttach表執行了分區,下面我們在對另外一個表FriendUser進行分區。

   首先我們查看下FriendUser的狀態

    第一行 sharded=false,說明該表未被分區。然後我們串連到路由器的admin上執行分區命令

對資料庫Friends的表FriendUser做了分區,片鍵是_id,我們運行命令查看下狀態

看以看到已經成功分區。

4,新增Shard Server

新增Shard Server的用處就不在說了,這是大資料下肯定會用到的命令。下面說步驟

  首先我們在啟動一個新的Mongodb ,連接埠號碼定為2002。

 把這個新的進程添加到咱們已經做好的“串”中,注意:這點是要串連到路由的admin中

然後我們看下當前的分區情況

可以看到多了一個shard0002的分區。

5,移除分區

移除分區不是立刻實現的,他需要一個把分區上的資料轉移到其他分區的過程,當轉移完成後該分區才會被正式踢下線。這時候也需要多次調用命令,查看移除操作執行到了那裡。

移除命令是:db.runCommand({"removeshard":"ip+連接埠"}),注意是這裡需要用admin資料庫來執行操作

這裡看以清晰的看到狀態:

  started:移除的動作剛剛開始

  ongoing:移除進行中

completed:完成

到最後一個提示"can't find shard" 說明已經是被踢下線了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.