>I also see this:
>Sep 21 11:44:07 ldap-dev2.Stanford.EDU slapd[9891]: [ID 399881 >local4.debug] do_syncrepl : unknown result >Sep 21 11:45:07 ldap-dev2.Stanford.EDU slapd[9891]: [ID 362707 >local4.debug] conn=32768 op=0 SEARCH RESULT tag=101 err=0 nentries=0 text= >Sep 21 11:45:53 ldap-dev2.Stanford.EDU slapd[9891]: [ID 399881 >local4.debug] do_syncrepl : unknown result I updated syncrepl.c to log the actual
error string for this case.
>This of course does a full dump of my
entire database. Which is a problem
>-- Why doesn't it simply query for the changes made since it was loaded? > >On the master, there is: > ># ldapsync, stanford.edu >dn: cn=ldapsync,dc=stanford,dc=edu >structuralObjectClass: subentry >subtreeSpecification: {} >contextCSN: 2003091621:49:05Z#0x0001#0#0000 >entryUUID: ead401c4-7d08-1027-8d06-a9c91f571ab3 >creatorsName: cn=Manager,dc=stanford,dc=edu >modifiersName: cn=Manager,dc=stanford,dc=edu >createTimestamp: 20030917031521Z >modifyTimestamp: 20030917031521Z >entryCSN: 2003091703:15:21Z#0x00c1#0#0000 >subschemaSubentry: cn=Subschema >hasSubordinates: FALSE > > >On the replica, there is: > ># syncrepl2, stanford.edu >dn: cn=syncrepl2,dc=stanford,dc=edu >structuralObjectClass: subentry >syncreplCookie: 2003091618:18:30Z#0x008a#0#0000 >subtreeSpecification: {} >entryUUID: aa811dd0-7d96-1027-991e-fd27b6d0edae >creatorsName: cn=Manager,dc=stanford,dc=edu >modifiersName: cn=Manager,dc=stanford,dc=edu >createTimestamp: 20030917201002Z >modifyTimestamp: 20030917201002Z >entryCSN: 2003091720:10:02Z#0x0026#0#0000 >subschemaSubentry: cn=Subschema >hasSubordinates: FALSE Was the above
snapshot obtained before synchronization took place ?
Also curious to know whether the provider and the
consumer replica
was in sync from the start or they are restored
from backups...
If they are restored from backups, please make sure
that the provider-side
backup contains entryCSN attribute of each
entry
(which is the case when slapcat is
used).
>
> >My understanding of syncrepl is that it should _only_ do the change that >has been made since it the DB was created, not dump the whole DB like it is >doing. If there have been changes
made since the last sync time, the provider sends the contents of
those entries
changed after the last sync time and sends the
empty entries consisting of only the name and UUID for
the unchanged ones. So, what the provider sends are
the changed entries + IDs of unchanged entries.
As an optimization, the provider will send search result
without sending any entries to the
consumer,
if there has been no changes after the last sync
time.
|