Partilhar via


Estágios de migração do Oracle To Azure Database for PostgreSQL

Uma migração abrangente de ponta a ponta do Oracle para o Azure Postgres requer a análise cuidadosa de várias etapas e estágios de migração importantes. Estes marcos estão intimamente relacionados e são essenciais para uma migração completa e bem-sucedida.

Captura de tela dos estágios de migração: descoberta, avaliação, migração de esquema, migração de código, migração de dados, migração de aplicativos, ajuste de desempenho e otimização de nuvem.

Deteção

A maioria dos clientes já está bem familiarizada com as quantidades e locais de suas instâncias de banco de dados Oracle (especialmente seus custos de licenciamento associados), no entanto, por uma questão de completude, estamos destacando esta fase como um importante ponto de partida em sua migração. A fase de descoberta é um estágio ideal para determinar o escopo apropriado de seus esforços de migração. Você tem um ambiente de "farm" de servidor de banco de dados Oracle que requer dezenas, centenas ou até milhares de bancos de dados para migrar? Você está considerando uma migração em escala seguindo 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 único banco de dados 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 de descoberta garante que você esteja preparado para o sucesso.

Avaliações

As avaliações englobam muitos tipos diferentes de operações exploratórias baseadas em estimativas, que são individualmente definidas pelas suas características únicas. 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é mesmo 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 orientação sobre o tempo necessário para migrar totalmente os dados para o ambiente de destino. Ainda outro tipo de avaliação é estruturado para garantir que seus recursos do Azure Postgres de destino sejam dimensionados adequadamente para acomodar a computação, memória, IOPS e configuração de rede necessária para atender seus dados. Uma das avaliações mais importantes que devem 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 compreende todos os aplicativos dependentes. Para resumir, ao preparar suas avaliações de migração, certifique-se de estar avaliando todos os aspetos da migração do banco de dados, incluindo:

  • Esquema de banco de dados / quantidade e complexidade de conversão de código
  • Tamanho e escala do banco de dados
  • Requisitos operacionais de recursos de banco de dados
  • Migração de código de aplicativo cliente

Sua precisão de avaliação estará intimamente ligada às ferramentas subjacentes específicas e plataformas de serviço envolvidas na execução e conclusão das etapas de migração subsequentes. Portanto, é importante considerar que existem vários fatores que podem afetar a precisão dessas estimativas de avaliação e os resultados relatados estão diretamente correlacionados com as ferramentas subjacentes utilizadas em sua avaliação de migração. Deve-se tomar cuidado para evitar a interpolação de resultados de estimativa de ferramentas diferentes ou combinadas ao revisar e incorporar resultados de avaliação em seus planos de migração.

Para obter mais informações, consulte nosso Guia de migração do Oracle para o Azure Postgres

Migração de esquema de banco de dados

As definições de dados estruturados são uma das características 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 suas respetivas 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, existem diferenças de tipo de dados de tabela de dados e coluna e é preciso tomar 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 devem 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 Oracle to Azure Postgres Migration Playbook

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. Este 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 Postgres PL/pgSQL. Felizmente, os dialetos da linguagem processual PL/SQL da Oracle e PL/pgSQL do Postgres 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. Existem, no entanto, algumas diferenças e distinções únicas entre as duas línguas das bases de dados que devem 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 seu processo de migração de código. Por exemplo, a extensão "Oracle Functions for PostgreSQL" (orafce) fornece um conjunto de funções e pacotes de compatibilidade Oracle integrados que podem reduzir a necessidade de reescrever partes da sua base de código que dependem e fazem referência a essas funções Oracle. O uso dessa abordagem baseada em compatibilidade durante a migração do código Oracle para o PostgreSQL oferece vantagens significativas em termos de redução da complexidade, do tempo e do custo do processo de migração, mantendo a lógica original e a funcionalidade das definições do banco de dados de origem, garante a consistência nos resultados e aumenta 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 funções internas Oracle e Postgres e operadores lógicos, consulte nosso Oracle to Azure Postgres Migration Playbook

Migração de Dados

No ambiente atual orientado por dados, seus dados são indiscutivelmente seu ativo mais valioso. Seus recursos de dados influenciam cada vez mais todos os aspetos de operações de negócios informadas e tomada de decisões estratégicas. Portanto, é especialmente vital que seus pipelines de migração de dados operem de forma eficiente e expedita, sejam totalmente consistentes e verificáveis e, finalmente, concluídos com sucesso.

Sua estratégia de migração de dados deve ser cuidadosamente considerada para determinar se as abordagens "offline" ou "ao vivo" são aplicáveis ao seu ambiente. Cada estratégia de migração de dados tem sua própria combinação de benefícios e considerações, e a escolha entre operações "offline" e "ao vivo" depende dos requisitos e restrições específicos do seu ambiente. Por exemplo, as migrações "offline" podem ser mais diretas e menos complexas do que as migrações "ao vivo", no entanto, as migrações "offline" envolvem tempo de inatividade pelo período de tempo necessário para migrar totalmente seus dados para o banco de dados de destino. As migrações "ao vivo" oferecem tempo de inatividade mínimo ou nulo, no entanto, envolvem mais complexidade e infraestrutura para supervisionar a carga inicial de dados de backfill e a subsequente sincronização de dados 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 da sua equipe garantirão que você seja capaz de tomar uma decisão informada totalmente alinhada com suas necessidades de migração de dados.

Migração de código de 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 para seus aplicativos cliente é um estágio essencial e estreitamente inter-relacionado para o sucesso geral de sua jornada de migração de banco de dados. Assim como nas outras fases da migração, o esforço associado e a complexidade envolvidos na correção da compatibilidade da plataforma do aplicativo cliente dependem das circunstâncias exclusivas do seu ambiente. As suas aplicações cliente são desenvolvidas por terceiros? Em caso afirmativo, é importante garantir que seu produto de software seja certificado para suportar a plataforma de banco de dados Postgres. Seus aplicativos internos estão usando tecnologias de mapeamento relacional de objetos, 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 incorporadas em seu código, talvez seja necessário alocar mais tempo para revisar, modificar e validar adequadamente suas alterações de código.

Como alternativa, existem provedores de soluções parceiras que oferecem novas abordagens capazes de traduzir operações de banco de dados de clientes legados em tempo real. Esses serviços de 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 múltiplas estratégias e abordagem híbrida empregada coletivamente por seus respetivos pontos fortes e capacidades combinadas. A implantação de uma camada de tradução de banco de dados em tempo real pode permitir que suas equipes reimplantem rapidamente seus aplicativos clientes e, ao mesmo tempo, forneçam aos engenheiros de software e desenvolvedores o tempo e o planejamento de recursos apropriados para refatorar suas dependências específicas do banco de dados para dar suporte às operações nativas do Postgres.

Importante

Cada uma dessas escolhas é acompanhada por seus próprios conjuntos particulares de considerações e benefícios, e é essencial que suas equipes analisem cuidadosamente cada uma dessas abordagens para determinar o caminho estratégico ideal a seguir.

Validação da migração

Ao migrar do Oracle para o PostgreSQL, garantir a integridade dos dados e a consistência lógica são fundamentais. A validação da migração desempenha um papel crítico nesse processo, pois envolve a verificação de que os dados transferidos do banco de dados Oracle de origem são precisos e completos no sistema PostgreSQL de destino. Esta 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 e estruturas de dados, a comparação de valores de colunas em nível de linha e a garantia de que consultas complexas produzam resultados consistentes em ambos os bancos de dados. Além disso, atenção especial deve ser dada ao lidar com diferenças na forma como os dois sistemas de banco de dados gerenciam dados, como variações nos formatos de data e hora, codificação de caracteres e manipulação de valores nulos.

Isso geralmente envolve a configuração de scripts de validação automatizados que podem comparar conjuntos de dados em ambos os bancos de dados e destacar quaisquer anomalias. Ferramentas e estruturas projetadas para comparação de dados podem ser aproveitadas para agilizar 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 detetar problemas precocemente 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 seus dados permanecem confiáveis e acionáveis.

Otimização do Desempenho

O desempenho é geralmente visto como uma das características mais tangíveis e importantes que determinam a perceção e usabilidade da sua plataforma. Garantir que sua migração seja precisa e eficiente é fundamental para alcançar o sucesso e não pode ser negligenciada. Mais especificamente, o desempenho da consulta é frequentemente considerado o indicador mais crítico da configuração ideal do banco de dados e é comumente usado como um teste decisivo pelos usuários para determinar o estado de integridade do seu ambiente.

Felizmente, a plataforma Azure incorpora nativamente as ferramentas e os recursos necessários 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 trabalham lado a lado com os recursos de monitoramento do Postgres para simplificar seus processos de ajuste e, em muitos casos, automatizar essas etapas para se adaptar e ajustar automaticamente conforme necessário. As seguintes ferramentas do Azure podem garantir que seus sistemas de banco de dados estejam operando em seus melhores níveis.

Query Store (Arquivo de Consultas)

O Repositório de Consultas para o Azure Postgres serve como base para seus recursos de monitoramento. O Repositório de Consultas rastreia as estatísticas e métricas operacionais do seu banco de dados Postgres, incluindo consultas, planos explicativos associados, utilização de recursos e tempo de carga de trabalho. Esses pontos de dados podem revelar consultas de longa duração, consultas que consomem a maioria dos recursos, as consultas executadas com mais frequência, inchaço excessivo da tabela e muitas outras facetas operacionais do seu banco de dados. Essas informações ajudam você a gastar menos tempo na solução de 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 longa duração e como elas mudam ao longo do tempo.
  • Tipos de espera que afetam essas consultas.
  • Detalhes sobre as principais consultas de banco de dados por chamadas (contagem de execução), por uso de dados, por IOPS e por uso de arquivo temporário (potenciais candidatos de ajuste para melhorias de desempenho).
  • Analise detalhadamente os detalhes de uma consulta para exibir a ID da consulta e o histórico de utilização de recursos.
  • Visão mais profunda do consumo geral de recursos de bancos de dados.

Ajuste de índice

O ajuste de índice é um recurso do Banco de Dados do Azure para servidor flexível PostgreSQL que pode melhorar automaticamente o desempenho de sua carga de trabalho analisando consultas controladas e fornecendo recomendações de índice. Ele é incorporado nativamente no Banco de Dados do Azure para o Servidor Flexível 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 descartar índices duplicados ou não utilizados. Isto é conseguido de três maneiras únicas:

  • Identifique quais índices são benéficos para criar porque eles podem melhorar significativamente as consultas analisadas durante uma sessão de ajuste de índice.
  • Identifique os índices que são duplicados exatos e podem ser eliminados para reduzir o impacto no desempenho que sua existência e manutenção têm no desempenho geral do sistema.
  • Identificar índices não utilizados num período configurável que possam ser candidatos a eliminar.

Sintonização inteligente

O Ajuste Inteligente é um processo contínuo de monitoramento e análise que não apenas aprende sobre as características de sua carga de trabalho, mas também rastreia sua carga atual e o uso de recursos, como CPU ou IOPS. Ele não perturba as operações normais da carga de trabalho do seu aplicativo. O processo permite que o banco de dados se ajuste dinamicamente à sua carga de trabalho, discernindo a taxa de inchaço 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 melhoram o desempenho da sua carga de trabalho e evitam possíveis armadilhas. Esta funcionalidade inclui duas funções de afinação automática:

  • Ajuste de vácuo automático: Esta função rastreia a taxa de inchaço e ajusta as configurações de vácuo automático de acordo. Ele leva em consideração o uso de recursos atual e previsto para evitar interrupções na carga de trabalho.
  • Ajuste de gravação: essa função monitora o volume e os padrões das operações de gravação e modifica parâmetros que afetam o desempenho de gravação. Esses ajustes melhoram o desempenho e a confiabilidade do sistema, para evitar proativamente possíveis complicações.

Gorjeta

Saiba mais sobre como aplicar o Desempenho Inteligente para maximizar suas plataformas Azure Postgres.

Otimização da Cloud

A otimização do seu novo ambiente de banco de dados Azure Postgres significa o culminar de todo o incrível esforço e trabalho árduo que levou sua equipe a chegar a este ponto-chave. A otimização da nuvem pode ser uma nova responsabilidade, especialmente quando vem de um ambiente de banco de dados local ou legado. A plataforma de nuvem do Azure apresenta um conjunto novo e aprimorado de recursos de escalabilidade valiosos e de ponta, permitindo que sua equipe "disce" a alocação precisa de recursos, recursos e eficiência de custos para atender às suas necessidades organizacionais atuais e futuras. A Otimização de Nuvem é um processo contínuo de refinamento contínuo do seu ambiente, visto através das lentes das melhores práticas associadas à estrutura bem arquitetada da Microsoft: 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, aplicação de estratégias para gerenciamento de custos e utilização eficiente de recursos.

A Excelência Operacional inclui a adoção de automação para implantações, monitoramento e dimensionamento, além de reduzir erros e aumentar 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 as práticas recomendadas de escalabilidade para lidar com cargas variáveis de forma eficiente durante os períodos operacionais de pico.

A confiabilidade orienta você para sistemas projetados altamente disponíveis e tolerantes a falhas, com mecanismos de redundância e failover para minimizar o tempo de inatividade e estratégias de recuperação de desastres 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 com privilégios mínimos, autenticação sem senha e controle de acesso baseado em função. A proteção de dados e a criptografia garantem que os dados confidenciais sejam protegidos tanto em repouso quanto em trânsito. A segurança também inclui ferramentas e práticas recomendadas para deteção de ameaças e respostas automatizadas para lidar prontamente com incidentes de segurança. A conformidade garante que seu ambiente esteja em conformidade com as normas e regulamentações do setor.

Para obter mais informações sobre os cinco pilares da orientação e fundamentos da implementação da otimização na nuvem, visite o nosso centro do Azure Well-Architected Framework (WAF).

Para garantir que esses pilares estejam alinhados à sua implantação do Azure Postgres, consulte nosso Guia de Serviço do Azure Well-Architected Framework para PostgreSQL.