共计 1891 个字符,预计需要花费 5 分钟才能阅读完成。
环境准备
系统要求
- CentOS 7 或 8(推荐使用最小化安装)
- 至少 2GB 内存(向量计算较耗资源)
- 10GB 以上可用磁盘空间
依赖项检查
- 首先更新系统基础包:
sudo yum update -y
- 检查关键依赖是否安装:
yum list installed | grep -E 'gcc|make|readline|zlib'
若缺少任何依赖,可通过以下命令安装:

sudo yum install gcc make readline-devel zlib-devel -y
YUM 源配置
- 添加 PostgreSQL 官方仓库(以 CentOS 7 为例):
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- 检查仓库是否添加成功:
yum repolist | grep pgdg
PostgreSQL 15 安装
- 安装核心包:
sudo yum install -y postgresql15-server postgresql15-contrib
- 初始化数据库:
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
- 启动服务并设置开机自启:
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
向量插件安装
- 安装编译依赖:
sudo yum install postgresql15-devel -y
- 下载并编译 pgvector:
cd /tmp
git clone https://github.com/pgvector/pgvector.git
cd pgvector
make PG_CONFIG=/usr/pgsql-15/bin/pg_config
sudo make install PG_CONFIG=/usr/pgsql-15/bin/pg_config
- 加载插件到数据库:
-- 以 postgres 用户登录
sudo -u postgres psql
-- 创建插件
CREATE EXTENSION vector;
配置优化
编辑配置文件/var/lib/pgsql/15/data/postgresql.conf:
# 内存设置(根据服务器内存调整)shared_buffers = 512MB
work_mem = 16MB
# 连接设置
max_connections = 100
# 向量计算优化
effective_io_concurrency = 200
random_page_cost = 1.1
重启服务使配置生效:
sudo systemctl restart postgresql-15
验证测试
- 创建测试表:
CREATE TABLE items (
id bigserial PRIMARY KEY,
embedding vector(3)
);
- 插入测试数据:
INSERT INTO items (embedding) VALUES
('[1,2,3]'),
('[4,5,6]'),
('[7,8,9]');
- 执行相似度查询:
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 2;
生产环境注意事项
权限管理
- 避免使用 postgres 超级用户运行应用
- 为每个应用创建单独用户:
CREATE ROLE app_user WITH LOGIN PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE postgres TO app_user;
备份策略
- 设置每日 WAL 归档备份
- 使用 pg_dump 进行逻辑备份:
sudo -u postgres pg_dump -Fc mydb > mydb.dump
性能监控
- 启用 pg_stat_statements 扩展
- 配置 Prometheus + Grafana 监控
常见问题排查
- 插件加载失败:
- 确保
shared_preload_libraries包含 ’pgvector’ -
检查
pg_config路径是否正确 -
内存不足错误:
- 增加
work_mem参数值 -
对大向量表创建适当的索引
-
YUM 依赖冲突:
- 先卸载旧版 PostgreSQL
-
使用
--skip-broken参数安装 -
向量维度不匹配:
- 创建表时显式指定向量维度
-
插入数据前检查向量长度
-
性能低下:
- 为向量列创建 IVFFlat 索引
- 考虑升级到支持 GPU 加速的版本
结语
通过上述步骤,我们成功在 CentOS 系统上部署了支持向量计算的 PostgreSQL 15 数据库。这套方案已在多个 AI 项目中验证稳定,能够有效支持相似度搜索、推荐系统等场景。建议首次部署后先进行压力测试,根据实际负载情况进一步优化参数配置。
正文完
发表至: 未分类
近两天内
