Bom resumo, alguns pontos adicionais:
-
slapcatdespeja de qualquer que seja o backend de armazenamento direto (local), ele não precisa ser Berkeley (hdb ou bdb), ele também funciona com OLC (cn=config). Despeja para o formato LDIF . (Por direta eu quero dizer diretamente gerenciado pelo OpenLDAP, não por exemplo, um backend SQL, mesmo que seja armazenado localmente.) -
ldapaddrequer que o slapd esteja em execução,slapaddrequer que não esteja em execução -
ldapsearchrequer queslapdesteja em execução,slapcatnão se importa se está sendo executado com um back-end do BDB, como você observou
Resumindo:
-
slapcaté o caminho para obter um bom backup que você pode restaurar rapidamente, embora com tempo de inatividade no mestre (você pode contornar isso com vários tipos de configuração de replicação). Isso é o que você deve usar para um backup geral e backups pré-upgrade. -
ldapsearch(sem+) vai te dar um backup portável que você provavelmente pode carregar com pouca dificuldade em qualquer outro servidor de diretório, mas será apenas uma restauração viável em uma configuração simples do OpenLDAP ( sem replicação, sem sobreposições especiais, sem reescrever), e se você não se importa em preservar metadados UUID / create / modify. Você precisará de arquivos de esquema extras que acompanhem seus dados também. -
ldapadd(usando sua outra identidadeldapmodify) pode ser usado para aplicar facilmente modificações LDAP (modificar, excluir e renomear objetos) que não são viáveis ou possíveis comslapadd/slapcatsozinho
Para a maioria dos administradores, as principais considerações surgem do conteúdo ligeiramente diferente do LDIF em cada caso e do requisito de que slapd esteja em execução (ou não). As diferenças mais importantes são:
-
slapcaté mais rápido porque simplesmente despeja o banco de dados, ignorando os overheads do protocolo LDAP, autenticação, controle de acesso, limites de tempo e objeto, sobreposições; e não pesquisa de acordo com a hierarquia LDAP. -
slapaddé mais rápido (novamente, sem overheads do protocolo LDAP) e, no caso de você estar restaurando um backup em bom estado, pode executar em modo rápido (-q) para acelerar grandes importações . Você também pode desativar a verificação de esquema (-s), embora note que pequenas alterações no esquema ou validação de dados entre as versões do OpenLDAP não são desconhecidas. -
slapcatestá limitado a bancos de dados locais, ele não será cruzado para outros diretórios (por exemplo, comback-ldap,back-meta) comoldapsearch. O mesmo se aplica aslapadd/ldapadd. -
ldapsearchretornará atributos dinâmicos que não são armazenados em um back-end, por exemplo,hasSubordinatesou aqueles mantidos por sobreposições (por exemplo,slapo-memberof). Você terá problemas para carregá-los comldapadd(por exemplo, atributos operacionais sem modificação do usuário). Reescrevendo (slapo-rwm) também pode distorcer a visão deldapsearchdo conteúdo do diretório. -
slapcatinclui atributos internos (operacionais), se você estiver usando a replicação, esses atributos serão críticos. Com a replicação, você é um pouco menos dependente de backups, mas se usarldapaddpara recarregar seu mestre, todos os objetos serão recriados por replicação (alteradoentryUUIDentryCSN) Embora você possa incluir atributos operacionais usando o atributo "+" especial comldapsearch(ouallopoverlay), isso não é a mesma coisa queslapcat, consulte o ponto anterior para saber por que isto é tão. Esses atributos também incluem criar / modificar DN e timestamps, que podem ser importantes para alguns aplicativos. - porque
slapcatnão observa a hierarquia LDAP (ordenação implícita), não há garantia de que sua ordenação de dados será viável comldapadd- ou seja, mesmo se você remover os atributos operacionais,ldapaddpoderá reclamar porque sub-ordenadas podem aparecer diante de seus superiores (pais). As especificações do LDAP exigem que um pai exista, mas também deixam o resultado da pesquisa ordenado indefinido a esse respeito. Veja o comentário de Howard abaixo, oslapadddo OpenLDAP suporta silenciosamente dados não ordenados para alguns backends. Em uma pitada, você pode usar repetidamenteslapaddcom a opção continuar no erro (-c) até que todos os pais "fora de ordem" sejam criados, parando quando você não receber mais nenhum código de erro 32 (nenhum desses objetos , significando pai ausente) e receber apenas o código 68 (já existente) para cada objeto. -
ldapaddestá sujeito às regras e superposições do LDAP, por exemplo integridade referencial, ppolicy (política de senha) -
slapcatprefere usar valores de atributo codificados na base 64 para pelo menos userPassword (indicado com::após o nome do atributo) -
ldapsearchtem mais opções para formatação LDIF e grava atributos grandes em arquivos separados. Ele também pode lidar com referências e aliases .