You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Davies, Matt" <m....@cgi.com> on 2020/02/11 10:24:40 UTC

Importing a backup of data

Hi there

A colleague of mine recently exported what we believed to be all the data from a running apacheds v24 server like so

ldapsearch -h hostname -x -p 10389 -b "dc=org" -s sub "(ObjectClass=)" + > backup_060220.ldif

I've then ran through a number of ldif scripts, adding them to a new installation to build up the same structure on a different machine, but when I try to add the backup file it's failing right at the start

ldapadd -h localhost -p 10389 -x -w [PASSWORD] -D "uid=admin,ou=system"  -f /tmp/backup_060220.ldif

adding new entry "dc=DansOrg2,dc=org"
ldap_add: Object class violation (65)
	additional info: OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUEST
Message ID : 2
    Add Request :
Entry
    dn[n]: dc=DansOrg2,dc=org

    subschemaSubentry: cn=schema
    createTimestamp: 20191018141712.279Z
    entryUUID: a98fa576-d440-49d5-b336-5f175a5c619e
    entryDN: dc=DansOrg2,dc=org
    nbSubordinates: 2
    entryCSN: 20191018141712.279000Z#000000#001#000000
    entryParentId: 2115906e-3e4d-433e-95f3-3311038027b2
    nbChildren: 2
    creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
: ERR_60 Entry dc=DansOrg2,dc=org does not contain a STRUCTURAL ObjectClass


Looking at the backup ldif file, there are numerous entries at the beginning that don't have any objectclass defined, here's the first one

# DansOrg2.org
dn: dc=DansOrg2,dc=org
entryCSN: 20191018141712.279000Z#000000#001#000000
nbSubordinates: 2
nbChildren: 2
createTimestamp: 20191018141712.279Z
creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
subschemaSubentry: cn=schema
entryDN: dc=DansOrg2,dc=org
entryUUID: a98fa576-d440-49d5-b336-5f175a5c619e
entryParentId: 2115906e-3e4d-433e-95f3-3311038027b2

We're very new to apacheds, so I don’t know if we're creating the backup incorrectly, or importing it incorrectly, or a bit of both.

I don't really understand how it could import without an object class.

Any help or advice would be very welcome.

Thanks

Matt
 
 


Re: Importing a backup of data

Posted by Emmanuel Lécharny <el...@gmail.com>.
On 11/02/2020 14:40, Davies, Matt wrote:
> Thanks Emmanuel
>
> I've got to that bit, and I'm seeing loads of data now, much much better
>
> The only issue now is that it's not in the correct order, and it's failing creating items, when their parent item hasn't been created yet but is further down in the file.
>
> We're not passing a -S option, but we are passing a -s, but I don't think that relates to the order of the results, whilst -S does.
>
> Any ideas what switch to use to ensure the results follow the correct parent first pattern so I can import it?

Sadly, there is no such option that enforces the ordering the way you 
want. The only solution is to inject the file until it get accepted 
fully, discarding the errors (ldapadd -c ...). Otherwise, you have to 
massage the file 'by hand'.

Ldap is not necessarily funny...



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org


RE: Importing a backup of data

Posted by "Davies, Matt" <m....@cgi.com>.
Thanks Emmanuel

I've got to that bit, and I'm seeing loads of data now, much much better

The only issue now is that it's not in the correct order, and it's failing creating items, when their parent item hasn't been created yet but is further down in the file.

We're not passing a -S option, but we are passing a -s, but I don't think that relates to the order of the results, whilst -S does.

Any ideas what switch to use to ensure the results follow the correct parent first pattern so I can import it?

Thanks again Emmanuel


________________________________________
From: Emmanuel Lécharny [elecharny@gmail.com]
Sent: 11 February 2020 13:11
To: dev@directory.apache.org
Subject: Re: Importing a backup of data

On 11/02/2020 11:24, Davies, Matt wrote:
> Hi there
>
> A colleague of mine recently exported what we believed to be all the data from a running apacheds v24 server like so
>
> ldapsearch -h hostname -x -p 10389 -b "dc=org" -s sub "(ObjectClass=)" + > backup_060220.ldif
>
> I've then ran through a number of ldif scripts, adding them to a new installation to build up the same structure on a different machine, but when I try to add the backup file it's failing right at the start
>
> ldapadd -h localhost -p 10389 -x -w [PASSWORD] -D "uid=admin,ou=system"  -f /tmp/backup_060220.ldif
>
> adding new entry "dc=DansOrg2,dc=org"
> ldap_add: Object class violation (65)
>       additional info: OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUEST
> Message ID : 2
>      Add Request :
> Entry
>      dn[n]: dc=DansOrg2,dc=org
>
>      subschemaSubentry: cn=schema
>      createTimestamp: 20191018141712.279Z
>      entryUUID: a98fa576-d440-49d5-b336-5f175a5c619e
>      entryDN: dc=DansOrg2,dc=org
>      nbSubordinates: 2
>      entryCSN: 20191018141712.279000Z#000000#001#000000
>      entryParentId: 2115906e-3e4d-433e-95f3-3311038027b2
>      nbChildren: 2
>      creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
> : ERR_60 Entry dc=DansOrg2,dc=org does not contain a STRUCTURAL ObjectClass
>
>
> Looking at the backup ldif file, there are numerous entries at the beginning that don't have any objectclass defined, here's the first one
>
> # DansOrg2.org
> dn: dc=DansOrg2,dc=org
> entryCSN: 20191018141712.279000Z#000000#001#000000
> nbSubordinates: 2
> nbChildren: 2
> createTimestamp: 20191018141712.279Z
> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
> subschemaSubentry: cn=schema
> entryDN: dc=DansOrg2,dc=org
> entryUUID: a98fa576-d440-49d5-b336-5f175a5c619e
> entryParentId: 2115906e-3e4d-433e-95f3-3311038027b2
>
> We're very new to apacheds, so I don’t know if we're creating the backup incorrectly, or importing it incorrectly, or a bit of both.
>
> I don't really understand how it could import without an object class.

You specified that you wanted only the operational attributes in your
search request ( the '+' at the end of ...-s sub "(ObjectClass=)" +)

Replace it with '*', that should do the trick. Or use '*' and '+'.


Note : you should normally not specify either of them. The operational
attributes are internal attributes that are not necessarily needed
(except in some corner cases) and teh default is for a search to return
all the other attributes (ie you don't have to add the '*')


Hope it helps.

Emmanuel

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org


Re: Importing a backup of data

Posted by Emmanuel Lécharny <el...@gmail.com>.
On 11/02/2020 11:24, Davies, Matt wrote:
> Hi there
>
> A colleague of mine recently exported what we believed to be all the data from a running apacheds v24 server like so
>
> ldapsearch -h hostname -x -p 10389 -b "dc=org" -s sub "(ObjectClass=)" + > backup_060220.ldif
>
> I've then ran through a number of ldif scripts, adding them to a new installation to build up the same structure on a different machine, but when I try to add the backup file it's failing right at the start
>
> ldapadd -h localhost -p 10389 -x -w [PASSWORD] -D "uid=admin,ou=system"  -f /tmp/backup_060220.ldif
>
> adding new entry "dc=DansOrg2,dc=org"
> ldap_add: Object class violation (65)
> 	additional info: OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUEST
> Message ID : 2
>      Add Request :
> Entry
>      dn[n]: dc=DansOrg2,dc=org
>
>      subschemaSubentry: cn=schema
>      createTimestamp: 20191018141712.279Z
>      entryUUID: a98fa576-d440-49d5-b336-5f175a5c619e
>      entryDN: dc=DansOrg2,dc=org
>      nbSubordinates: 2
>      entryCSN: 20191018141712.279000Z#000000#001#000000
>      entryParentId: 2115906e-3e4d-433e-95f3-3311038027b2
>      nbChildren: 2
>      creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
> : ERR_60 Entry dc=DansOrg2,dc=org does not contain a STRUCTURAL ObjectClass
>
>
> Looking at the backup ldif file, there are numerous entries at the beginning that don't have any objectclass defined, here's the first one
>
> # DansOrg2.org
> dn: dc=DansOrg2,dc=org
> entryCSN: 20191018141712.279000Z#000000#001#000000
> nbSubordinates: 2
> nbChildren: 2
> createTimestamp: 20191018141712.279Z
> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
> subschemaSubentry: cn=schema
> entryDN: dc=DansOrg2,dc=org
> entryUUID: a98fa576-d440-49d5-b336-5f175a5c619e
> entryParentId: 2115906e-3e4d-433e-95f3-3311038027b2
>
> We're very new to apacheds, so I don’t know if we're creating the backup incorrectly, or importing it incorrectly, or a bit of both.
>
> I don't really understand how it could import without an object class.

You specified that you wanted only the operational attributes in your 
search request ( the '+' at the end of ...-s sub "(ObjectClass=)" +)

Replace it with '*', that should do the trick. Or use '*' and '+'.


Note : you should normally not specify either of them. The operational 
attributes are internal attributes that are not necessarily needed 
(except in some corner cases) and teh default is for a search to return 
all the other attributes (ie you don't have to add the '*')


Hope it helps.

Emmanuel

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org