Quanah,
Thanks for your response! I got it. but why openldap will not skip the insert when the entry already existed. I found some code in openldap already handle like this, anyway, it could take some effort. rc = mdb_cursor_put( mc, &key, data, MDB_NODUPDATA|MDB_APPEND|MDB_MULTIPLE ); if ( rc ) { if ( rc == MDB_KEYEXIST ) { rc = 0; continue; } rc = -1; break; } Thanks, Eric. > Date: Tue, 25 Mar 2014 18:17:44 -0700 > From: quanah@zimbra.com > To: ericxiaomingzhao@hotmail.com; openldap-technical@openldap.org > Subject: RE: question about openldap restore with command sldapadd > > > --On Wednesday, March 26, 2014 10:03 AM +0800 xiaoming zhao > <ericxiaomingzhao@hotmail.com> wrote: > > > > > Quanah, > > All, > > > > So openldap can't skip to add the entry if there is already an existing > > entry? in other database, the insert operation will check the entry > > exists or not. if exist, do nothing. if not exist, then insert it. there > > are other operation like insertupdate. > > > > do we have any option to skip the existing entry? > > slapadd is a tool used for BULK RESTORATION of the ENTIRE DB. You can skip > using -c, but it will skip ALL errors. You are *not* using the right tool > for what you are attempting to do. > > If you want to do something else, try the ldapdiff utility > (<http://www.openldap.org/faq/data/cache/612.html>) and use that to diff > your current db and your backup, and then use ldapadd to add the missing > entries. > > --Quanah > > > > -- > > Quanah Gibson-Mount > Architect - Server > Zimbra, Inc. > -------------------- > Zimbra :: the leader in open source messaging and collaboration |