Couchbase 集群搭建

Couchbase 是一款开源的、分布式的、面向文档的NoSQL数据库,主要用于分布式缓存和数据存储领域,它是Apache CouchDB和MemBase这两个NoSQL数据库的合并的产物,而MemBase是基于Memcached的。因此CouchBase联合了CouchDB的简单可靠和Memcached的高性能,以及membase的可扩展性。

集群配置过程

安装 couchbase 7.2.4

  • 所有节点:安装 couchbase-server-community 7.2.4
#.下载并安装
cd /d d:\
wget -c http://iso.sqlfans.cn/couchbase/wins/couchbase-server-community_7.2.4-windows_amd64.msi
start /wait couchbase-server-community_7.2.4-windows_amd64.msi /quiet

#.设置防火墙,示例内网为 10.30.0.0/255.255.0.0
netsh advfirewall firewall add rule name="permit_couchbase_unencrypt_8091" protocol=TCP dir=in remoteip=10.30.0.0/255.255.0.0 localport=4369,6060,8091-8094,9100-9105,9998-9999,11209-11215,18091-18093,21100-21299 action=allow
  • 附:linux安装方式可参考如下:
cd /opt/
wget -c http://iso.sqlfans.cn/couchbase/couchbase-server-community-7.2.4-linux.x86_64.rpm
rpm -ivh couchbase-server-community-7.2.4-linux.x86_64.rpm
systemctl start couchbase-server
systemctl status couchbase-server
netstat -lnpt | grep 8091

创建一个集群

  • 第1步,在主节点上(示例10.30.3.144)用 chrome浏览器 打开 http://10.30.3.144:8091/ui/index.html,点击 Setup New Cluster

  • 第2步,配置集群信息,示例集群名为 sqlfans 管理员账号为 Administrator 密码为 Admin_147

  • 第3步,勾选 我接受,然后点击 Configure Disk, Memory, Services

  • 第4步,配置当前节点的ip地址(示例10.30.3.144)、内存、数据目录(示例d:/couchbase/data),并完成安装

注:初始化完成之后,如果配置了 Memcached 类型的存储桶(不能更改内存大小),那这里的内存只能调大、不能调小,所以这里务必合理配置!

将新节点加入老集群

  • 第5步,用 chrome 浏览器打开集群节点的控制台,示例 http://10.30.3.144:8091/ui/index.html,在 Servers 标签页点击 ADD SERVER 按钮,输入新节点的ip地址(示例10.30.3.145),将其加入该集群

  • 第6步,添加新节点之后,再点击右上角的 Rebalance 按钮完成新节点的数据同步

创建bucket及user

  • 第7步,用 chrome 浏览器打开集群节点的控制台,示例 http://10.30.3.144:8091/ui/index.html,在 Bucket 标签页点击 ADD BUCKET 按钮,输入新bucket的名称(示例web_prd)并分配内存(示例2048MB)

注:务必考虑新业务的可能性,建议不要把所有内存全部分配给单个bucket,不建议使用 Memcached 类型的存储桶(不能更改内存大小)

  • 第8步,创建bucket之后,在 Security 标签页点击 ADD USER 按钮,输入新user的名称(示例user_prd)及密码,并勾选对指定bucket(示例web_prd)的权限

遇到的问题

场景1:集群添加新节点报错

  • 报错1:集群添加新节点之后,执行 Rebalance 之后报错 CPU with SSE4.2 extensions is required,启用新节点的 SSE 4.2 指令集(pve请修改cpu的Type为host)即可
Service 'memcached' exited with status 1. Restarting. Messages:
2024-07-10T10:10:16.610950+08:00 CRITICAL Failed to initialise - CPU with SSE4.2 extensions is required - terminating.
  • 报错2:集群新节点启用SSE 4.2指令集并重启之后,报错 invalid UTF-8 byte at index 38: 0xDA,将 couchbase 版本由 7.6.0 更换为 7.2.4
Service 'memcached' exited with status 255. Restarting. Messages:
2024-07-10T10:16:11.272519+08:00 CRITICAL Failed to create required listening socket:
"{"family":"inet","host":"*","port":11210,"system":false,"tag":"","tls":false,"type":"mcbp"}". 
Errors: [json.exception.type_error.316] invalid UTF-8 byte at index 38: 0xDA. Terminating.

场景2:找回web登录密码

  • 针对 Couchbase 4.6.2 版本,不知道密码的情况下重置web登录密码(-p和--new-password使用新密码),示例 新密码为 Admin_258
couchbase-cli reset-admin-password -c 192.168.64.130:8091 -u Administrator -p Admin_258 --new-password Admin_258
  • 针对 Couchbase 4.6.2 版本,已知密码的情况下重置web登录密码(-p使用老密码,--new-password使用新密码),示例 新密码为 Admin_147
couchbase-cli reset-admin-password -c localhost:8091 -u Administrator -p Admin_258 --new-password Admin_147
  • 针对 Couchbase 7.2.4 版本,重置web登录密码则更简单,示例 新密码为 Admin_147
couchbase-cli reset-admin-password --new-password Admin_147

场景3:以特定账号启动couchbase服务

  • 以特定账号启动couchbase服务,示例账号 couchbase 密码 AdMin_147
net user couchbase AdMin_147 /add /Y /expires:never
net localgroup administrators couchbase /add

takeown /f "%ProgramFiles%\Couchbase" /a /r
icacls "%ProgramFiles%\Couchbase" /t /grant:r couchbase:f

#.自动脚本会启动失败,手动修改服务的启动账号就好了
net stop CouchbaseServer
sc config CouchbaseServer obj= ".\couchbase" password= "AdmMin_147"
net start CouchbaseServer
sc config CouchbaseServer start= auto

场景4:无法调低内存配额

  • 现状:由于生产服务器内存告警,发现是由于 CouchBase 占用内存过高,希望将内存从 19633 MB 调低到 10240 MB
  • 报错1:打开控制台发现,Setting - Cluster RAM Quota 只能调大,不能调小

  • 报错2:同时 Data Buckets - Memcached Buckets 也只能调大,不能调小

  • 原因1:若所有内存全都分配给了存储桶则无法调小 Cluster RAM Quota
  • 原因2:couchbase类型的存储桶,最大内存可以调大,也可以调小;但是 memcached 类型的存储桶,Memory Size 不能调大,也不能调小,只能初始化的时候指定
  • 解决方案:由于此环境所有内存(19633 MB)全都分配给了单个存储桶(SSP),且该桶为 Memcached 类型,所以无法调整内存大小。由于Memcached类型的存储桶不支持持久化和备份,只能搭建新环境,直接修改字符串指向新的ip,老的Couchbase数据只能舍弃。
Copyright © www.sqlfans.cn 2021 - 2026 All Right Reserved更新时间: 2026-09-08 15:00:44

results matching ""

    No results matching ""