原文位址: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
===
大膽的假設,小心的求證;認真的做事,嚴肅的做人。 —— 胡适