更改keyspace複製策略
keyspace是使用策略創建的。對於開發工作, SimpleStrategy策略是可以接受的。對於生產工作, NetworkTopologyStrategy必須設置策略。要改變策略,需要兩個步驟。數據存在時,更改多個數據中心內節點的分佈應該通過添加數據中心,然後將數據添加到新數據中心中的新節點並從舊數據中心中刪除節點來完成。
步驟
2.使用該ALTER KEYSPACE 命令更改keyspace屬性。例如,單個數據中心DC1設置keyspace的snitch從SimpleStrategy切換到 NetworkTopologyStrategy。
cqlsh> ALTER KEYSPACE keyspacename WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'DC1' : 3};
3.使用該ALTER KEYSPACE 命令更改keyspace屬性。例如,設置keyspace的snitch從SimpleStrategy切換到 NetworkTopologyStrategy。更改keyspace的屬性添加新的數據中心涉及其他步驟。簡單地修改密鑰空間可能會導致錯誤的數據複製。請參閱切換snichches以獲取更多信息。
cqlsh> ALTER KEYSPACE cycling WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'DC1' : 3, 'DC2' : 2 };
4.在受影響的每個節點上運行nodetool repair 或 nodetool repair -full。
5.可以限制keyspace複製到選定的數據中心或單個數據中心。爲此,請使用NetworkTopologyStrategy並將排除的數據中心的複製因子設置爲 0(零),如下例所示:
cqlsh> ALTER KEYSPACE cycling WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'DC1' : 0, 'DC2' : 3, 'DC3' : 0 };
注意:數據中心名稱區分大小寫。驗證使用實用程序的情況,例如dsetool status。