PostgreSQL修改数据库目录/数据库目录迁移
说明:以9+版本为例,10+的版本只要把目录替换一下即可。迁移目录肯定是要停服的!
1、在数据库软件安装之后,初始化数据库时候,可以指定初始化时创建的数据库的默认文件路径
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
这样初始化之后,再修改配置文件postgresql.conf为修改之后的数据文件路径,就能保证以后的数据文件也在这个路径下。
备注:可以通过find查找该文件的所在位置。
2、如果是已经初始化好了,再修改数据文件路径的,如下过程:
找到配置文件查看原来的数据存储路径在哪
find / -name postgresql.conf
一般是在/etc/postgresql/9.6/main/postgresql.conf
停掉PostgreSQL
service postgresql stop
拷贝原来的数据路径到新的路径下
cp -rf /var/lib/postgresql/9.6/main/ /data/postgresql/
设置用户和权限
chown -R postgres:postgres /data/postgresql/ chmod 700 /data/postgresql/
将配置文件的数据存储路径改成新的
vi /etc/postgresql/9.6/main/postgresql.conf data_directory='/data/postgresql/datafile'
再启动即可
service postgresql start
修改完毕后,可以用psql命令“show data_directory”查看当前数据目录
postgres=# show data_directory; data_directory ------------------------ /var/lib/pgsql/10/data (1 row)
通过上面的修改的方法,使用ps -ef输出的进程还是会显示原来的旧目录,这个相当于做了URL跳转的操作,但对于运维人员不是那么的友好,那么可以通过修改源头来进行修改。修改方法如下:
注意:修改目录时先停止服务!
1、命令行方式启动时指定目录
pg_ctl stop -D /data/pgsql/data2 pg_ctl start -D /data/pgsql/data2
2、以init脚本启动的,修改脚本(10+):
vi /etc/init.d/postgresql-10 # 修改为如下内容 PGDATA=/data/pgsql/data2
2、以systemd启动的,修改脚本(10+):
vi /usr/lib/systemd/system/postgresql-10.service # 修改为如下内容 Environment=PGDATA=/data/pgsql/data2
参考:
http://blog.itpub.net/29654823/viewspace-2147325/(以上内容转自此篇文章)
分类:
postgresql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律