如何更改PostgreSQL数据目录?

问题描述 投票:0回答:3

我在 windows7 上的 postgresql 9.2 上更改数据目录时遇到问题:

我正在尝试更改我的数据目录:

如何使用 pgAdmin 更改 postgreSQL 上的数据目录?

postgresql-9.2
3个回答
21
投票

这在 pgAdmin 中是不可能的(或任何其他 SQL 客户端,因为您需要停止 Postgres 服务器才能移动数据目录)

要移动目录,请使用以下步骤:

  1. 停止Postgres(可以使用控制面板找到正确的服务名称)

    net stop <name_of_the_service>
    
  2. 确保 Postgres 未运行(例如使用 ProcessMonitor)
  3. 使用

    删除 Windows 服务
    pg_ctl unregister -N <name_of_the_service>
    
  4. 确保 Postgres 没有运行
  5. 将数据目录移动到新位置(或者可能只复制它,以便您有备份)
  6. 使用重新创建服务(这会指定

    postgres
    作为服务名称)

    pg_ctl register -N postgres -D c:\new\path\to\datadir
    
  7. 启动服务

    net start postgres 
    
  8. 运行 psql 以验证 Postgres 是否已启动并正在运行

    psql -U postgres
    
  9. 验证正在运行的服务器正在使用新的数据目录

    show data_directory;
    

详细使用方法

pg_ctl
可以在说明书中找到:
http://www.postgresql.org/docs/current/static/app-pg-ctl.html


1
投票

通过打开服务窗口并找到 postgresql-x64-xx(xx 表示版本号 postgresql-x64-11、postgresql-x64-15 等)或使用命令行来停止服务

sc stop postgresql-x64-11

运行以下命令就足够了(无需注销)将“C:\postgre\data”替换为您的新数据位置

sc config postgresql-x64-11 binPath= "\"C:\Program Files\PostgreSQL\11\bin\pg_ctl.exe\" runservice -N \"postgresql-x64-11\" -D \"C:\postgre\data\" -w"

从服务窗口或命令行启动服务

sc start postgresql-x64-11

0
投票

打开组件服务,停止该服务,右键单击它,然后单击属性。

复制“可执行文件的路径”中的值并编辑“-D”选项后面的路径。

sc config
+ 复制和编辑的字符串

用“\”转义双引号(或告诉 ChatGPT 更正命令)

在管理员模式下打开CMD,输入命令并执行。

启动服务

完成

© www.soinside.com 2019 - 2024. All rights reserved.