Управление базами данных
Создание базы данных
Будет создана база данных с 3 репликами и 8 шардами.
curl -X PUT "http://xxx.xxx.xxx.xxx:5984/database-name?n=3&q=8" --user admin-user
База данных находится в data/shards. Осмотрите все узлы — вы найдете все части.
Если не указать n и q, будут использованы значения по умолчанию: 3 реплик и 8 шардов.
Удаление базы данных
curl -X DELETE "http://xxx.xxx.xxx.xxx:5984/database-name --user admin-user
Размещение базы данных на определенных узлах
В BigCouch, предшественнике функции кластеризации CouchDB 2.0, использовалось понятие зон. В CouchDB 2.0 эта концепция получила развитие в виде правил размещения в кластере.
Предупреждение
Использование аргумента placement переопределит стандартную логику определения количества реплик шарда (задается параметром [cluster] n.)
Сначала каждому узлу необходимо назначить атрибут зоны. Он определяет, к какой зоне относится каждый узел. Для этого отредактируйте документ узла в системной базе данных _nodes, доступ к которой с самого узла осуществляется через конечную точку GET /_node/_local/_nodes/{node-name}.
Добавьте пару «ключ-значение» следующего вида:
"zone": "metro-dc-a"
Также можно задать переменную окружения COUCHDB_ZONE на каждом узле, и CouchDB настроит этот документ при запуске.
Сделайте это для всех узлов кластера.
В файле конфигурации (local.ini или default.ini) на каждом узле задайте согласованную для всего кластера настройку, например:
[cluster] placement = metro-dc-a:2,metro-dc-b:1
В этом примере две реплики шарда будут размещены на узлах с атрибутом зоны metro-dc-a, а одна реплика — на узле с атрибутом зоны metro-dc-b.
Обратите внимание: эту систему также можно использовать, чтобы запретить размещение любых реплик вновь созданных баз данных на определенных узлах кластера. Для этого назначьте им атрибут зоны, который не указан в строке размещения [cluster].
Copyright © 2025 The Apache Software Foundation — Licensed under the Apache License 2.0
https://docs.couchdb.org/en/3.5.1/cluster/databases.html