程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> postgresql 操作介紹

postgresql 操作介紹

編輯:關於SqlServer

啟動,停止和重起 PostgreSQL




pg_ctl start [-w] [-s] [-D datadir] [-l filename] [-o options] [-p path]
pg_ctl stop [-W] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ]
pg_ctl restart [-w] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-o options]
pg_ctl reload [-s] [-D datadir]
pg_ctl status [-D datadir]
pg_ctl kill [signal_name] [process_id]

    描述

    pg_ctl 是一個用於啟動,停止, 或者重起 PostgreSQL 後端服務器(postmaster),或者顯示一個運行著的服務器的狀態的工具, 盡管我們可以手動啟動服務器,但是 pg_ctl 封裝了重新定向日志輸出,與終端和進程組合理分離,以及另外提供了一個選項用於有控制的關閉。

    在 start 模式裡會啟動一個新的服務器。 服務器是在後台啟動的,標准輸入被附著到了 /dev/null 上。如果使用了 -l,那麼標准輸出和標准錯誤被定向到一個日志文件, 要麼就是重新定向到 pg_ctl 的標准輸出(而不是標准錯誤)。如果沒有選定日志文件,pg_ctl 的標准輸出應該重新定向到一個文件或者用管道輸出類似 rotatelogs 這樣的日志旋轉程序,否則,postmaster 將把它的輸出寫到控制終端(在後台)並且將不會脫離 shell 的進程組。

    在 stop 模式下,那個正在特定數據目錄運行的服務器被關閉。 你可以用 -m 選項選擇三種不同的關閉模式:"Smart" 模式等待所有客戶端中斷聯接。 這個是缺省。"Fast" 模式並不等待客戶端中斷聯接。 所有活躍事務都被回卷並且客戶端都強制斷開。 "Immediate" 模式將在沒有干淨關閉的情況下退出。這麼做將導致在重新啟動的時候的恢復。

    restart 實際上是先執行一個停止,然後緊跟一個啟動。它允許變換postmaster命令行的選項。

    reload 模式簡單地給postmaster發送一個 SIGHUP 信號,導致它重新讀取她的配置文件 (postgresql.conf,pg_hba.conf 等等) 這樣就允許修改配置文件選項而不用完全重啟系統來使之生效。

    status 模式監查一個服務器是否在指定的數據目錄運行, 如果是,那麼顯示其 PID 和調用它的命令行選項。

    kill 模式允許你給一個指定的進程發送信號。 這個功能對 Microsoft Windows 特別有用,因為那裡沒有 kill 命令。 使用 --help 查看支持的信號的名字的列表。

  選項

-D datadir
聲明該數據庫文件的文件系統位置。 如果忽略這個選項,使用環境變量 PGDATA。

-l filename
把服務器日志輸出附加在 filename 文件上。 如果該文件不存在,那麼創建它。umask設置為 077, 因此缺省時是不允許從其它用戶向日志文件訪問的。

-m mode
聲明關閉模式。mode 可以是smart, fast, 或者 immediate,或者是這三個之一的第一個字母。

-o options
聲明要直接傳遞給postmaster 的選項。

參數通常都用單或者雙引號包圍以保證它們作為一個整體傳遞。

-p path
聲 明 postmaster 可執行文件的位置。

缺省時 postmaster 是從和pg_ctl相同的目錄取出,如果不是, 那麼就是寫死的安裝目錄。除非你想干點什麼特別的事情,並且得到類似沒有找到 postmaster這樣的錯誤, 否則沒有必要使用這個選項。

-s
只打印錯誤,而不打印提示性信息。

-w
等 待啟動或者關閉的完成。在 60 秒後超時。 這個參數是關閉時的缺省值。 成功的關閉是以刪除 PID 文件為標志的。對於啟動而言, 一次成功的 psql -l 就標志著成功。 pg_ctl 將視圖使用對 psql 合適的端口,如果存在環境變量 PGPORT,那麼用它。 否則,它將查找看看在 postgresql.conf 文件裡面是否設置了一個端口。 如果都沒有,它將使用 PostgreSQL 編譯時的缺省端口(缺省是 5432)。 在等待的時候,pg_ctl 將根據啟動或者關閉的成功狀況返回一個准確的退出代碼。

-W
不等待啟動或者停止的完成。這是啟動和重起的缺省。


    環境

PGDATA
缺省數據目錄位置

PGPORT
psql 的缺省端口(由 -w 選項使用)。

其它的環境變量,參閱 postmaster。

文件

postmaster.pid
這個文件存在於數據目錄中是為了幫助 pg_ctl 判斷服務器當前是否在運行。

postmaster.opts.default
如果這個文件存在於數據目錄,pg_ctl(在 start 模式下)將把文件地內容當作傳遞給 postmaster 命令的選項傳遞過去,除非被 -o 選項覆蓋。

postmaster.opts
如果這個文件存在於數據目錄,pg_ctl(在start 模式下) 將把文件地內容當作傳遞給postmaster 命令的選項傳遞過去, 除非被 -o 選項覆蓋。這個文件的內容也會在 status 模式裡顯示出來。

postgresql.conf
這個文件在數據目錄中,會分析它以查找和 psql 一起用的合適的端口(在 start 模式裡給出 -w 的時候。)

    如果在數據目錄裡存在 postmaster.opts.default 文件,那麼該文件將作為選項傳遞給 postmaster, 除非被 -o 選項覆蓋。

    注意

    等待完全啟動還不是一個定義得很完整的操作, 如果訪問控制設置為本地客戶端在沒有手工交互的情況下不能訪問的話還可能會失效。(比如,口令認證)。

    例子

    啟動服務器

$ pg_ctl start

啟動服務器的一個例子, 等到服務器 啟動了才退出:

$ pg_ctl -w start

用於一個 postmaster 使用端口 5433,而且不帶 fsync 運行,使用:

$ pg_ctl -o "-F -p 5433" start

    停止服務器

$ pg_ctl stop
停止服務器,使用 -m 開關允許我們控制如何把後端停下來。 -w等待服務器停止。-m 聲明後端的停止模式。

    重起服務器

    這個命令幾乎等於先停止 postmaster 然後再啟動她,只不過pg_ctl保存並重新使用上一次運行 postmaster 的命令行參數。重起服務器的最簡單的方法是:

$ pg_ctl restart

重起服務器,等待其停止和重起:

$ pg_ctl -w restart

使用 5433 重起並且重起後關閉 fsync:

$ pg_ctl -o "-F -p 5433" restart

顯示服務器狀態
下面是來自 pg_ctl 的狀態輸出的例子:

$ pg_ctl status
pg_ctl: postmaster is running (pid: 13718)
Command line was:
/usr/local/pgsql/bin/postmaster ''-D'' ''/usr/local/pgsql/data'' ''-p'' ''5433'' ''-B'' ''128''
這是在重起模式裡使用的命令行 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved