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/019A

sent 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

清理原先存储数据请小心谨慎,先改一下目录名称,运行一段时间没有问题,再删除原先的数据。

你可能感兴趣的:(Linux系统,linux,运维,服务器)