Eu gostaria de fazer uma cópia exata (domínios, conjuntos de dados de recursos, classes de recursos etc.) de um banco de dados SDE para um banco de dados geográfico de arquivos.
Eu tentei várias possibilidades, incluindo:
- usando o processo de cópia (gerenciamento de dados)
- criando um novo GDB e copiando manualmente cada conjunto de dados de recursos do SDE
- exportando um documento da área de trabalho xml do SDE e importando-o para o GDB
O Copy_management
processo não parece funcionar para copiar uma SDE para um GDB, pois os tipos de dados de entrada e saída devem corresponder.
O processo de importação de cada conjunto de dados de recursos para um novo GDB provavelmente poderia ser automatizado usando o Copy_management, iterando cada conjunto de dados de recursos, embora pareça que isso poderia causar problemas em uma cópia incompleta se houvesse um erro em um dos processos.
Exportar e importar áreas de trabalho xml parece funcionar, embora esse processo crie arquivos incrivelmente grandes quando o processo é usado em grandes bancos de dados geográficos.
Existe uma maneira mais direta de copiar o conteúdo e o esquema de uma SDE para um GDB do que as maneiras mencionadas, de uma maneira que possa ser automatizada?
Caso contrário, existem razões pelas quais as possibilidades acima não devem ser usadas nesse processo?
Respostas:
A única maneira de obter uma cópia verdadeira dos dados (domínios, conjuntos de dados, relacionamentos etc.) é usar o método manual de copiar e colar no catálogo. A ESRI ainda não nos deu a capacidade de transferir esses dados de qualquer outra maneira com uma única operação que pode ser script facilmente.
Eu tenho um processo noturno que copia meus dois bancos de dados SDE principais para arquivar geodatabases para Continuidade de Operações. Isso ocorre para que, em caso de emergência, minha equipe tenha alguns dados para trabalhar até que minha loja de TI possa reconstruir meu SDE a partir do backup. Após muitas tentativas e erros, decidi que podemos conviver com as limitações do uso de FeatureClassToFeatureClass_conversion e TableToTable_conversion para transferir nossos dados todas as noites.
Sim, perdemos algumas das funcionalidades do banco de dados geográficos, mas agora ele é executado sem vigilância à noite e está pronto para ser utilizado assim que o receber. No meu caso, a única funcionalidade que realmente falta (assumindo a operação em modo de emergência) é que minhas classes de relacionamento estão quebradas porque a conversão redefine os ObjectIDs que vinculam as duas tabelas.
Até que a ESRI nos dê mais opções, você terá que analisar o que está disposto a sacrificar no momento; tempo e esforço ou funcionalidade?
fonte
Eu sei que este post é um pouco antigo, mas eu gostaria de compartilhar minha resposta desde que me deparei com o mesmo problema. O script a seguir DEVE copiar todas as tabelas, classes de recursos e relacionamentos que não estão em um conjunto de dados e também copiará todos os conjuntos de dados, incluindo as classes de recursos, topologia, etc. dentro do conjunto de dados. Irá ignorar quaisquer erros durante a cópia e continuar. Ele produzirá um arquivo de log que contém dados como a contagem de itens do banco de dados de origem e a contagem de itens de destino, para que você possa comparar a cópia e também registrará os erros encontrados.
Eu tive muita sorte com isso. Eu estava replicando um banco de dados SDE para um geodatabase de arquivo. Ainda não fiz muitos testes nesse script, pois ele atendeu a todas as minhas necessidades. Eu testei usando o ArcGIS 10.3. Além disso, uma coisa a observar, eu estava conversando com alguém que usou esse script e eles tiveram um problema ao copiar certos conjuntos de dados devido a permissões impróprias e tabelas vazias.
Lêmure - por que não criar seus relacionamentos com base em um ID global em vez do ID do objeto? Que seus relacionamentos seriam preservados. Se você não criou IDs globais, eu o recomendo.
-atualizar
Adicionei um pouco mais de lógica ao código para lidar com caminhos de conexão de banco de dados incorretos e melhor registro e tratamento de erros:
fonte
Eu usei um script semelhante ao de Peter acima e tive boa sorte, embora o dele seja melhor. Uma coisa a salientar que pode atrapalhar alguém é se você estiver usando geoprocessamento python de 64 bits e tiver o ArcFM carregado no ESRI, ele falhará em todos os recursos que foram configurados para usar o ArcFM ou Designer com um ERROR 000260. Isso é porque você precisa usar python de 32 bits ou o material do ArcFM não será licenciado corretamente.
Para obter uma descrição mais detalhada do uso do ArcPy de 32 bits, consulte os dois primeiros comentários sobre este segmento no Exchange
https://infrastructurecommunity.schneider-electric.com/docs/DOC-2563
fonte
Se você possui privilégios de administrador, pode usar comandos simples de copiar e colar para exportar ou importar sde para arquivar geo-database vise versa e dê uma olhada aqui para obter mais detalhes.
fonte