如何将PostgreSQL 9.5.7的Windows 10安装迁移到更大的磁盘

时间:2017-09-25 13:16:05

标签: windows postgresql data-migration

几个月前我第一次安装了PostgreSQL数据库,我接受了所有的安装默认设置,现在我有一个C:驱动器爆破了极限。我想将数据库(即数据文件)迁移到我有足够空间的D:驱动器。

我在这个主题上找到了几个主题,但是它们中的信息似乎不再与当前版本相关(他们建议在PostgreSQL数据库时使用-D参数传递数据文件开始了,这似乎不再是这种情况)

这是我到目前为止所遵循的步骤

  • 检查任务管理器中的PostgreSQL进程(“PostgreSQL服务器”的几个实例)

  • 关闭Postgres(开始菜单,PostgreSQL,停止PostgreSQL 9.5)

  • 检查任务管理器是否有Postgres进程(“PostgreSQL服务器”的所有实例都已停止)

  • 将似乎包含所有数据文件的目录复制到我的D:驱动器(即复制到c:\ PostgresSQL \ data \ pg95到d:\ PostgresSQL \ data \ pg95)

  • 完全访问“NETWORK SERVICES”

  • 的新目录
  • 编辑c:\ PostgreSQL \ data \ pg95 \ postgresql.conf以在“文件位置”部分中包含以下新行

    data_directory = 'D:\PostgreSQL\data\pg95'
    
    hba_file = 'C:\PostgreSQL\data\pg95\pg_hba.conf'
    
    ident_file = ‘C:\PostgreSQL\data\pg95\pg_ident.conf'
    
  • 重启Postgres(开始菜单,PostgreSQL,启动PostgreSQL 9.5)

所有这一切的结果是在检查任务管理器之后没有任何Postgres进程的迹象。当我尝试启动该过程时,没有任何错误迹象。

将PostgreSQL迁移到更大的磁盘的正确步骤是什么?

1 个答案:

答案 0 :(得分:0)

好的,我想我已经设法回答了我自己的问题。

首先,我的数据目录'不是

D:\PostgreSQL\data

它的

D:\PostgreSQL\data\pg95.

其次,尽管是Windows安装,但似乎PostgreSQL希望在路径中看到正斜杠,因此postgresql.conf中的条目需要有正斜杠,而不是反斜杠

使用以下命令启动PostgreSQL服务(默认设置)(开始菜单 - > PostgreSQL->启动PostgreSQL 9.5)

C:\WINDOWS\system32\sc.exe start "PostgreSQL 9.5 Server"

因此,为了使用不同的数据文件位置,我将其更改为...

C:\WINDOWS\system32\sc.exe start "PostgreSQL 9.5 Server" -D "D:/PostgreSQL/data/pg95"

然后我能够重启postgreSQL并访问数据库。

向我自己证明我确实在访问数据文件的新副本(D:驱动器),而不是我重命名的原始(C:驱动器)版本

c:\PostgresSQL\data\pg95\base to c:\PostgresSQL\data\pg95\baseXXX

到目前为止似乎有效!