2017-09-25 150 views
-1

我幾個月前安裝了第一次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'' –

回答

0

好吧,我想我已經成功地回答我的問題。

首先,我的「數據目錄」是不是

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時通過這個位置就足夠了 –