[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 數據庫 > 其它 > 正文
PostgreSQL7.0手冊-管理員手冊-27. 運行時環境
編譯:何偉平 laser@zhengmai.com.cn (2001-04-21 22:44:18)
第二十七章. 運行時環境
內容 
在 Unix 裡使用 Postgres 
啟動 postmaster 
使用 pg_options 
本章描述 Postgres 和操作系統之間的關系. 
在 Unix 裡使用 Postgres
所有直接從 Unix shell 運行的 Postgres 命令都放在 “.../bin”.將這個目錄包含在你的搜索目錄中可以讓你執行命令更容易些. 
每個節點都有一套系統表.包括一個載有所有有效的 Postgres 用戶記錄的表(pg_user)。這些記錄聲明一套 Postgres 權限,比如說是否擁有Postgres 超級用戶權限,創建/刪除數據庫的權限,以及更新數據庫系統表的權限等.除非一個 Unix 用戶在這個表裡面有合適的記錄,否則他在 Postgres 裡不能做任何事情.另外,更詳細的系統表的信息可以通過查詢對應的表的方式來獲得。


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

啟動 postmaster
除非 postmaster 進程在運行,否則我們無法對數據庫進行任何操作.作為節點管理員,在運行 postmaster 之前有許多事情要注意.這些都已經在本手冊安裝和配置章節中討論過.不過,如果 Postgres 是完全按照安裝指導中描述的那樣安裝的話,下面的簡單命令就是你運行 postmaster 所要執行的: 
% postmaster
postmaster 有時會打印出對排除問題很有幫助的信息.如果你希望看到 postmaster 輸出的調試信息,你可以帶 -d 選項運行之然把輸出重定向到一個日志文件中: 
% postmaster -d > pm.log 2>&1 &
如果你不希望看到這些信息,可以鍵入 
% postmaster -S
postmaster 就會"安靜"下來.在這個例子裡不需要有一個與號("&")在行尾,因為當聲明 -S  postmaster 自動終端分離.

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

使用 pg_options
注意:由 Massimo Dal Zotto 提供
可選的參數文件 data/pg_options 包含被端用控制跟蹤信息和其他可調節參數的運行時選項.當端收到一個 SIGHUP 信號會重新讀取這個文件的信息.這就讓我們可以動態更改 Postgres 的運行時參數而不需要重新啟動它.在這個文件中聲明的選項可能是被追蹤包使用的調試標志(backend/utils/misc/trace.c)或者是端用控制其特性的一些數字參數. 
在端啟動的時候所有 pg_options 都初始化為零.新的或者被改變了的選項將被所有新啟動的端讀取.要令選項的更改對所有正在運行的端都起做用,我們要向 postmaster 發送一個 SIGHUP 信號.該信號將自動發送給所有端.我們也可以通過給指定的端發送 SIGHUP 信號的方法來讓更改只對某個端生效. 

pg_options 同樣可以使用 Postgres 的 -T 開關來聲明: 

postgres options -T "verbose=2,query,hostlookup-"
這樣,用打印錯誤和調試信息的函數就可以利用 syslog(2) 功能了.向標準輸出(stdout)或標準錯誤(stderr)打印的信息是帶有時標和端進程號前綴的字串: 
#timestamp          #pid    #message
980127.17:52:14.173 [29271] StartTransactionCommand
980127.17:52:14.174 [29271] ProcessUtility: drop table t;
980127.17:52:14.186 [29271] SIIncNumEntries: table is 70% full
980127.17:52:14.186 [29286] Async_NotifyHandler
980127.17:52:14.186 [29286] Waking up sleeping backend process
980127.19:52:14.292 [29286] Async_NotifyFrontEnd
980127.19:52:14.413 [29286] Async_NotifyFrontEnd done
980127.19:52:14.466 [29286] Async_NotifyHandler done
這種格式改善了日志的可讀性並且讓人們可以弄明白某端何時在做何事.同樣這也讓我們很容易寫出簡單的監控日志的 awk 或 perl 腳本來跟蹤數據庫錯誤或問題,或者計算交易時間統計數據. 
向 syslog (系統日志)打印的信息使用了日志工具 LOG_LOCAL0.syslog的使用可以由 syslog 的 pg_option 控制.不幸的是,許多函數調用直接用 printf() 把它們的信息輸出到標準輸出(stdout)或標準錯誤(stderr)中去了,這樣的輸出不能重定向到 syslog 而且也不會有時標.我們的建議是所有對printf的調用都用宏 PRINTF 代替,所有向標準錯誤(stderr)的輸出都用 EPRINTF 替換,這樣我們就可以將所有輸出都控制在統一的方法下. 

pg_options 文件的格式如下: 

# comment
option=integer_value  # set value for option
option                # set option = 1
option+               # set option = 1
option-               # set option = 0
注意 keyword 可以是定義在 backend/utils/misc/trace.c 裡的選項名的縮寫. 
  
例 27-1. pg_options 文件 
例如,我的 pg_options 文件包含下面的值: 

verbose=2
query
hostlookup
showportnumber
可識別的選項
目前已經定義的選項是: 
  
all 
全局追蹤標志,允許的值是: 
0 
追蹤信息(一個一個)分別打開 
1 
打開所有追蹤信息 
-1 
關閉所有追蹤信息 
verbose 
冗長標志.允許的值是: 
0 
沒有信息,這是缺省值. 
1 
打印消息信息. 
2 
打印更多消息信息. 
query 
查詢追蹤標志,允許的值是: 
0 
不打印查詢. 
1 
在一行內打印壓縮了的查詢. 
4 
打印全部查詢. 
plan 
打印查詢規劃. 
parse 
打印分析器輸出. 
rewritten 
打印重寫了的查詢. 
pretty_plan 
漂亮地(?)打印查詢規劃. 
pretty_parse 
漂亮地(?)打印分析器輸出. 
pretty_rewritten 
漂亮地(?)打印重寫了的查詢. 
parserstats 
打印分析器統計. 
plannerstats 
打印規劃器統計信息. 
executorstats 
打印執行器統計信息. 
shortlocks 
當前沒有使用但將來需要使用的特性. 
locks 
追蹤鎖. 
userlocks 
追蹤用戶鎖. 
spinlocks 
追蹤旋轉鎖. 
notify 
追蹤通知函數. 
malloc 
目前未用. 
palloc 
目前未用. 
lock_debug_oidmin 
鎖追蹤的最小的關系對象標識(oid). 
lock_debug_relid 
oid,如果為非零,由鎖追蹤的關系. 
lock_read_priority 
目前未用. 
deadlock_timeout 
死鎖檢測計時器. 
syslog 
syslog 標志.允許的值是: 
0 
消息輸出到標準輸出/標準錯誤(stdout/stderr). 
1 
消息輸出到標準輸出/標準錯誤 (stdout/stderr)和 syslog. 
2 
消息只輸出到 syslog. 
hostlookup 
打開在 ps_status 裡的主機名查找. 
showportnumber 
在 ps_status 裡顯示端口號. 
nofsync 
  
  
  
  

以每用戶為單位關閉 fsync.


--------------------------------------------------------------------------------
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
PostgreSQL7.0手冊-附錄-文檔 (2001-04-21 23:50:44)
PostgreSQL7.0手冊-附錄-日期/時間支持-CVS 倉庫 (2001-04-21 23:48:48)
PostgreSQL7.0手冊-教程 -73. Postgres SQL 高級特性 (2001-04-21 23:45:36)
PostgreSQL7.0手冊-教程 -72. 查詢語言 (2001-04-21 23:44:40)
PostgreSQL7.0手冊-教程 -71. 開始 (2001-04-21 23:42:54)
PostgreSQL7.0手冊-教程 -70. 體系結構 (2001-04-21 23:41:58)
PostgreSQL7.0手冊-教程 -69. SQL (2001-04-21 23:41:23)
PostgreSQL7.0手冊-開發者手冊 -68. 分頁文件 (2001-04-21 23:39:22)
PostgreSQL7.0手冊-開發者手冊 -67. 端接口 (2001-04-21 23:38:34)
PostgreSQL7.0手冊-開發者手冊 -66. gcc 缺省優化 (2001-04-21 23:37:20)

===更多相關===
 

★  樊強制作 歡迎分享  ★