执行以下命令来创建文件存储库配置
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
导入存储库签名密钥
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
apt-key 过时处理:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor > pgdg.gpg
sudo mv pgdg.gpg /etc/apt/trusted.gpg.d/pgdg.gpg
ubuntu 22.04 更新软件源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo bash -c "echo 'deb https://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc) main restricted universe multiverse' > /etc/apt/sources.list"
sudo bash -c "echo 'deb https://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc)-security main restricted universe multiverse' >> /etc/apt/sources.list"
sudo bash -c "echo 'deb https://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc)-updates main restricted universe multiverse' >> /etc/apt/sources.list"
sudo bash -c "echo 'deb https://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc)-backports main restricted universe multiverse' >> /etc/apt/sources.list"
sudo apt update
更新软件包列表
$ sudo apt-get update
安装PostgreSQL
安装最新版本PostgreSQL: sudo apt-get install postgresql
安装特定版本:sudo apt-get install postgresql-16
安装完查看版本psql --version
查看运行状态:systemctl status postgresql
停止服务:systemctl stop postgresql
到配置目录:cd /etc/postgresql/16/main
修改配置文件:vim pg_hba.conf 增加
host replication all 192.168.31.195/24 md5
或
host all all 0.0.0.0/0 md5
修改配置文件:vim postgresql.conf(http://www.bigqq.com/wp-admin/post.php?post=204&action=edit)
使配置生效:重启服务,或者数据库管理员执行SELECT pg_reload_conf()
修改数据文件路径
新增文件夹:mkdir -p pgdata/postgresql/16/main
修改文件夹权限
chown -R postgres:postgres /home/postgresql
chmod 750 -R /home/postgresql
复制原数据文件:rsync -av /var/lib/postgresql/16/main /mesdata/pgdata/postgresql/16
从主库中备份数据:
pg_basebackup -h 172.30.253.170 -D /mesdata/pgdata/postgresql/16/main -p 5432 -U postgres -Fp -Xs -Pv -R --checkpoint=fast
账户处理
一. 修改用户postgres的密码
PostgreSQL数据库默认创建管理员账号:postgres;修改其密码,仅需一下三步:
1、首先,登录PostgreSQL
sudo -u postgres psql postgres -p 5432
2、然后,修改账号postgres的密码
ALTER USER postgres WITH PASSWORD 'Lpf65BsDhDNdaJmH'; (---一定要加分号!!!!)
3、最后,退出pgsql客户端
exit
二. 修改linux系统postgres用户的密码
PostgreSQL都会创建一个默认的linux用户postgres,修改该用户密码的方法如下:
1、先删除用户postgres的历史密码
sudo passwd -d postgres
2、重新设置用户postgres的密码
sudo -u postgres passwd
3、按照系统提示,输入两次新的密码,即可搞定。
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
参数调优
https://zhengkai.blog.csdn.net/article/details/154301910
参数名称 PG16 默认值 建议优化值 参数含义与调优说明
shared_buffers 128MB 64GB 🔥 共享缓冲区:数据库缓存大小。建议设置为内存的25%,大幅减少磁盘I/O
effective_cache_size 4GB 192GB 💡 有效缓存:告诉优化器系统可用缓存大小,影响索引使用决策
random_page_cost 4.0 1.1 ⚡ 随机页成本:SSD存储建议设为1.1,NVMe SSD可设为1.0
effective_io_concurrency 1 300 🚀 I/O并发度:高速SSD可大幅提升此值,充分发挥I/O性能
work_mem 4MB 128MB 🧠 工作内存:每个排序/哈希操作可用内存。注意总消耗 = work_mem × 操作数
maintenance_work_mem 64MB 2GB 🛠️ 维护内存:VACUUM、CREATE INDEX等操作的内存,显著加速维护任务
min_wal_size 80MB 1GB 📝 最小WAL大小:减少WAL文件循环,平滑I/O操作
max_wal_size 1GB 4GB 📝 最大WAL大小:大幅减少检查点频率,降低I/O压力
max_worker_processes 8 16 ⚙️ 最大工作进程:设置为CPU核数,支持更多并行操作
max_parallel_workers_per_gather 2 8 🔄 并行工作进程:单个查询的并行度,平衡并发与性能
max_parallel_workers 8 16 ⚙️ 最大并行工作进程:系统总并行工作进程数
max_parallel_maintenance_workers 2 4 🛠️ 维护并行度:加速索引创建、VACUUM等维护操作
checkpoint_completion_target 0.9 0.9 ⏱️ 检查点完成目标:保持默认0.9,平滑检查点I/O
🎯 关键补充调优参数
参数名称 PG16 默认值 建议优化值 调优说明
autovacuum_max_workers 3 6 🔧 自动清理工作进程:增加清理进程数,应对高负载
autovacuum_vacuum_scale_factor 0.2 0.1 🧹 自动清理触发比例:更积极的清理,防止表膨胀
autovacuum_analyze_scale_factor 0.1 0.05 📊 自动分析触发比例:更频繁的统计信息更新
wal_buffers -1 (自动) 16MB 📝 WAL缓冲区:显式设置为16MB,提升写入性能
default_statistics_target 100 500 📈 统计信息目标:更详细的统计信息,提升查询计划质量
max_connections 100 200-300 👥 最大连接数:根据应用需求调整,避免设置过高