天天看點

Cassandra 更新 叢集的複制因子

原文位址:http://openwares.net/database/alter_keyspace_replication_factor.html

keyspace建立以後,仍然可以更改其複制因子,也就是keyspace中資料的複制份數是可以動态修改的。

cassandra叢集的系統keyspace system_auth預設的replication factor是1,也就是其實是沒有備援的。如果這唯一的節點挂掉,就無法再登入到叢集了。

是以官方文檔推薦将其複制因子設定為每個資料中心的每一個節點。也就是将其複制到叢集中的每一個節點上。

檢視system_auth的複制因子

cqlsh> DESC KEYSPACE system_auth

CREATE KEYSPACE system_auth WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

...

果然replication factor隻有1,修改之:

cqlsh> ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1':2,'dc2':2};

durable_writes參數用于設定寫資料時是否寫入commit log,如果設定為false,則寫請求不會寫commit log,會有丢失資料的風險。

此參數預設為true,即要寫commit log,生産系統應該将該參數設定為true。

References:

[1]CREATE KEYSPACE

===

大膽的假設,小心的求證;認真的做事,嚴肅的做人。 —— 胡适