在 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-clicbqcbbackupmgr 等。您可以在 /opt/couchbase/bin 目录下找到这些工具,也可以将该目录添加到您的 PATH 环境变量中,以便直接使用。

以下是一些常用的命令行工具的简介和示例:

  • couchbase-cli:这是一个用于管理 Couchbase 集群的通用工具,它提供了多个子命令,如 cluster-initbucket-createserver-addserver-removerebalance 等。您可以使用 -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 数据的工具,它提供了多个子命令,如 configbackuprestorelistremove 等。您可以使用 -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 的信息。