Bom resumo, alguns pontos adicionais:
-
slapcat
despeja 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.) -
ldapadd
requer que o slapd esteja em execução,slapadd
requer que não esteja em execução -
ldapsearch
requer queslapd
esteja em execução,slapcat
nã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
/slapcat
sozinho
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. -
slapcat
está 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
. -
ldapsearch
retornará atributos dinâmicos que não são armazenados em um back-end, por exemplo,hasSubordinates
ou 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 deldapsearch
do conteúdo do diretório. -
slapcat
inclui 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 usarldapadd
para recarregar seu mestre, todos os objetos serão recriados por replicação (alteradoentryUUID
entryCSN
) Embora você possa incluir atributos operacionais usando o atributo "+" especial comldapsearch
(ouallop
overlay), 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
slapcat
nã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,ldapadd
poderá 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, oslapadd
do OpenLDAP suporta silenciosamente dados não ordenados para alguns backends. Em uma pitada, você pode usar repetidamenteslapadd
com 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. -
ldapadd
está sujeito às regras e superposições do LDAP, por exemplo integridade referencial, ppolicy (política de senha) -
slapcat
prefere usar valores de atributo codificados na base 64 para pelo menos userPassword (indicado com::
após o nome do atributo) -
ldapsearch
tem mais opções para formatação LDIF e grava atributos grandes em arquivos separados. Ele também pode lidar com referências e aliases .