跳转至

Vertica 单节点安装部署完全指南

作者:JiangChong | 撰写时间:2026年06月

适用场景:你想在本机快速搭一套 Vertica 学习环境,或需要一台开发用的 Vertica 实例。

读完本文你将能够

  • 在 30 分钟内完成从裸机到 Vertica 可用的全部安装
  • 知道每一步命令的作用,而非机械复制粘贴
  • 避开最常见的 5 个安装踩坑点

前提:你有一台 Linux 服务器(物理机或虚拟机均可),root 权限,能连外网下载 rpm 包。


1. 前置准备

1.1 硬件最低要求

项目 最低要求 建议
CPU 2 核 4 核以上
内存 4 GB 8 GB 以上
磁盘 20 GB 空闲 50 GB+(/data 独立分区)
Swap 2 GB 2 GB
网卡 1 张

Vertica 要求每逻辑 CPU 至少 1 GB 内存。单节点学习用途可以用虚拟机(VirtualBox/VMware/云主机均可)。

1.2 操作系统要求

Vertica 24.x+ 支持的 OS:

  • RHEL / CentOS 7.x, 8.x
  • Rocky Linux 8.x, 9.x
  • Ubuntu 20.04, 22.04
  • Debian 11, 12
  • SUSE Linux Enterprise 12, 15

本文以 Rocky Linux 8.x / RHEL 8.x 为例。其他发行版命令类似,差异处会标注。

1.3 下载 Vertica RPM

vertica.com/download 下载对应 OS 版本的 RPM。需要注册一个 OpenText 账号(免费)。

百度云盘备用vertica-26.1.0-2.RHEL8.x86_64.rpm 链接 提取码: qpx9

# 示例:下载到 /tmp
# 文件名格式:vertica-<version>.x86_64.RHEL8.rpm
ls /tmp/vertica-*.rpm

2. 系统配置

以下全部以 root 执行。

2.1 关闭防火墙

Vertica 节点间通过 Spread 协议通信(端口 4803),防火墙会阻断通信:

systemctl stop firewalld      # 立即停掉当前运行的防火墙
systemctl disable firewalld   # 禁止开机自启(但仍可被其他服务拉起来)
systemctl mask firewalld      # 彻底封死——把 service 定义指向 /dev/null,谁也拉不起来

三条命令叠加才能彻底杜绝防火墙复活。mask 的底层操作是把 /usr/lib/systemd/system/firewalld.service 软链接到 /dev/null,这样即使其他服务(如 Docker)试图拉 firewalld 作为依赖,systemd 也会直接忽略。

Debian/Ubuntu:sudo ufw disable

2.2 关闭 SELinux

# 临时关闭(立即生效,重启失效)
setenforce 0

# 永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2.3 配置 /etc/hosts

单节点安装也需要正确配置 hosts,否则 spread 通信会报「找不到 /tmp/4803」错误:

# 查看本机 IP
ip a | grep inet

# 编辑 /etc/hosts,确保本机 hostname 能解析到非 127.0.0.1 的 IP
# 将 <本机IP> 替换为上面查到的真实 IP(如 10.0.0.10)
echo "<本机IP>  $(hostname)" >> /etc/hosts

踩坑:如果 hostname 返回 localhost,Vertica 安装会失败。先用 hostnamectl set-hostname <新名称> 改名。

2.4 安装依赖

# RHEL/Rocky
yum install -y perl sudo which dialog openssh-server openssh-clients

# Debian/Ubuntu
apt-get install -y perl sudo which dialog openssh-server openssh-client

安装后启动 SSH 服务(install_vertica 依赖 SSH 通信):

systemctl start sshd
systemctl enable sshd

每个包的用途:

为什么需要
perl install_vertica 和 admintools 内部脚本用 Perl 编写
sudo 安装过程需要提权执行内核参数调整等操作
which 安装脚本用 which 检测命令是否存在(官方验证 sudo 的步骤本身就用 which sudo
dialog admintools 交互式菜单需要 ncurses 对话框界面;rpm -ivh 安装时会明确提示缺少此包
openssh-server Vertica 通过 SSH 在节点间执行远程命令——即便是单节点,admintools 也走 SSH 连接 localhost
openssh-clients 提供 sshscp 等客户端工具,admintools 配置节点互信时使用

大多数 Linux 发行版默认已安装这些包,但最小化安装或 Docker 镜像可能缺失。提前装好避免 install_vertica 跑到一半报依赖缺失。

2.5 确保 sudo 可用

which sudo   # 应返回 /usr/bin/sudo

2.6 内核参数

Vertica 安装脚本会自动配置大部分内核参数。以下两个建议手动设好:

# 修改 /etc/sysctl.conf
cat >> /etc/sysctl.conf << 'EOF'
vm.dirty_ratio = 5
vm.dirty_background_ratio = 3
vm.min_free_kbytes = 90112
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
EOF

sysctl -p

来源:Vertica 26.2 文档 + vault 最佳实践


3. 安装 Vertica

3.1 安装 RPM 包

rpm -ivh /tmp/vertica-<version>.x86_64.RHEL8.rpm

安装后 Vertica 软件位于 /opt/vertica/。此时还没有创建数据库——软件装好了,但「数据库实例」还不存在。

踩坑:如果根目录 / 空间不够,Vertica 默认装到 /opt/vertica/。解决:先在其他分区(如 /data)创建目录,再软链接 /opt/data/opt

3.2 运行 install_vertica 脚本

单节点安装只需指定本机真实 IP(先通过 ip a 确认,不要用 127.0.0.1):

/opt/vertica/sbin/install_vertica --hosts <本机IP> \
  --dba-user-password-disabled \
  --point-to-point \
  --failure-threshold FAIL

参数解释:

参数 作用
--hosts <本机IP> 单节点填本机真实 IP(如 10.0.0.10),不要用 127.0.0.1——和 §2.3 hosts 配置一样,Spread 必须绑定真实 IP
--dba-user-password-disabled 跳过 dbadmin 操作系统用户的密码设置(学习环境方便)。注意:这是 Linux 系统账号密码,不是数据库密码——数据库密码在后面 create_db -p 单独设置
--point-to-point 单节点/小集群使用点对点 spread 模式
--failure-threshold FAIL 只阻断 FAIL 级别的检查,WARN 不阻塞安装

脚本执行过程中会自动:

  • 创建 dbadmin 用户(Vertica 的管理用户)
  • 配置 SSH 互信
  • 检查并调整内核参数
  • 配置 spread 通信

看到 Installation complete 即安装成功。

3.3 切换到 dbadmin 用户

后续所有数据库操作都以 dbadmin 身份执行:

su - dbadmin

4. License

社区版 License 不需要额外安装。 社区版自动激活,限制:最多 3 节点、1 TB 原始数据。单节点学习环境完全够用。

如果你有企业版 License,安装方式见 Vertica 数据库License安装、更新步骤。(License 的验证 SQL 见 §6.5。)


5. 创建数据库

5.1 创建数据目录

# 以 root 执行
mkdir -p /data/vertica
chown -R dbadmin:verticadba /data/vertica

5.2 创建数据库

# 以 dbadmin 执行
/opt/vertica/bin/admintools -t create_db \
  -d vmart \
  -s <本机IP> \
  -D /data/vertica \
  -p <你的密码>

参数解释:

参数 作用
-d vmart 数据库名
-s <本机IP> 节点列表,单节点填本机真实 IP(如 10.0.0.10),与 install_vertica --hosts 保持一致
-D /data/vertica 数据目录
-p <密码> dbadmin 数据库密码,vsql -U dbadmin 连接数据库时用(牢记!丢失不可找回!

创建成功后输出类似:

Creating database vmart
Database vmart created successfully.

5.3 启动数据库

# 以 dbadmin 执行
/opt/vertica/bin/admintools -t start_db -d vmart -p <密码>

看到 Database vmart started successfully 即启动成功。


6. 验证

6.1 连接数据库

vsql -U dbadmin -w <密码>

成功进入后提示符变为 =>

6.2 检查版本

SELECT version();
-- Vertica Analytic Database v26.1.0-2

6.3 检查节点状态

SELECT node_name, node_state, node_address FROM nodes;
-- 单节点环境应该看到 1 行,state = UP

6.4 快速功能测试

-- 建一张测试表
CREATE TABLE hello (id INT, msg VARCHAR(100));

-- 插入数据
INSERT INTO hello VALUES (1, 'Vertica works!');
COMMIT;

-- 查询
SELECT * FROM hello;

6.5 验证 License

SELECT GET_COMPLIANCE_STATUS();

预期输出显示 License 容量、使用率以及合规状态。

如果以上都能正常执行,你的 Vertica 单节点环境就搭建完成了!


7. 常用管理命令速查

操作 命令 说明
启动数据库 /opt/vertica/bin/admintools -t start_db -d <db> -p <pwd> 使用dbadmin用户执行
停止数据库 /opt/vertica/bin/admintools -t stop_db -d <db> -p <pwd> 使用dbadmin用户执行
查看数据库状态 /opt/vertica/bin/admintools -t list_db 使用dbadmin用户执行;显示所有 DB 及状态
连接数据库 vsql -U dbadmin -w <pwd>
查看节点 SELECT * FROM nodes; 关注 node_state
查看版本 SELECT version();
查看 License SELECT GET_COMPLIANCE_STATUS();
查看磁盘使用 SELECT sum(used_bytes)/1024^3 AS gb FROM projection_storage;
查看数据库配置 SELECT * FROM databases;

8. 常见踩坑与解决

8.1 根目录空间不够

现象rpm -ivh 报磁盘空间不足,或 /opt/vertica 写满。

解决:软链接到其他分区。

mkdir -p /data/opt
ln -s /data/opt /opt
# 然后正常 rpm -ivh

来源:安装Vertica遇到根目录空间不够怎么办?

8.2 hosts 配置错误导致 spread 通信失败

现象:启动数据库报 unable to connect via UNIX socket to /opt/vertica/spread/tmp/4803

解决:检查 /etc/hosts,确保本机 hostname 对应的是真实 IP 而非 127.0.0.1

# 确认
hostname
hostname -i  # 必须是非 127.0.0.1 的 IP

# 修正
echo "$(ip a | grep 'inet ' | grep -v 127.0.0.1 | head -1 | awk '{print $2}' | cut -d/ -f1)  $(hostname)" >> /etc/hosts

来源:启动节点在dbLog文件中报找不到tmp 4803

8.3 ARM 服务器缺少 libcrypt.so.1

现象:在 ARM 架构服务器上安装报 ImportError: libcrypt.so.1: cannot open shared object file

解决

yum install -y libcrypt-devel

来源:在arm服务器上安装23报libcrypt.so.1错误

8.4 sudo 权限报错

现象install_verticasudo: permission denied

解决:确保当前用户在 /etc/sudoers 中有权限,或直接用 root 执行。

# 以 root 执行
/opt/vertica/sbin/install_vertica ...

来源:sudo安装报权限错误

8.5 防火墙阻断 Spread 4803 端口

现象install_vertica 过程中节点通信失败,或启动后 spread 无法连接。

解决:确保防火墙已完全关闭(见 §2.1)。如果是云主机,还需要在云控制台安全组中放行 4803、5433 端口。


9. 延伸阅读