zoukankan      html  css  js  c++  java
  • 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/(以上内容转自此篇文章)

  • 相关阅读:
    final/override控制
    高效遍历图像
    快速初始化成员变量
    C++ boost.python折腾笔记
    百亿数据毫秒响应级交易系统读写分离存储数据设计
    解决VS2010子目录中的.cpp文件引用上一级目录的stdafx.h找不到定义的问题
    生产应用常见坑
    spring AOP应用
    springmvc No mapping found for HTTP request with URI in Dispatc
    myeclipse使用maven插件进行maven install时报错check $m2_home environment variable and mvn script match
  • 原文地址:https://www.cnblogs.com/EasonJim/p/9052836.html
Copyright © 2011-2022 走看看