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

问题描述:

我几个月前安装了第一次PostgreSQL数据库,我接受所有的默认安装,现在我有一个C:驱动器在爆破限制。我想将数据库(即数据文件)迁移到我的D:驱动器,我有足够的空间。如何在Windows 10安装的PostgreSQL 9.5.7的迁移到更大的磁盘

我在这个主题上发现了一些线程,但其中的信息似乎不再与当前版本相关(他们建议在PostgreSQL数据库启动时使用-D参数传递数据文件,这似乎不再是这种情况)

这是我一直沿袭至今

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

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

  • 检查Postgres的过程中的任务管理器复制似乎目录

  • (“PostgreSQL服务器”已停止的所有实例)包含所有数据文件到我的D:驱动器(即复制C:\ PostgreSQL的\数据\ pg95至d:\ PostgreSQL的\数据\ pg95)

  • 给予了充分的访问新的目录,以 'NETWORK SERVICES'

  • 编辑C:\ PostgreSQL的\数据\ pg95 \ postgresql.conf中,包括在 '文件位置' 部分

    data_directory = 'D:\PostgresSQL\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的迁移到更大的磁盘的正确步骤?

+0

您是否重新创建了Windows服务?数据目录的位置('-D'选项)作为参数传递给服务,并且需要更改。 –

+0

我的服务的'可执行文件路径'是C:\ PostgreSQL \ pg95 \ pgservice.exe“// RS // PostgreSQL 9.5 Server”我遇到的线程提到数据目录('-D'选项)建议使用以下命令启动服务...“C:\ Program Files \ PostgreSQL \ 9.5 \ bin \ pg_ctl.exe”runservice -N“postgresql-x64-9.5”-D“C:\ Program Files \ PostgreSQL \ 9.5 \ data“,因为这些与我的服务如此不同,我认为它不再适用? – Hemel

+0

well'-D“C:\ Program Files \ PostgreSQL \ 9.5 \ data”'应该是'-D'D:\ PostgresSQL \ data \ pg95'' –

好吧,我想我已经成功地回答我的问题。

首先,我的“数据目录”是不是

D:\PostgreSQL\data 

D:\PostgreSQL\data\pg95. 

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

PostgreSQL服务启动(默认设置),用下面的命令(开始菜单 - >点ostgreSQL->开始的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 

似乎工作至今!

+0

yoju如果该文件位于_in_中,则不需要在'postgresql.conf'中指定数据目录数据目录。在启动Postgres时通过这个位置就足够了 –