4.3. 数据库管理

4.3.1. 创建数据库

这将创建一个数据库 3 复制品和 8 碎片。

curl -X PUT "http://xxx.xxx.xxx.xxx:5984/database-name?n=3&q=8" --user admin-user

数据库在 data/shards . 环顾所有的节点,你会发现所有的部分。

如果您不指定 nq 将使用默认值。默认值是 3 复制品和 8 碎片。

4.3.2. 删除数据库

curl -X DELETE "http://xxx.xxx.xxx.xxx:5984/database-name --user admin-user

4.3.3. 在特定节点上放置数据库

在couchdb2.0集群功能的前身bigcuch中,有分区的概念。couchdb2.0通过集群放置规则实现了这一点。

警告

使用 placement 辩论会 覆盖 碎片副本基数的标准逻辑(由指定 [cluster] n

首先,每个节点都必须使用zone属性进行标记。这将定义每个节点所在的区域。您可以通过在系统中编辑节点的文档来完成此操作 _nodes 数据库,通过 GET /_node/_local/_nodes/{{node-name}} 端点。

添加窗体的键值对:

"zone": "metro-dc-a"

对集群中的所有节点执行此操作。

在配置文件中 (local.inidefault.ini )在每个节点上,定义一致的群集范围设置,如:

[cluster]
placement = metro-dc-a:2,metro-dc-b:1

在本例中,它将确保一个shard的两个副本将托管在zone属性设置为的节点上 metro-dc-a 并且一个复制副本将托管在一个新的分区属性设置为 metro-dc-b .

请注意,您还可以使用此系统来确保群集中的某些节点不承载主机 any 为新创建的数据库提供一个区域属性,该属性不会出现在 [cluster] 放置字符串。