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
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 通信):
每个包的用途:
| 包 | 为什么需要 |
|---|---|
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 |
提供 ssh、scp 等客户端工具,admintools 配置节点互信时使用 |
大多数 Linux 发行版默认已安装这些包,但最小化安装或 Docker 镜像可能缺失。提前装好避免
install_vertica跑到一半报依赖缺失。
2.5 确保 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 包¶
安装后 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 身份执行:
4. License¶
社区版 License 不需要额外安装。 社区版自动激活,限制:最多 3 节点、1 TB 原始数据。单节点学习环境完全够用。
如果你有企业版 License,安装方式见 Vertica 数据库License安装、更新步骤。(License 的验证 SQL 见 §6.5。)
5. 创建数据库¶
5.1 创建数据目录¶
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 连接数据库时用(牢记!丢失不可找回!) |
创建成功后输出类似:
5.3 启动数据库¶
看到 Database vmart started successfully 即启动成功。
6. 验证¶
6.1 连接数据库¶
成功进入后提示符变为 =>。
6.2 检查版本¶
6.3 检查节点状态¶
6.4 快速功能测试¶
-- 建一张测试表
CREATE TABLE hello (id INT, msg VARCHAR(100));
-- 插入数据
INSERT INTO hello VALUES (1, 'Vertica works!');
COMMIT;
-- 查询
SELECT * FROM hello;
6.5 验证 License¶
预期输出显示 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 写满。
解决:软链接到其他分区。
来源:安装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。
解决:
来源:在arm服务器上安装23报libcrypt.so.1错误
8.4 sudo 权限报错¶
现象:install_vertica 报 sudo: permission denied。
解决:确保当前用户在 /etc/sudoers 中有权限,或直接用 root 执行。
来源:sudo安装报权限错误
8.5 防火墙阻断 Spread 4803 端口¶
现象:install_vertica 过程中节点通信失败,或启动后 spread 无法连接。
解决:确保防火墙已完全关闭(见 §2.1)。如果是云主机,还需要在云控制台安全组中放行 4803、5433 端口。
9. 延伸阅读¶
- 开始使用:→ Vertica 新手入门 — 从核心概念到第一条 SQL:装完第一件事——理解核心概念并执行第一条 SQL。
- 升级到 3 节点集群:→ Vertica 3 节点集群安装部署完全指南:单节点跑通后,搭 3 节点体验真正的 MPP 分布式能力。
- 了解硬件规划:→ Vertica 数据库硬件配置指南:在正式部署前,了解硬件选型和配置建议。
- 了解集群网络:→ Vertica Spread 配置最佳实践
- 日常运维:→ Vertica 数据库的启动和关闭