postgresql-15 更改默认存储路径
更改默认存储路径应用场景
线上生产环境 pg-15默认存储路径是 /var/lib/pgsql/ ,在实际使用中这个目录下会写满根目录。需要更改一下存储目录。
根目录磁盘使用率95%。
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 6.3G 663M 5.6G 11% /run
/dev/mapper/root 70G 67G 3.9G 95% /
/dev/sda2 1014M 238M 777M 24% /boot
/dev/mapper/home 413G 3.0G 410G 1% /home
开始更改存储目录
1、停止服务 PostgreSQL 服务
sudo systemctl stop postgresql-15
2、 创建新的数据目录并设置权限
sudo mkdir /home/pgsql_data
sudo chown -R postgres:postgres /home/pgsql_data
3. 复制现有数据到新目录
sudo rsync -av /var/lib/pgsql/15/data/ /home/pgsql_data
注意:确保数据目录的权限
看到以下结果是目录之间同步好了
pg_xact/0199
pg_xact/019Asent 61,705,560,847 bytes received 42,407 bytes 49,943,831.04 bytes/sec
total size is 61,700,608,601 speedup is 1.00
4、 修改 PostgreSQL 配置文件
变更第一个配置文件
编辑 /var/lib/pgsql/15/data/postgresql.conf
文件,找到 data_directory
参数,并将其值修改为新的数据目录路径 /home/pgsql_data
。你可以使用以下命令打开文件进行编辑:
sudo vim /var/lib/pgsql/15/data/postgresql.conf# 原有配置
#data_directory = '/var/lib/pgsql/15/data' # 变更成 新的配置
data_directory = '/home/pgsql_data'
变更第二个配置文件
修改 postgresql-15.service
文件 ,/usr/lib/systemd/system/postgresql-15.service
# 原本配置文件
Environment=PGDATA=/var/lib/pgsql/15/data/# 更改配置文件
Environment=PGDATA=/home/pgsql_data
保存配置文件,需要重新加载 systemd 配置,使更改生效
sudo systemctl daemon-reload
5、验证数据目录是否被更改
先连接到pg数据库上,查询目录位置,这里已经更改成功了。
data]# sudo -u postgres psql
psql (15.1)
输入 "help" 来获取帮助信息.postgres=# SHOW data_directory;data_directory
------------------/home/pgsql_data
(1 行记录)postgres=#
6、清理原先的存储数据
这里不要轻易的删除掉原先的存储数据,可以先在原先的存储里 /var/lib/pgsql/base里 可以把这个目录更改一下 ,改成base_bak,查看pg是否还可以正常运行,因为原先这个目录里有很多的配置文件,上面的操作只是更改了pg数据库的存储目录路径。
mv base/ base_bak
清理原先存储数据请小心谨慎,先改一下目录名称,运行一段时间没有问题,再删除原先的数据。