一、操作原因
pgsql当前版本是pg10,自动化安装的pgsql的数据目录是在/var根目录下,一般默认是在/var/lib/pgsql/10/data下面,这是系统根目录,系统根目录一般就100g,远远不够使用,因此需要换成真正的数据目录。因为数据库已经运行很久了,切换之前,需要确定几个事情:
1、应用什么时候允许停服,就是停止postgres服务
2、确保数据目录磁盘足够。
3、查看当前的数据库真正data目录
二、操作步骤
1、查看当前的pgsql数据目录
使用命令 postgres=# show data_directory ;
2、停止postgres服务
/bin/su -l postgres -c “/usr/bin/pg_ctl -D /var/lib/pgsql/10/data/ stop”
3、复制当前数据目录下所有文件到新的目录
创建新数据目录:mkdir -d /data/postgres_data/
开始复制数据文件:
rsync -av /var/lib/pgsql/10/data/ /data/postgres_data/
chown -R postgres.postgres /data/postgres_data
备注:
-a 保留的权限和其他目录属性, 能避免未来的权限问题
-v 提供详细输出,以便能够看到进度
复制结束后,将原来的目录换个名字,mv /var/lib/pgsql/10/data /tmp/data
4、修改配置文件postgresql.conf
data_directory = ‘/data/postgres_data/’
5、启动数据库
启动命令:/bin/su -l postgres -c “/usr/bin/pg_ctl -D /postgres_data/ start”
查看新的数据目录:show data_directory;
postgres=# show data_directory ;
data_directory
---------------------------------
/data/postgres_data
(1 row)