2016-10-04 44 views
1

我需要爲我們的生產服務器提供額外的實例。PostgreSQL:如何在同一個窗口機器上創建兩個實例?

可能嗎?

從哪裏開始?

的Windows Server

+0

嗨@TimBiegeleisen,我需要的是在Windows中運行。我不知道如何應用這些說明。 :( – fLen

+0

您確定您需要一個完整的單獨實例(在單獨的端口上,具有自己的服務器配置,事務日誌等),而不僅僅是現有實例中的額外數據庫和/或表空間? – Wyzard

+0

是的,as儘可能多的單獨的端口,但同樣的Windows服務器。我需要額外的實例。這是可能的,@Wyzard? – fLen

回答

5

上使用PostgreSQL 9.1如果您已經有二進制文件,然後添加第二個實例(「簇」)是通過運行initdb再註冊新的實例作爲Windows服務來完成。

(我不會將可執行文件的名稱加上存儲路徑的前綴。您需要將PostgreSQL安裝目錄bin添加到系統範圍PATH,使用完全限定名稱,或者直接更改爲bin目錄,使其成爲當前目錄)

要做到這一點,打開命令行(cmd.exe),並使用initdb創建實例:

initdb -D c:\Data\PostgresInstance2 -W -A md5 

-W令initdb提示您要用作該實例超級用戶的名稱和密碼 - 確保記住您提供的用戶名和密碼。 -D指定其中應該創建羣集。做不是創建在c:\Program Files下。

一旦實例(集羣)被初始化,編輯c:\Data\PostgresInstance2\postgresql.conf以使用不同的端口,例如, port = 5433。如果可以從外部訪問該實例,則還需要調整listen_addresses

您可以檢查是否一切正常,手動啓動新實例:

pg_ctl start -D c:\Data\PostgresInstance2 

一旦你改變端口(以及調整其他配置參數),你可以爲新集羣創建一個Windows服務:

pg_ctl register -N postgres2 -D c:\Data\PostgresInstance2 

該服務將使用「本地網絡帳戶」執行,因此您的以確保數據目錄的權限已正確設置。

+0

謝謝你真的有用!:D – fLen

相關問題