[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Migrating from 2.0.21 to 2.3.19 on Fedora 5

At 03:38 PM 7/7/2006, Dennis Misc wrote:
>I am new to OpenLDAP, and LDAP in general, and I've been reading the Admin
>guide as well as the Faq-O-Matic, and I haven't found a clear answer to
>this, so I hope I am not asking obvious questions.  And any help is greatly
>appreciated. thank you!
>I ran slapcat on an existing OpenLDAP 2.0.21 server running on Redhat
>7.0system to create the ldif file.  (stopped ldap the service before
>slapcat)  The database files on the 2.0.21 server has "gdbm" extension.
>That went smoothly.
>The problem is that when I import that data using slapadd on a new Fedora 5
>machine (that I installed a OpenLDAP 2.3.19 server rpm package on),  the
>database files that are created have "dbb" extension.  I guess it's the
>Berkeley DB B-tree backend format. as opposed to the GNU DBM backend format.

You should consider using a "bdb" or "hdb" database in place
of an "ldbm" database (see below).

>I am not sure if this is a good idea, but I am trying to set the
>Redhat 7.0server with the older OpenLDAP software as a master that
>replicates data to
>the Fedora server.
>Since they are running different versions of OpenLDAP, will this not work?

2.0 likely cannot handle all the operational attributes
managed by a 2.3 server, but you may be able to filter
those out.  IIRC, there is a FAQ on this (if not, there
should be).

>If not, will the different database formats cause problems with the

The replication services care not what database format is used.
They are protocol based, not database based.

>Also, I am not quite clear on the differences between "backends" and
>"databases". Or more specifically how bdb or ldbm relates to databses like
>I really sound silly saying this.. I've read the answers to "what is a
>backend?" and "what is a database?" in the Faq-O-Matic, and their
>explanation wasn't quite clear to me..

Well, the terms can be confusing due to overloading.

BerkeleyDB and GDBM are database managers.  They are used
by programs, such as slapd(8), to manage databases.  In
slapd(8), a database (simplistically) holds a subtree of
directory entries and is of particular backend type.  The
backend types "bdb" and "hdb" both uses the transactional
API of the BerkeleyDB database manager.  The backend type
"ldbm" uses a variety of simple key/value pair APIs provided
by various database managers, including GDBM and BerkeleyDB,
via a lightweight database API abstraction known as LDBM.

        .gdbm   LDBM using GDBM
        .dbb    LDBM using Berkeley DB (b-tree, non-transactional)
        .dbh    LDBM using Berkeley DB (hash tables, non-transactional)
        .bdb    BDB or HDB using Berkeley DB (transactional API)

Note that ldbm with BerkeleyDB does not use Berkeley DB
transactional API.  For this and other reasons, the ldbm backend
is considered deprecated in favor of "bdb" and "hdb" backends.