PPoossttffiixx BBeerrkkeelleeyy DDBB HHoowwttoo

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

Ϥ

Postfix ϾѤ긡Τ͡ʼΥǡ١Ȥޤ
Postfix ǡ١ "type:name" Τ褦˻ꤷޤBerkeley DB  Postfix
ǡ١Τ "hash"  "btree" ƤޤPostfix Berkeley DB
ǡ١̾ϥǡ١ե̾ ".db" եå
ΤǤBerkeley DB ǡ١ postmap(1) ޥɤǴޤ

: Berkeley DB С 4  Postfix С 2.0 Ǥϥݡ
ޤ

ΥɥȤϰʲƤ򵭽ҤƤޤ:

 1. Berkeley DB 饤֥ΤʤƥǤ Postfix ιˡ

 2. ʣΥС Berkeley DB  BSD  Linux Ǥ Postfix ιˡ

 3. ѥեޥ󥹤Ĵˡ

 4. pthread 饤֥꤬Ĥʤꡣ

BBeerrkkeelleeyy DDBB 饤֥ΤʤƥǤ PPoossttffiixx ι

¿ξ UNIX  Berkeley DB ݡȤ줺˽в٤ƤޤSolaris 
HP-UXIRIXUNIXWARE ǤBerkeley DB ݡȤդ Postfix 
ӥɤˤϡhttp://www.sleepycat.com/ 饽ɤɤ
󥹥ȡ뤹ɬפޤ

ٹ: Linux ƥΥ饤֥ SASL Τ褦ʥɥѡƥ饤֥
Berkeley DB ȤäƤΤޤۤʤ Berkeley DB μȤä
Postfix 򥳥ѥ뤹ȡƥ饤֥ SASL 饤֥ꡢޤ
Postfix ȤΤɤ餫ְäСȤäƤޤ Postfix
ץबפƤޤޤ

ǶΥС Berkeley DB ˤϡʣΥС Berkeley DB 
ƱץꥱǶ¸Ǥ褦˥ܥ̾륳ѥå
"--with-uniquename" ޤ̵̤ǤϤޤ줬֤þ򤱤
ͣˡ⤷ޤ

http://www.sleepycat.com/  Berkeley DB 򥤥󥹥ȡ뤷 Postfix 
󥹥ȡ뤹ˤϡʲΤ褦ˤޤ:

    % make tidy
    % make makefiles CCARGS="-DHAS_DB -I/usr/local/BerkeleyDB.3.1/include" \
        AUXLIBS="-L/usr/local/BerkeleyDB.3.1/lib -ldb"
    % make

Τʥѥ̾ϥ󥹥ȡ뤷 DB ΥС˰¸ޤ㤨СBerkeley
DB С 2  /usr/local/BerkeleyDB ˥󥹥ȡ뤷ޤ

ٹ: Berkeley DB С 1 ˤä줿եեޥåȤ
С 2  3 ΤΤȤϸߴޤ (С 2  3 
ƱեޥåȤǤ)DB ΥСѹ顢Ƥ Postfix DB ե
ƹۤɬפ뤫⤷ޤ

ٹ: Berkeley DB С 2 ʹߤȤ硢DB 1.85 ߴ⡼ɤͭ
ʤǤͭˤ fcntl եåȤˤʤޤ

ٹ: Postfix  Berkeley DB եΤ Perl Ȥ硢
Perl Ǥ Postfix ƱС Berkeley DB Ȥɬפޤ

ʣʣΥС BBeerrkkeelleeyy DDBB  BBSSDD Ǥ PPoossttffiixx ι

BSD ƥˤʣ Berkeley DB դǽв٤ƤΤޤ
̾ Postfix ϥƥ°ƽв٤ƤǥեȤ DB С
ӥɤޤ

BSD ƥΥС DB  Postfix ۤˤϡʲ
ޥɤ񤭴ƻȤޤ:

    % make tidy
    % make makefiles CCARGS=-I/usr/include/db3 AUXLIBS=-ldb3
    % make

ٹ: Berkeley DB С 1 ˤä줿եեޥåȤ
С 2  3 ΤΤȤϸߴޤ (С 2  3 
ƱեޥåȤǤ)DB ΥСѹ顢Ƥ Postfix DB ե
ƹۤɬפ뤫⤷ޤ

ٹ: Berkeley DB С 2 ʹߤȤ硢DB 1.85 ߴ⡼ɤͭ
ʤǤͭˤ fcntl եåȤˤʤޤ

ٹ: Postfix  Berkeley DB եΤ Perl Ȥ硢
Perl Ǥ Postfix ƱС Berkeley DB Ȥɬפޤ

ʣʣΥС BBeerrkkeelleeyy DDBB  LLiinnuuxx Ǥ PPoossttffiixx ι

Linux ƥˤʣ Berkeley DB դǽв٤ƤΤޤ
̾ Postfix ϥƥ°ƽв٤ƤǥեȤ DB С
ӥɤޤ

ٹ: Linux ƥ饤֥ˤ Berkeley DB ȤäƤΤޤ
ǥեȰʳ Berkeley DB  Postfix 򥳥ѥ뤹ȡ
ƥ饤֥ޤ Postfix ȤΤɤ餫ְäСȤä
ޤ Postfix ץबפƤޤޤ

Linux ǤϡǥեȤ DB 饤֥ꤹ뤿 makedefs ץȤ
ԽɬפޤǥեȤ db.h 󥯥롼ɥեϥ٥
СˤäƥѤ뤿ᡢPostfix եɬפ
ȤΤͳǤ

ٹ: Berkeley DB С 1 ˤä줿եեޥåȤ
С 2  3 ΤΤȤϸߴޤ (С 2  3 
ƱեޥåȤǤ)DB ΥСѹ顢Ƥ Postfix DB ե
ƹۤɬפ뤫⤷ޤ

ٹ: Berkeley DB С 2 ʹߤȤ硢DB 1.85 ߴ⡼ɤͭ
ʤǤͭˤ fcntl եåȤˤʤޤ

ٹ: Postfix  Berkeley DB եΤ Perl Ȥ硢
Perl Ǥ Postfix ƱС Berkeley DB Ȥɬפޤ

ѥեޥĴĴ

Postfix  Berkeley DB ȤХåե̤Ĵ᤹2Ĥѥ᡼
󶡤Ƥޤ

  * berkeley_db_create_buffer_size (ǥե: 1ơ֥뤢 16 MBytes)
     Berkeley DB ե륳ޥɤˤäƻȤޤ:
    postalias(1)  postmap(1)"hash" եǤϡס뤬
    O(file size) Ǥʤѥեޥ󥹤ϵ®ޤ"btree"
    եǤϡס뤬Ƥ⥽Ȥ줿ϤФƤ
    ޤ󤬡ס뤬 O(file size) ǤʤСϤ
    ®ޤ

  * berkeley_db_read_buffer_size (ǥե: ơ֥뤴Ȥ 128 kBytes)
    ¾Ƥ Postfix ץˤäƻȤޤХåե
    ɤ߹ߤŬΤǤå夬ơ֥⾮硢
    ɤ߹ߤΥѥեޥ󥹤 btree ơ֥ǤʤФۤȤɥå
    ˤϰ¸ޤbtree ơ֥ξ硢å奵ϥ롼
    ΡɤΥѥΤޤΤ˽ʬ礭ʤФޤ
    иŪˤ 64 kByte ǽʬȤȤ狼äƤޤˤ뤿
    ѹĥ򸫱ۤơ̤2ܤˤޤ

pptthhrreeaadd 饤֥꤬Ĥʤ

ʲΤ褦 Postfix Υӥɤ˼Ԥ:

    undefined reference to `pthread_condattr_setpshared'
    undefined reference to `pthread_mutexattr_destroy'
    undefined reference to `pthread_mutexattr_init'
    undefined reference to `pthread_mutex_trylock'

"make makefiles" ޥɤ "-lpthread" 饤֥äƤ

    % make makefiles .... AUXLIBS="... -lpthread"

ʾξ http://www.sleepycat.com/ ޤ

