如何在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的迁移到更大的磁盘的正确步骤?
好吧,我想我已经成功地回答我的问题。
首先,我的“数据目录”是不是
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
似乎工作至今!
yoju如果该文件位于_in_中,则不需要在'postgresql.conf'中指定数据目录数据目录。在启动Postgres时通过这个位置就足够了 –
您是否重新创建了Windows服务?数据目录的位置('-D'选项)作为参数传递给服务,并且需要更改。 –
我的服务的'可执行文件路径'是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
well'-D“C:\ Program Files \ PostgreSQL \ 9.5 \ data”'应该是'-D'D:\ PostgresSQL \ data \ pg95'' –