亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-開發者手冊 -62. pg_options

2019-09-08 23:34:07
字體:
來源:轉載
供稿:網友
第六十二章. pg_options
注意:由 Massimo Dal Zotto 提供
參數文件 data/pg_options 包含被后端用于控制跟蹤信息和其他可調節參數的運行時選項.當后端收到一個 SIGHUP 信號后會重新讀取這個文件的信息.這就讓我們可以更改 Postgres 的運行時參數而不需要重新啟動它.在這個文件中聲明的選項可能是被追蹤包使用的調試標志(backend/utils/misc/trace.c)或者是后端用于控制其特性的一些數字參數.新的選項和參數必須在backend/utils/misc/trace.c和backend/include/utils/trace.h 里定義. 
例如,假設我們想在文件 foo.c 里加入一個條件跟蹤信息和一個可調節的數字參數.我們所要做的是向文件 backend/include/utils/trace.h 里增加常量 TRACE_FOO 和 OPT_FOO_PARAM: 

/* file trace.h */
enum pg_option_enum {
    ...
    TRACE_FOO,                  /* trace foo functions */
    OPT_FOO_PARAM,              /* foo tunable parameter */

    NUM_PG_OPTIONS              /* must be the last item of enum */
};
和文件 backend/utils/misc/trace.c 里對應的行: 
/* file trace.c */
static char *opt_names[] = {
    ...
    "foo",                      /* trace foo functions */
    "fooparam"                  /* foo tunable parameter */
};
兩個文件里的選項必須嚴格地按相同順序排列.在源文件 foo 里我們現在可以用下面的代碼代表新的標志: 
/* file foo.c */
#include "trace.h"
#define foo_param pg_options[OPT_FOO_PARAM]

int
foo_function(int x, int y)
{
    TPRINTF(TRACE_FOO, "entering foo_function, foo_param=%d", foo_param);
    if (foo_param > 10) {
        do_more_foo(x, y);
    }
}
現有的要使用私有跟蹤標志的文件只須加入下面代碼就完成了修改: 
#include "trace.h"
/* int my_own_flag = 0; -- removed */
#define my_own_flag pg_options[OPT_MY_OWN_FLAG]
在后端啟動的時候所有 pg_options 都初始化為零.如果我們需要一個不同的初始值,我們必須在 PostgresMain 開頭的地方增加一些初始化代碼.現在我們可以設置 foo_param 參數并且可以通過向文件 data/pg_options 里寫數值來打開 foo 追蹤: 
# file pg_options
...
foo=1
fooparam=17
新的選項將被所有新啟動的后端讀?。钸x項的更改對所有正在運行的后端都起做用,我們要向postmaster 發送一個 SIGHUP 信號.該信號將自動發送給所有后端.我們也可以通過給指定的后端發送 SIGHUUP 信號的方法來讓更改只對某個后端生效. 
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?。ㄏ到y日志)打印的信息使用了日志工具 LOG_LOCAL0.syslog的使用可以由 syslog 的 pg_option 控制.不幸的是,許多函數調用直接用 printf() 把它們的信息輸出到標準輸出(stdout)或標準錯誤(stderr)中去了,這樣的輸出不能重定向到 syslog 而且也不會有時標.我們的建議是所有對printf的調用都用宏 PRINTF 代替,所有向標準錯誤(stderr)的輸出都用 EPRINTF 替換,這樣我們就可以將所有輸出都控制在統一的方法下. 

使用新 pg_options 的機制比定義新的后端開關的方法更方便是因為: 

我們不必為我們想控制的每件事情都定義一個不同的開關.所有選項都作為關鍵字定義在一個存儲在數據目錄中的外部文件中。
我們不必為修改某幾個選項設置而重起Postgres.通常后端參數是為postmaster聲明,然后在后端啟動時傳遞到每個后端.現在這些選項是從文件中讀取的.
我們可以在后端運行的時候更改選項.因此我們可以在出現問題時才激活調試信息進行追蹤.我們同樣還可以對那些可調節的參數賦予不同的值進行嘗試.

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 里的選項名的縮寫. 
請參考管理員手冊中關于運行時選項的章節獲取目前支持的選項的完整列表?!?

有一些現在正使用私有變量和選項開關的代碼已經修改為利用 pg_options 特性了,主要是在 postgres.c 里.我們建議可以把所有現存的代碼都改成這樣,所以我們可以去掉很多 Postgres 命令行上的開關而且我們可以有更容易調節的選項?。@些選項都是在同一個位置存放的.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩免费av片在线观看| 亚洲男人第一av网站| 久久精品最新地址| 在线亚洲男人天堂| 日韩在线视频免费观看高清中文| 亚洲国产成人久久| 欧美专区在线播放| 国产精品免费视频xxxx| 91免费在线视频网站| 国产精品丝袜白浆摸在线| 久热精品视频在线观看一区| 成人免费高清完整版在线观看| 精品欧美国产一区二区三区| 亚洲高清一区二| 久久影视电视剧凤归四时歌| 亚洲精品国产精品国产自| 久久影院中文字幕| 色狠狠av一区二区三区香蕉蜜桃| 日韩亚洲欧美成人| 国内偷自视频区视频综合| 日韩精品在线观看一区| 欧洲成人免费视频| 日韩中文字幕在线免费观看| 最好看的2019的中文字幕视频| 亚洲成人a级网| 亚洲偷欧美偷国内偷| 亚洲国产精品免费| 欧美激情第一页xxx| 欧美精品久久一区二区| 久久亚洲成人精品| www亚洲欧美| 精品亚洲一区二区| 欧美精品九九久久| 狠狠色狠狠色综合日日五| 久久影院模特热| 日韩高清a**址| 国产成人jvid在线播放| 欧美国产第一页| 性夜试看影院91社区| 在线电影中文日韩| 亚洲精品久久视频| 久久综合久久美利坚合众国| 国产亚洲激情视频在线| 日韩人体视频一二区| 亚洲aⅴ男人的天堂在线观看| 国产精品视频精品视频| 久久人91精品久久久久久不卡| 国产成人福利夜色影视| 欧美国产日韩免费| 在线看片第一页欧美| 日韩欧美国产中文字幕| 国模私拍视频一区| 色与欲影视天天看综合网| 欧美日韩xxxxx| 欧洲亚洲妇女av| 91产国在线观看动作片喷水| 在线日韩日本国产亚洲| 久久福利视频网| 欧美日韩一区二区在线播放| 91亚洲va在线va天堂va国| 亚洲午夜久久久久久久| 在线看片第一页欧美| 欧美一级bbbbb性bbbb喷潮片| 亚洲免费福利视频| 欧美日韩成人在线观看| 精品成人国产在线观看男人呻吟| 中文国产成人精品久久一| 国产成人avxxxxx在线看| 成人性生交xxxxx网站| 欧美在线精品免播放器视频| 国产精品免费电影| 色妞一区二区三区| 久热精品视频在线免费观看| 国产va免费精品高清在线观看| 成人a在线视频| 日韩极品精品视频免费观看| 91精品国产高清自在线看超| 午夜精品久久久久久久男人的天堂| 91中文字幕在线观看| 国产精品激情av电影在线观看| 色噜噜久久综合伊人一本| 色诱女教师一区二区三区| 久久福利视频网| 欧日韩在线观看| 亚洲在线观看视频| 日韩精品中文字幕久久臀| 日韩欧美亚洲综合| 久久精品国产亚洲精品2020| 欧美一级片免费在线| 欧美精品一区二区免费| 国产一区二区三区精品久久久| 欧美日韩美女在线| 亚洲天堂av图片| 欧美理论电影在线观看| 秋霞成人午夜鲁丝一区二区三区| 国产精品国产福利国产秒拍| 国产主播在线一区| 精品国产成人av| 国产精品久久久久999| 国产99久久精品一区二区| 亚洲天堂视频在线观看| 91精品国产一区| 情事1991在线| 欧美日韩一二三四五区| 91av视频在线播放| 欧美激情按摩在线| 一区二区成人精品| 亚洲**2019国产| 亚洲成人在线网| 日韩av电影手机在线| 久久久久久久久爱| 亚洲男人天堂2024| 久久精品视频在线播放| 91色琪琪电影亚洲精品久久| 日韩黄色在线免费观看| 亚州av一区二区| 亚洲欧美一区二区三区情侣bbw| 一区二区三区高清国产| 久久亚洲春色中文字幕| 欧美大学生性色视频| 久久精品成人欧美大片古装| 国产成人免费91av在线| 亚洲精品美女在线观看| 成人网在线免费观看| 中文字幕日韩综合av| 精品久久久久久久久国产字幕| 亚洲美女av在线播放| 亚洲片国产一区一级在线观看| 一本色道久久88综合日韩精品| 北条麻妃久久精品| 中文字幕一区日韩电影| 最近2019免费中文字幕视频三| 成人免费网站在线看| 成人两性免费视频| 亚洲精品中文字幕有码专区| 91精品国产亚洲| 成人亲热视频网站| 欧美在线视频免费播放| 另类色图亚洲色图| 日韩一区二区三区国产| 欧美激情三级免费| 日韩av在线直播| 91在线国产电影| 欧美猛男性生活免费| 欧美午夜精品久久久久久人妖| 韩国一区二区电影| 欧美日韩精品在线视频| 91久久精品美女高潮| 欧美成人午夜激情| 日韩久久免费电影| 97涩涩爰在线观看亚洲| 国产精品久久久久久亚洲影视| 久久伊人精品视频| 精品少妇一区二区30p| 亚洲色图激情小说| 久久综合亚洲社区| 欧美日韩激情网| 91黑丝高跟在线| 久久精品亚洲94久久精品| 中文字幕在线看视频国产欧美在线看完整| 久久影视电视剧凤归四时歌| 亚洲国语精品自产拍在线观看| 国产精品无av码在线观看| 亚洲欧洲中文天堂|