PostgreSQL 修改数据存储路径

本文介绍了在PostgreSQL14中如何更改数据存储路径以适应大数据量的需求。首先,创建新的数据存放目录并设置权限。接着,以postgres用户初始化数据库,并修改系统文件postgresql-14.service中的数据路径。最后,重新加载系统文件并重启服务以应用更改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景说明

使用的 PostgreSQL 版本是 14.X 版本的。

实际项目部署过程中,数据库的数据有时候被要求保留5-10年,甚至更久。随着数据量的增大,磁盘占用空间也会随之增大。
当数据库默认的安装路径所在目录的磁盘空间不够大时,可以考虑扩容,或者修改数据库数据存放的路径,将路径指定到一个足够大的磁盘目录下。

本篇博文,主要介绍如何修改 PostgreSQL 的数据存储路径。


二、解决方案

1、创建需要存放数据的路径
mkdir -p /home/data/pg14/data

其中,/home/data/pg14/data 是数据需要存放的目录,可以根据实际情况进行修改。

 

2、设置访问权限
chown -R postgres:postgres /home/data/pg14/data

 

3、初始化数据库

1)赋予 posrgres 用户所有权

su - postgres

2)手动初始化自定义路径下的数据库

/usr/pgsql-14/bin/initdb -D /home/data/pg14/data

4、修改系统文件中的路径
sudo vim /usr/lib/systemd/system/postgresql-14.service

修改Enviroment=PGDATA=/var/lib/pgsql/14/data//home/data/pg14/data/ 后,保存退出编辑。

5、重新加载系统文件
systemctl daemon-reload

6、重启PostgreSQL 服务
systemctl restart postgresql-14

### 如何修改数据库或文件系统的数据存储路径配置 #### MySQL 数据库 对于 MySQL 8.0 版本,在 Linux 或 Windows 上修改数据库文件的存放路径涉及几个关键步骤。首先,需确认当前的数据文件存放位置: ```sql SHOW VARIABLES LIKE 'datadir'; ``` 此命令会显示 `datadir` 的值,即现有数据库文件的位置[^1]。 接着,停止 MySQL 服务以确保操作的安全性。在 Linux 中可以使用如下命令来停止服务: ```bash sudo systemctl stop mysql ``` 随后,创建新的目标目录并赋予适当权限给 MySQL 用户,以便其能够访问新路径下的资源。假设要迁移到 `/new/path/mysql/data`: ```bash mkdir -p /new/path/mysql/data chown -R mysql:mysql /new/path/mysql/ chmod 750 /new/path/mysql/ ``` 完成上述准备工作后,将原有数据文件安全迁移至新设定的目标路径下,并验证所有文件均已正确转移无误。这一步骤至关重要,因为任何遗漏都可能导致后续启动失败或其他不可预见的问题发生。 最后也是最关键的一步就是更新 MySQL 配置文件中的 `datadir` 参数指向新的路径。如果是在 CentOS 环境下,则通常需要编辑位于 `/etc/my.cnf.d/server.cnf` 文件内的 `[mysqld]` 节点;而在其他环境中可能是通过直接修改全局配置文件实现这一目的。具体做法为找到对应的配置项并将之更改为实际的新路径地址,例如: ```ini [mysqld] ... datadir=/new/path/mysql/data ... ``` 保存更改后的配置文件,重新加载 MySQL 服务使设置生效: ```bash sudo systemctl start mysql ``` 为了进一步确认变更是否成功执行,再次运行之前提到过的 SQL 查询语句检查 `datadir` 变量值是否已反映最新调整的结果[^4]。 #### PostgreSQL 数据库 (Linux) 针对 PostgreSQL 数据库而言,在 Linux 平台上同样可以通过一系列指令完成对数据存储路径的自定义配置工作流程。首要是关闭正在运行的服务实例防止意外写入造成损坏风险: ```bash sudo systemctl stop postgresql ``` 紧接着建立预期放置数据的新目录结构并向其中分配必要的读取/写入许可权限供 Postgres 使用者账户享有充分控制权能: ```bash sudo mkdir -p /mnt/new/pgdata sudo chown -R postgres:postgres /mnt/new/pgdata sudo chmod 700 /mnt/new/pgdata ``` 接下来把旧有的集群资料完整搬迁过来,务必保证整个过程平稳过渡不丢失任何一个字节的信息内容。完成后切换到拥有相应权限的身份去处理接下来的任务——编辑主配置文档 (`postgresql.conf`) 来指明最新的 data_directory 设置所在之处: ```plaintext data_directory = '/mnt/new/pgdata' ``` 重启 PostgreSQL 让改动即时上线应用起来即可[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值