Oracle para o Banco de Dados do Azure para PostgreSQL: estágios de migração
Uma migração abrangente de ponta a ponta do Oracle para o Azure Postgres requer a execução cuidadosa de várias etapas principais e estágios de migração. Esses marcos estão todos intimamente relacionados e essenciais para uma migração completa e bem-sucedida.
Descoberta
A maioria dos clientes já está bem familiarizada com as quantidades e locais das instâncias de banco de dados Oracle deles (especialmente os custos de licenciamento associados deles), no entanto, para fins de integridade, estamos destacando essa fase como um ponto de partida importante em sua migração. A fase de descoberta é o estágio ideal para determinar o escopo apropriado de seus esforços de migração. Você tem um ambiente "farm" do servidor de banco de dados Oracle que exige dezenas, centenas ou até milhares de bancos de dados para migrar? Você está considerando uma migração em escala após uma abordagem de “fábrica de migração”? Em vez disso, seu ambiente é mais adequado para a migração de ponta a ponta de um banco de dados individual juntamente com uma modernização paralela de todos os clientes conectados antes de passar para o próximo banco de dados na lista de migração? Em ambos os casos, um inventário atualizado e completo é um pré-requisito crítico e a fase descoberta garante que você esteja preparado para o sucesso.
Avaliações
As avaliações encapsulam muitos tipos diferentes de operação exploratória baseados em estimativa que são definidos individualmente pelas características exclusivas deles. Algumas avaliações são projetadas para estimar e categorizar a complexidade do esforço e dos recursos envolvidos na migração de objetos de banco de dados e com base em fatores como o número de objetos (potencialmente até explorando o número de linhas de código) que exigem atenção de um especialista no assunto. Como alternativa, outros tipos de avaliações exploram a estrutura e o tamanho dos dados subjacentes e fornecem diretrizes sobre o tempo necessário para migrar totalmente os dados para o ambiente de destino. No entanto, outro tipo de avaliação é estruturado para garantir que os recursos do Azure Postgres de destino sejam dimensionados adequadamente para acomodar a computação, a memória, o IOPS e a configuração de rede necessárias para atender aos seus dados. Uma das avaliações mais importantes que precisam ser incluídas para garantir o sucesso da migração é uma revisão completa e consideração de todos os clientes conectados e do escopo que inclui todos os aplicativos dependentes. Para resumir, ao preparar suas avaliações de migração, verifique se você está avaliando todos os aspectos da migração de banco de dados, incluindo:
- Quantidade e complexidade de conversão de código/esquema de banco de dados
- Tamanho e escala do banco de dados
- Requisitos operacionais de recurso de banco de dados
- Migração de código do aplicativo cliente
A precisão da avaliação estará intimamente vinculada às ferramentas subjacentes específicas e às plataformas de serviço envolvidas na execução e conclusão das etapas de migração subsequentes. Portanto, é importante considerar que há vários fatores que podem afetar a precisão dessas estimativas de avaliação e os resultados relatados estão diretamente correlacionados às ferramentas subjacentes utilizadas em sua avaliação de migração. É necessário ter cuidado para evitar a interpolação de saídas de estimativas de ferramentas diferentes ou combinadas ao revisar e incorporar saídas de avaliação em seus planos de migração.
Para obter mais informações, confira nosso Guia estratégico de migração do Oracle para o Azure Postgres
Migração do esquema de banco de dados
As definições de dados estruturados são uma das marcas dos mecanismos de banco de dados transacionais e uma base essencial para uma plataforma de dados bem projetada. Garantir que suas estruturas de dados Oracle exclusivas e definições de tipo de dados sejam mapeadas corretamente para as respectivas tabelas no Azure Postgres é um requisito crítico para o sucesso geral em sua migração. Embora todos os bancos de dados transacionais compartilhem muitas semelhanças, as diferenças de tipo de dados de tabela de dados e colunas existem e é necessário cuidado para garantir que seus dados não sejam perdidos, truncados ou mutilados inadvertidamente devido a definições de dados incompatíveis. Tipos de dados numéricos, tipos de dados de data/hora e tipos de dados baseados em texto são apenas alguns exemplos de áreas que precisam ser examinadas de perto ao desenvolver mapeamentos de dados correspondentes para sua migração.
Para obter informações adicionais e exemplos das diferenças entre os tipos de dados Oracle e Postgres, consulte nosso guia estratégico de migração do Oracle para o Azure Postgres
Migração de código de banco de dados
A migração de código de banco de dados refere-se ao processo de conversão de código de banco de dados escrito para Oracle para ser compatível com o mecanismo de banco de dados postgres, mantendo a funcionalidade original e as características de desempenho existentes. Esse processo envolve a conversão de consultas Oracle PL/SQL, procedimentos armazenados, funções, gatilhos e outros objetos de banco de dados para serem compatíveis com o Postgres PL/pgSQL. Felizmente, os dialetos de linguagem processual PL/SQL e Postgres PL/pgSQL da Oracle compartilham muitas semelhanças, e esse é geralmente o fator inicial que muitas organizações identificam ao selecionar o Postgres como o melhor ajuste para migrações de banco de dados Oracle. No entanto, há algumas diferenças e distinções exclusivas entre as duas linguagens de banco de dados que precisam ser consideradas. As áreas de atenção incluem: palavras-chave e sintaxe específicas do banco de dados, tratamento de exceções, funções internas, tipos de dados e incremento de sequência.
Em muitos casos, o ecossistema de extensão do Postgres pode ser um poderoso aliado para ajudar a simplificar o processo de migração de código. Por exemplo, a extensão “Oracle Functions para PostgreSQL” (oracle) fornece um conjunto de funções e pacotes de compatibilidade do Oracle internos que podem reduzir a necessidade de reescrever partes da base de código que dependem e referenciam essas funções Oracle. Usar essa abordagem baseada em compatibilidade durante a migração do código Oracle para PostgreSQL oferece vantagens significativas em termos de redução da complexidade, do tempo e do custo do processo de migração, mantendo sua lógica e funcionalidade originais de suas definições de banco de dados de origem, garante consistência nos resultados e melhora a produtividade do desenvolvedor. Todos esses benefícios se somam a uma migração de código simplificada e mais eficiente para o PostgreSQL.
Para obter informações adicionais e exemplos das diferenças entre as funções internas e operadores lógicos Oracle e Postgres, consulte nosso guia estratégico de migração do Oracle para o Azure Postgres
Migração de Dados
No ambiente controlado por dados da atualidade, seus dados são, sem dúvida, seu ativo mais valioso. Seus recursos de dados influenciam cada vez mais todos os aspectos das operações comerciais informadas e da tomada de decisões estratégicas. Portanto, é especialmente vital que seus pipelines de migração de dados operem de maneira eficiente e rápida, sejam totalmente consistentes e verificáveis e, por fim, sejam concluídos com êxito.
Sua estratégia de migração de dados deve ser cuidadosamente considerada para determinar se abordagens “offline” ou “dinâmicas” são aplicáveis ao seu ambiente. Cada estratégia de migração de dados tem uma combinação própria de benefícios e considerações, e a escolha entre “operações offline” e “dinâmica” depende dos requisitos e restrições específicos do seu ambiente. Por exemplo, as migrações “offline” podem ser mais simples e menos complexas do que as migrações “dinâmicas”, no entanto, as migrações “offline” envolvem tempo de inatividade para o período necessário para migrar totalmente seus dados para o banco de dados de destino. As migrações “dinâmicas” oferecem tempo de inatividade mínimo a nenhum, no entanto, envolvem mais complexidade e infraestrutura para supervisionar a carga inicial de dados de provisionamento e a sincronização de dados subsequente de alterações que podem ter ocorrido desde o início da migração de dados. O planejamento cuidadoso, a avaliação completa dos requisitos de negócios e a consideração dos fatores críticos específicos de sua equipe garantirão que você seja capaz de tomar uma decisão informada totalmente alinhada às suas necessidades de migração de dados.
Migração de código do aplicativo
Embora os aplicativos externos possam ser tecnicamente considerados fora do domínio das responsabilidades de migração da equipe de banco de dados, atualizar e modernizar a conectividade do banco de dados com seus aplicativos cliente é um estágio essencial e intimamente interrelacionado com o sucesso geral do percurso de migração do banco de dados. Assim como nas outras fases da migração, o esforço e a complexidade associados envolvidos na correção da compatibilidade da plataforma de aplicativo cliente dependem das circunstâncias exclusivas do seu ambiente. Seus aplicativos cliente são desenvolvidos por terceiros? Nesse caso, é importante garantir que seu produto de software seja certificado para dar suporte à plataforma de banco de dados Postgres. Seus aplicativos internos estão usando tecnologias de mapeamento relacional de objeto, como Hibernate ou Entity Framework? Em alguns casos, uma pequena configuração ou alteração de arquivo pode ser tudo o que é necessário. Por outro lado, se você tiver quantidades significativas de consultas de banco de dados e instruções inseridas em seu código, talvez seja necessário alocar mais tempo para examinar, modificar e validar adequadamente as alterações de código.
Como alternativa, há provedores de soluções de parceiros que oferecem novas abordagens capazes de traduzir operações de banco de dados do cliente herdado em tempo real. Esses serviços proxy fornecem uma abstração sobre suas camadas de banco de dados que efetivamente separam seus aplicativos de quaisquer dependências de linguagem específicas do banco de dados.
Em muitos casos, sua decisão pode incorporar uma combinação de várias estratégias e abordagem híbrida empregada coletivamente para seus respectivos pontos fortes e recursos combinados. Implantar uma camada de tradução de banco de dados em tempo real pode permitir que suas equipes implantem rapidamente os aplicativos cliente delas, fornecendo aos engenheiros e desenvolvedores de software o tempo e o planejamento de recursos apropriados para refatorar as dependências específicas do banco de dados deles para dar suporte a operações nativas do Postgres.
Importante
Cada uma dessas opções é acompanhada pelos conjuntos específicos de considerações e benefícios deles e é essencial que suas equipes revisem cuidadosamente cada uma dessas abordagens para determinar o caminho estratégico ideal a seguir.
Validação de migração
Ao migrar do Oracle para o PostgreSQL, garantir a integridade dos dados e a consistência lógica são primordiais. A validação de migração desempenha um papel crítico nesse processo, pois envolve verificar se os dados transferidos do banco de dados Oracle de origem são precisos e concluídos no sistema PostgreSQL de destino. Essa etapa é essencial não apenas para manter a confiabilidade dos dados, mas também para confirmar que o processo de migração não introduziu erros ou discrepâncias. As verificações de validação podem incluir a comparação de contagens de tabelas, a verificação de tipos de dados e estruturas, a comparação de valores de coluna no nível de linha e a garantia de que consultas complexas produzam resultados consistentes em ambos os bancos de dados. Além disso, é necessário prestar atenção especial ao lidar com diferenças na forma como os dois sistemas de banco de dados gerenciam dados, como variações em formatos de data e hora, codificação de caracteres e manipulação de valores nulos.
Isso normalmente envolve a configuração de scripts de validação automatizados que podem comparar conjuntos de dados em ambos os bancos de dados e realçar quaisquer anomalias. Ferramentas e estruturas projetadas para comparação de dados podem ser aproveitadas para simplificar esse processo. A validação pós-migração deve ser um processo iterativo, com várias verificações realizadas em vários estágios da migração para capturar problemas antecipadamente e minimizar o risco de corrupção de dados. Ao priorizar a validação de dados, as organizações podem fazer a transição com confiança do Oracle para o PostgreSQL, sabendo que os dados deles permanecem confiáveis e acionáveis.
Ajuste de desempenho
O desempenho geralmente é visto como uma das características mais tangíveis e importantes que determinam a percepção e a usabilidade de sua plataforma. Garantir que sua migração seja precisa e com bom desempenho é fundamental para alcançar o sucesso e é algo que não pode ser ignorado. Mais especificamente, o desempenho da consulta geralmente é considerado o indicador mais crítico da configuração ideal do banco de dados e geralmente é usado como um teste de litmus por seus usuários para determinar o estado de integridade do seu ambiente.
Felizmente, a plataforma do Azure incorpora nativamente as ferramentas e as funcionalidades necessárias para monitorar pontos de desempenho em uma variedade de métricas, incluindo escala, eficiência e, talvez o mais importante, velocidade. Esses recursos de Desempenho Inteligente funcionam lado a lado com os recursos de monitoramento do Postgres para simplificar seus processos de ajuste e, em muitos casos, automatizar essas etapas para adaptar e ajustar automaticamente conforme necessário. As ferramentas do Azure a seguir podem garantir que seus sistemas de banco de dados estejam operando nos melhores níveis.
Repositório de Consultas
O Repositório de Consultas do Azure Postgres serve como base para seus recursos de monitoramento. O Repositório de Consultas rastreia as estatísticas e as métricas operacionais do banco de dados Postgres, incluindo consultas, planos de explicação associados, utilização de recursos e tempo de carga de trabalho. Esses pontos de dados podem descobrir consultas de execução prolongada, consultas que consomem mais recursos, consultas executadas com mais frequência, bloat de tabela excessivo e muitas outras facetas operacionais do banco de dados. Essas informações ajudam você a gastar menos tempo para solucionar problemas identificando rapidamente quaisquer operações ou áreas que exijam atenção. O Repositório de Consultas fornece uma visão abrangente do desempenho geral da carga de trabalho identificando:
- Consultas de execução prolongada e como elas mudam ao longo do tempo.
- Os tipos de espera que estão afetando essas consultas.
- Detalhes sobre as principais consultas de banco de dados por Chamadas (número de execuções), por uso de dados, por IOPS e por uso de Arquivos temporários (possíveis candidatos a ajuste para fins de aprimoramento de desempenho).
- Fazer uma busca detalhada de uma consulta, para conferir a ID e o histórico de utilização de recursos da consulta.
- Insights mais aprofundados sobre o consumo total de recursos de bancos de dados.
Ajuste do índice
O ajuste de índice é um recurso no servidor flexível do Banco de Dados do Azure para PostgreSQL que pode aprimorar automaticamente o desempenho da carga de trabalho analisando as consultas controladas e fornecendo recomendações de índice. Ele é integrado nativamente ao Servidor Flexível do Banco de Dados do Azure para PostgreSQL e se baseia na funcionalidade do Repositório de Consultas. O ajuste de índice analisa cargas de trabalho controladas pelo Repositório de Consultas e produz recomendações de índice para melhorar o desempenho da carga de trabalho analisada ou para remover índices duplicados ou não utilizados. Isso é feito de três maneiras exclusivas:
- Identifique quais índices são benéficos para criar, pois eles podem melhorar significativamente as consultas analisadas durante uma sessão de ajuste de índice.
- Identifique índices que são duplicatas exatas e podem ser eliminados para reduzir o impacto no desempenho que sua existência e manutenção têm sobre o desempenho geral do sistema.
- Identifique índices não usados em um período configurável que podem ser candidatos à eliminação.
Ajuste inteligente
O Ajuste Inteligente é um processo de monitoramento e análise contínuo que não só aprende sobre as características da sua carga de trabalho, mas também acompanha a carga atual e o uso de recursos, como CPU ou IOPS. Ele não perturba as operações normais da carga de trabalho do aplicativo. O processo permite que o banco de dados se ajuste dinamicamente à carga de trabalho estimando a taxa de sobrecarga atual, o desempenho de gravação e a eficiência do ponto de verificação em sua instância. Com esses insights, o Ajuste Inteligente implanta ações de ajuste que aprimoram o desempenho da carga de trabalho e evitam possíveis armadilhas. Esse recurso é composto por duas funções de ajuste automático:
- Ajuste de vácuo automático: essa função acompanha a taxa de sobrecarga e ajusta as configurações de vácuo automático conforme o necessário. Ele é aplicado no uso de recursos atuais e previstos para evitar interrupções na carga de trabalho.
- Ajuste de gravações: essa função monitora o volume e os padrões das operações de gravação e modifica os parâmetros que afetam o desempenho de gravação. Esses ajustes aprimoram o desempenho e a confiabilidade do sistema, para evitar proativamente possíveis complicações.
Dica
Saiba mais sobre como aplicar o Desempenho Inteligente para maximizar suas plataformas do Azure Postgres.
Otimização da nuvem
A otimização do novo ambiente de banco de dados do Azure Postgres significa o ápice de todo o incrível esforço e trabalho árduo que levou sua equipe a chegar a este ponto-chave. A otimização de nuvem pode ser uma nova responsabilidade, especialmente quando proveniente de um ambiente de banco de dados local ou herdado. A plataforma de nuvem do Azure apresenta um conjunto novo e aprimorado de recursos valiosos e de escalabilidade de ponta, permitindo que sua equipe especifique a alocação precisa de recursos, recursos e eficiência de custo para atender às suas necessidades organizacionais hoje e bem no futuro. A Otimização de Nuvem é um processo permanente de refinamento contínuo para seu ambiente, conforme exibido por meio das lentes das práticas recomendadas associadas à Microsoft well-architected Framework: otimização de custos, excelência operacional, eficiência de desempenho, confiabilidade e segurança.
A Otimização de Custos é uma combinação de dimensionamento correto de seus recursos, a aplicação de estratégias para gerenciamento de custos e utilização eficiente de recursos.
A Excelência Operacional inclui a adoção da automação para implantações, monitoramento e dimensionamento e reduz o erro, aumentando a eficiência.
A Eficiência de Desempenho garante que você escolha os recursos apropriados para atender aos requisitos sem provisionamento excessivo, ao mesmo tempo em que aplica práticas recomendadas de escalabilidade para lidar com cargas variadas com eficiência durante os períodos operacionais de pico.
A Confiabilidade orienta você para sistemas altamente disponíveis e tolerantes a falhas projetados com mecanismos de redundância e failover para minimizar o tempo de inatividade e estratégias de recuperação de desastre para implementar planos de recuperação robustos, incluindo procedimentos de backup e restauração.
A Segurança enfatiza a importância de protocolos de identidade fortes e práticas de gerenciamento de acesso, como acesso de privilégios mínimos, autenticação sem senha e controle de acesso baseado em função. A proteção e a criptografia de dados garantem que os dados confidenciais sejam protegidos em repouso e em trânsito. A segurança também inclui ferramentas e práticas recomendadas para detecção de ameaças e respostas automatizadas para resolver incidentes de segurança prontamente. A conformidade garante que seu ambiente esteja em conformidade com os padrões e regulamentos do setor.
Para obter mais informações sobre os cinco pilares de diretrizes e conceitos básicos de implementação de otimização de nuvem, visite nosso centro do WAF (Azure Well-Architected Framework).
Para garantir que esses pilares estejam alinhados à sua implantação do Azure Postgres, examine nosso Guia de Serviço do Azure Well-Architected Framework para PostgreSQL.