在 Debian 12 中安装和配置 Couchbase
本文将介绍如何在 Debian 12 系统中安装和配置 Couchbase 服务器,以及如何使用基本的命令和界面来管理和操作 Couchbase 数据库。
Couchbase 是一种分布式的 NoSQL 数据库,它提供了高性能、高可用性和高扩展性的特点。Couchbase 可以存储和查询 JSON 文档,支持多种编程语言的客户端 SDK,以及 SQL 风格的查询语言 N1QL。Couchbase 还提供了全文搜索、分析、事件流处理等功能,使得它可以应用于各种场景,如移动应用、物联网、大数据、实时分析等。
本文将介绍如何在 Debian 12 系统中安装和配置 Couchbase 服务器,以及如何使用基本的命令和界面来管理和操作 Couchbase 数据库。
先决条件
在开始安装和配置 Couchbase 之前,您需要准备以下内容:
- 一台运行 Debian 12 的服务器,具有至少 4 GB 的内存和 20 GB 的磁盘空间。
- 一个具有 sudo 权限的用户账户,用于执行安装和配置的命令。
- 一个可用的网络连接,用于下载 Couchbase 的安装包和访问 Couchbase 的 Web 界面。
下载 Couchbase 的安装包
首先,您需要从 Couchbase 的官方网站下载适用于 Debian 12 的安装包。您可以使用 wget
命令来下载,也可以在浏览器中手动下载。以下是使用 wget
命令的示例:
wget https://packages.couchbase.com/releases/7.2.2/couchbase-server-community_7.2.2-linux_amd64.deb
请注意,本文使用的是 Couchbase 7.0.2 的社区版,您可以根据您的需要选择不同的版本和类型。您可以在 这里 查看 Couchbase 的所有可用版本和类型。
安装 Couchbase 的安装包
下载完成后,您可以使用 dpkg
命令来安装 Couchbase 的安装包。以下是使用 dpkg
命令的示例:
sudo dpkg -i couchbase-server-community_7.0.2-debian12_amd64.deb
安装过程可能需要几分钟,期间您可能会看到一些提示信息,您可以按照提示进行选择或确认。安装完成后,您可以使用 systemctl
命令来检查 Couchbase 服务器的状态。以下是使用 systemctl
命令的示例:
sudo systemctl status couchbase-server
如果您看到类似以下的输出,说明 Couchbase 服务器已经成功安装并运行:
● couchbase-server.service - Couchbase Server
Loaded: loaded (/lib/systemd/system/couchbase-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-01-25 10:05:06 CST; 2min 13s ago
Docs: https://docs.couchbase.com
Main PID: 1234 (beam.smp)
Tasks: 123 (limit: 4915)
Memory: 1.2G
CGroup: /system.slice/couchbase-server.service
├─1234 /opt/couchbase/lib/erlang/erts-11.1.8/bin/beam.smp -A 16 -sbt u ...
├─2345 /opt/couchbase/lib/erlang/erts-11.1.8/bin/epmd -daemon
├─3456 sh -s disksup
├─4567 /opt/couchbase/lib/erlang/lib/os_mon-2.6.1/priv/bin/memsup
└─5678 /opt/couchbase/lib/erlang/lib/os_mon-2.6.1/priv/bin/cpu_sup
Jan 25 10:05:06 debian12 systemd[1]: Starting Couchbase Server...
Jan 25 10:05:06 debian12 couchbase-server[1234]: Starting Couchbase Server -- Web UI available at http://<ip>:8091
Jan 25 10:05:06 debian12 systemd[1]: Started Couchbase Server.
配置 Couchbase 的初始设置
安装完成后,您需要通过 Couchbase 的 Web 界面来进行一些初始的设置,如创建集群、设置密码、选择服务等。您可以在浏览器中输入 http://<ip>:8091
来访问 Couchbase 的 Web 界面,其中 <ip>
是您的服务器的 IP 地址。
在 Web 界面中,您可以按照以下步骤进行设置:
- 点击 “Setup New Cluster” 按钮,开始创建一个新的集群。
- 在 “Cluster Name” 栏中,输入您想要给集群起的名字,如 “my-cluster”。
- 在 “Administrator Username” 和 “Administrator Password” 栏中,输入您想要设置的管理员用户名和密码,如 “admin” 和 “password”。请注意,这些信息将用于登录 Couchbase 的 Web 界面和命令行工具,因此请妥善保管。
- 在 “Services” 栏中,选择您想要在本节点上运行的 Couchbase 服务,如 “Data”、“Index”、“Query”、“Search”、“Analytics” 和 “Eventing”。您可以根据您的需求和资源情况进行选择,也可以选择所有的服务。请注意,不同的服务会占用不同的内存和磁盘空间,您可以在界面中看到每个服务的建议配置。
- 点击 “Next” 按钮,进入下一步。
- 在 “Disk and Memory” 栏中,您可以调整每个服务的磁盘和内存的分配,也可以使用默认的设置。请注意,您需要为每个服务保留足够的磁盘和内存空间,否则可能会影响 Couchbase 的性能和稳定性。
- 点击 “Next” 按钮,进入下一步。
- 在 “Security” 栏中,您可以启用或禁用一些安全相关的选项,如 “Enable Encryption Level”、“Enable SameSite Cookie Attribute”、“Enable Hostname Verification” 等。您可以根据您的安全需求进行选择,也可以使用默认的设置。
- 点击 “Next” 按钮,进入下一步。
- 在 “Notifications” 栏中,您可以选择是否接收 Couchbase 的通知和更新,以及是否加入 Couchbase 的统计数据收集计划。您可以根据您的喜好进行选择,也可以使用默认的设置。
- 点击 “Finish with Defaults” 按钮,完成初始设置。
完成初始设置后, 在仪表盘界面中,您可以看到您的集群的基本信息,如节点数、服务状态、内存使用、磁盘使用、操作数、查询数等。您还可以在左侧的菜单栏中选择不同的选项,来进行更多的管理和操作,如创建和管理桶(bucket)、创建和执行 N1QL 查询、创建和管理索引、创建和管理全文搜索、创建和管理分析、创建和管理事件流处理等。
使用 Couchbase 的命令行工具
除了使用 Couchbase 的 Web 界面,您还可以使用 Couchbase 的命令行工具来管理和操作 Couchbase 数据库。Couchbase 提供了多个命令行工具,如 couchbase-cli
、cbq
、cbbackupmgr
等。您可以在 /opt/couchbase/bin
目录下找到这些工具,也可以将该目录添加到您的 PATH
环境变量中,以便直接使用。
以下是一些常用的命令行工具的简介和示例:
-
couchbase-cli
:这是一个用于管理 Couchbase 集群的通用工具,它提供了多个子命令,如cluster-init
、bucket-create
、server-add
、server-remove
、rebalance
等。您可以使用-h
选项来查看每个子命令的帮助信息。以下是使用couchbase-cli
的一些示例:-
初始化一个集群,设置用户名、密码、服务和内存配额:
couchbase-cli cluster-init -c <ip> --cluster-username admin --cluster-password password --services data,index,query,search,analytics,eventing --cluster-ramsize 2048 --cluster-index-ramsize 1024 --cluster-fts-ramsize 512 --cluster-analytics-ramsize 1024 --cluster-eventing-ramsize 256
-
创建一个名为
my-bucket
的桶,设置类型、大小、复制因子和冲突解决策略:couchbase-cli bucket-create -c <ip> -u admin -p password --bucket my-bucket --bucket-type couchbase --bucket-ramsize 512 --bucket-replica 1 --bucket-eviction-policy fullEviction --conflict-resolution seqno
-
添加一个新的节点到集群中,设置服务和主机名:
couchbase-cli server-add -c <ip> -u admin -p password --server-add <new-ip> --server-add-username admin --server-add-password password --services data,index,query,search,analytics,eventing --server-add-name new-node
-
从集群中移除一个节点,指定要移除的节点的主机名:
couchbase-cli server-remove -c <ip> -u admin -p password --server-remove new-node
-
对集群进行重新平衡,分配桶和服务到各个节点:
couchbase-cli rebalance -c <ip> -u admin -p password
-
-
cbq
:这是一个用于执行 N1QL 查询的工具,它提供了一个交互式的 shell,您可以在其中输入 N1QL 语句,也可以使用一些元命令,如\q
、\set
、\help
等。您可以使用-h
选项来查看帮助信息。以下是使用cbq
的一些示例:-
启动
cbq
并连接到 Couchbase 服务器:cbq -u admin -p password -e http://<ip>:8091
-
在
cbq
中创建一个名为my-scope
的作用域,用于存放不同的集合:CREATE SCOPE `my-bucket`.`my-scope`;
-
在
cbq
中创建一个名为my-collection
的集合,用于存放 JSON 文档:CREATE COLLECTION `my-bucket`.`my-scope`.`my-collection`;
-
在
cbq
中插入一些 JSON 文档到集合中,使用UUID()
函数来生成唯一的文档 ID:INSERT INTO `my-bucket`.`my-scope`.`my-collection` (KEY, VALUE) VALUES (UUID(), {"name": "Alice", "age": 25, "gender": "female"}); INSERT INTO `my-bucket`.`my-scope`.`my-collection` (KEY, VALUE) VALUES (UUID(), {"name": "Bob", "age": 30, "gender": "male"}); INSERT INTO `my-bucket`.`my-scope`.`my-collection` (KEY, VALUE) VALUES (UUID(), {"name": "Charlie", "age": 35, "gender": "male"});
-
在
cbq
中查询集合中的文档,使用SELECT
语句和WHERE
子句:SELECT * FROM `my-bucket`.`my-scope`.`my-collection` WHERE gender = "male";
-
在
cbq
中更新集合中的文档,使用UPDATE
语句和SET
子句:UPDATE `my-bucket`.`my-scope`.`my-collection` SET age = age + 1 WHERE name = "Alice";
-
在
cbq
中删除集合中的文档,使用DELETE
语句和WHERE
子句:DELETE FROM `my-bucket`.`my-scope`.`my-collection` WHERE name = "Charlie";
-
在
cbq
中退出 shell,使用\q
元命令:\q
-
-
cbbackupmgr
:这是一个用于备份和恢复 Couchbase 数据的工具,它提供了多个子命令,如config
、backup
、restore
、list
、remove
等。您可以使用-h
选项来查看每个子命令的帮助信息,也可以参考 这里 的文档。以下是使用cbbackupmgr
的一些示例:-
创建一个备份存储库,指定存储库的路径和集群的版本:
cbbackupmgr config --archive /path/to/archive --repo my-repo --version 7.0.2
-
备份集群中的数据,指定存储库的路径和集群的地址、用户名和密码:
cbbackupmgr backup --archive /path/to/archive --repo my-repo --cluster http://<ip>:8091 --username admin --password password
-
恢复集群中的数据,指定存储库的路径和集群的地址、用户名和密码:
cbbackupmgr restore --archive /path/to/archive --repo my-repo --cluster http://<ip>:8091 --username admin --password password
-
列出存储库中的备份信息,指定存储库的路径:
cbbackupmgr list --archive /path/to/archive
-
删除存储库中的备份数据,指定存储库的路径和要删除的备份的 ID:
cbbackupmgr remove --archive /path/to/archive --repo my-repo --backup 2024-01-25T10:45:06Z
-
结论
本文介绍了如何在 Debian 12 系统中安装和配置 Couchbase 服务器,以及如何使用 Web 界面和命令行工具来管理和操作 Couchbase 数据库。Couchbase 是一种功能强大的 NoSQL 数据库,它可以满足各种应用场景的数据需求。您可以通过 这里 的文档来了解更多关于 Couchbase 的信息。