Phases de migration d’Oracle vers Azure Database pour PostgreSQL
Une migration complète de bout en bout d’Oracle vers Azure Postgres nécessite l’exécution minutieuse de plusieurs étapes et phases de migration clés. Ces jalons sont tous étroitement liés et essentiels à une migration complète et réussie.
Découverte
La plupart des clients sont déjà bien familiarisés avec les quantités et les emplacements de leurs instances de base de données Oracle (en particulier leurs coûts de licence associés), mais à des fins d’exhaustivité, nous mettons en évidence cette phase comme un point de départ important dans votre migration. La phase de découverte est une étape idéale pour déterminer l’étendue appropriée de vos efforts de migration. Disposez-vous d’un environnement de « batterie » de serveurs de base de données Oracle nécessitant la migration de dizaines, de centaines ou même de milliers de bases de données ? Envisagez-vous une migration à grande échelle en suivant une approche de « fabrique de migration » ? Ou bien, votre environnement est-il plus adapté à la migration de bout en bout d’une base de données unique en même temps qu’une modernisation parallèle de tous les clients connectés avant de passer à la base de données suivante dans la liste de migration ? Dans les deux cas, un inventaire à jour et complet est un prérequis essentiel, et la phase de découverte accroît vos chances de réussite.
Évaluations
Les évaluations encapsulent de nombreux types d’opérations exploratoires basées sur des estimations qui sont définies individuellement par leurs caractéristiques uniques. Certaines évaluations sont conçues pour estimer et classer la complexité des efforts et des ressources impliqués dans la migration d’objets de base de données, et basées sur des facteurs tels que le nombre d’objets (voire même sur l’exploration du nombre de lignes de code) nécessitant une attention de la part d’un expert technique. D’autres types d’évaluations explorent la structure et la taille des données sous-jacentes, et fournissent des indications concernant la durée nécessaire à la migration complète des données vers l’environnement de destination. Un autre type d’évaluation est structuré afin de garantir que vos ressources Azure Postgres de destination sont correctement mises à l’échelle pour prendre en charge la configuration de calcul, de mémoire, d’IOPS et de réseau requise pour traiter vos données. L’une des évaluations les plus importantes qui doivent être incluses pour garantir la réussite de votre migration est un examen approfondi et une prise en compte de tous les clients connectés et de l’étendue englobant toutes les applications dépendantes. Pour résumer, lors de la préparation de vos évaluations de migration, vous devez veiller à évaluer tous les aspects de votre migration de base de données, notamment :
- Schéma de base de données / quantité et complexité de conversion de code
- Taille et mise à l’échelle de la base de données
- Exigences en matière d’exploitation des ressources de base de données
- Migration du code d’application cliente
La précision de votre évaluation sera étroitement liée aux outils et plateformes de service sous-jacents spécifiques impliqués dans l’exécution et l’achèvement des étapes de migration suivantes. Il est donc important de savoir qu’il existe plusieurs facteurs qui peuvent avoir un impact sur la précision de ces estimations d’évaluation, et que les résultats signalés sont directement corrélés aux outils sous-jacents utilisés dans votre évaluation de migration. Veillez à éviter d’interpoler les sorties d’estimation à partir d’outils différents ou combinés lors de l’examen et de l’incorporation de sorties d’évaluation dans vos plans de migration.
Pour plus d’informations, consultez notre playbook sur la migration d’Oracle vers Azure Postgres.
Migration du schéma de base de données
Les définitions de données structurées sont l’une des caractéristiques des moteurs de base de données transactionnels, et elles constituent une base essentielle pour une plateforme de données bien conçue. S’assurer que vos définitions de types de données et structures de données Oracle uniques seront correctement mappées à leurs tables respectives dans Azure Postgres est une exigence essentielle pour la réussite globale de votre migration. Bien que toutes les bases de données transactionnelles partagent de nombreuses caractéristiques, il existe des différences de types de données de table et de données de colonne, et vous devez veiller à ce que vos données ne soient pas tronquées, altérées ou perdues par inadvertance à cause de définitions de données incompatibles. Les types de données numériques, les types de données date/heure, et les types de données textuels ne sont que quelques exemples d’éléments qui doivent être étroitement examinés lors du développement de mappages de données correspondants pour votre migration.
Pour plus d’informations et pour obtenir des exemples des différences entre les types de données Oracle et Postgres, consultez notre playbook sur la migration d’Oracle vers Azure Postgres.
Migration du code de base de données
La migration du code de base de données fait référence au processus de conversion du code de base de données écrit pour Oracle afin qu’il soit compatible avec le moteur de base de données Postgres, tout en conservant à la fois les fonctionnalités d’origine et les caractéristiques de performances existantes. Ce processus implique la conversion des requêtes Oracle PL/SQL, des procédures stockées, des fonctions, des déclencheurs, et d’autres objets de base de données afin qu’ils soient conformes à Postgres PL/pgSQL. Heureusement, les dialectes de langage de procédure PL/SQL d’Oracle et PL/pgSQL de Postgres partagent de nombreuses similitudes, et il s’agit généralement du facteur initial que de nombreuses organisations identifient lors de la sélection de Postgres comme étant le meilleur choix pour les migrations de bases de données Oracle. Toutefois, il existe certaines différences et distinctions uniques entre les deux langages de base de données qui doivent être prises en compte. Les zones auxquelles il convient de prêter attention sont les suivantes : mots clés et syntaxe propres à la base de données, gestion des exceptions, fonctions intégrées, types de données, et incrémentation de séquence.
Dans de nombreux cas, l’écosystème d’extension Postgres peut être un allié puissant pour faciliter la rationalisation de votre processus de migration du code. Par exemple, l’extension « Oracle Functions pour PostgreSQL » (orafce) fournit un ensemble de fonctions et de packages de compatibilité Oracle intégrés qui peuvent réduire la nécessité de réécrire des parties de votre base de code qui référencent et s’appuient sur ces fonctions Oracle. L’adoption de cette approche basée sur la compatibilité pendant la migration du code Oracle vers PostgreSQL offre des avantages significatifs en termes de réduction de la complexité, du temps et du coût du processus de migration, tout en conservant votre logique d’origine et les fonctionnalités de vos définitions de bases de données sources, garantit la cohérence des résultats, et améliore la productivité des développeurs. Tous ces avantages s’ajoutent, et ont comme conséquence une migration de code vers PostgreSQL simplifiée et plus efficace.
Pour plus d’informations et pour obtenir des exemples des différences entre les opérateurs logiques et les fonctions intégrés Oracle et Postgres, consultez notre playbook sur la migration d’Oracle vers Azure Postgres.
Migration de données
Dans l’environnement piloté par les données d’aujourd’hui, vos données sont sans doute votre ressource la plus précieuse. Vos ressources de données influencent de plus en plus chaque aspect de la prise de décision éclairée en matière de stratégie et d’opérations commerciales. Par conséquent, il est particulièrement essentiel que vos pipelines de migration de données fonctionnent efficacement et avec rapidité, qu’ils soient entièrement cohérents et vérifiables, et qu’ils s’achèvent avec succès.
Votre stratégie de migration de données doit être soigneusement réfléchie, afin de déterminer si l’approche « hors connexion » ou « dynamique » s’applique à votre environnement. Chaque stratégie de migration de données a sa propre combinaison d’avantages et de considérations, et le choix entre les opérations « hors connexion » et « dynamiques » dépend des exigences et contraintes spécifiques de votre environnement. Par exemple, les migrations « hors connexion » peuvent être plus simples et moins complexes que les migrations « dynamiques », mais les migrations « hors connexion » impliquent un temps d’arrêt durant la période nécessaire pour migrer entièrement vos données vers votre base de données de destination. Les migrations « dynamiques » offrent un temps d’arrêt minimal, voire nul, mais elles impliquent davantage de complexité et d’infrastructure pour superviser la charge initiale des données de remplissage et la synchronisation ultérieure des données portant sur les modifications qui peuvent s’être produites depuis le début de la migration des données. Une planification minutieuse, une évaluation approfondie des exigences métier, et la prise en compte des facteurs critiques spécifiques de votre équipe vous permettront de prendre une décision éclairée entièrement alignée sur vos besoins en matière de migration de données.
Migration du code d’application
Bien que les applications externes puissent être considérées techniquement en dehors du domaine de responsabilité de l’équipe de migration de base de données, la mise à jour et la modernisation de la connectivité de la base de données à vos applications clientes est une phase essentielle et étroitement liée à la réussite globale de votre parcours de migration de base de données. Comme pour les autres phases de votre migration, l’effort et la complexité associés impliqués dans la correction de la compatibilité de votre plateforme d’application cliente dépendent des circonstances uniques de votre environnement. Vos applications clientes sont-elles développées par un tiers ? Dans ce cas, il est important de s’assurer que leur produit logiciel est certifié comme prenant en charge la plateforme de base de données Postgres. Vos applications internes utilisent-elles des technologies de mappage relationnel d’objet, telles que Hibernate ou Entity Framework ? Dans certains cas, une petite configuration ou modification de fichier peut être nécessaire. À l’inverse, si vous avez des quantités significatives de requêtes et d’instructions de base de données incorporées dans votre code, vous devrez peut-être allouer plus de temps pour examiner, modifier et valider correctement vos modifications de code.
En guise d’alternative, certains fournisseurs de solutions partenaires offrent de nouvelles approches capables de traduire les opérations de base de données clientes héritées en temps réel. Ces services proxy fournissent une abstraction sur vos couches de base de données qui dissocient efficacement vos applications des dépendances de langage propres à la base de données.
Dans de nombreux cas, votre décision peut incorporer une combinaison de plusieurs stratégies et approches hybrides collectivement employées pour leurs forces respectives et leurs capacités combinées. Le déploiement d’une couche de traduction de base de données en temps réel peut permettre à vos équipes de redéployer rapidement leurs applications clientes tout en fournissant à vos ingénieurs logiciels et développeurs une planification appropriée du temps et des ressources afin de refactoriser leurs dépendances propres à la base de données pour prendre en charge les opérations natives Postgres.
Important
Chacun de ces choix est accompagné de ses propres ensembles de considérations et d’avantages, et il est essentiel que vos équipes examinent soigneusement chacune de ces approches afin de déterminer le chemin stratégique idéal pour l’avenir.
Validation de la migration
Lors de la migration d’Oracle vers PostgreSQL, la garantie de l’intégrité des données et de la cohérence logique est primordiale. La validation de la migration joue un rôle essentiel dans ce processus, car elle implique de vérifier que les données transférées à partir de la base de données Oracle source sont justes et complètes dans le système PostgreSQL cible. Cette étape est essentielle non seulement pour maintenir la fiabilité des données, mais aussi pour confirmer que le processus de migration n’a pas introduit d’erreurs ni d’incohérences. Les vérifications de validation peuvent inclure la comparaison du nombre de tables, la vérification des types de données et des structures, la comparaison des valeurs de colonnes au niveau des lignes, et la garantie que les requêtes complexes produisent des résultats cohérents dans les deux bases de données. En outre, une attention particulière doit être accordée lors de la gestion des différences dans la façon dont les deux systèmes de base de données gèrent les données, telles que les variations dans les formats de date et d’heure, l’encodage de caractères et la gestion des valeurs Null.
Cela implique généralement de configurer des scripts de validation automatisés qui peuvent comparer des jeux de données dans les deux bases de données et mettre en évidence toutes les anomalies. Des outils et infrastructures conçus pour la comparaison des données peuvent être utilisés pour simplifier ce processus. La validation post-migration doit être un processus itératif, avec plusieurs vérifications effectuées à différentes phases de la migration en vue de détecter les problèmes dès le départ et de réduire le risque d’altération des données. En hiérarchisant la validation des données, les organisations peuvent passer d’Oracle à PostgreSQL en toute confiance, en sachant que leurs données resteront fiables et exploitables.
Réglage des performances
Les performances sont généralement perçues comme l’une des caractéristiques les plus tangibles et importantes qui déterminent la perception et la facilité d’utilisation de votre plateforme. S’assurer que votre migration est précise et performante est primordial pour sa réussite, et cela ne doit pas être ignoré. Plus précisément, les performances des requêtes sont souvent considérées comme l’indicateur le plus critique de la configuration optimale de la base de données, et elles sont couramment utilisées comme principal critère par vos utilisateurs pour déterminer l’état d’intégrité de votre environnement.
Heureusement, la plateforme Azure intègre en mode natif les outils et les fonctionnalités nécessaires pour surveiller les points de performances sur une variété de métriques, notamment la mise à l’échelle, l’efficacité, et peut-être plus important encore, la vitesse. Ces fonctionnalités de performances intelligentes fonctionnent main dans la main avec les ressources de supervision Postgres pour simplifier vos processus de paramétrage et, dans de nombreux cas, automatiser ces étapes afin de les adapter et les ajuster automatiquement en fonction des besoins. Les outils Azure suivants peuvent garantir que vos systèmes de base de données fonctionnent à leurs meilleurs niveaux.
Magasin de requêtes
Le Magasin des requêtes pour Azure Postgres sert de base pour vos fonctionnalités de supervision. Le Magasin des requêtes assure le suivi des statistiques et des métriques opérationnelles de votre base de données Postgres, notamment les requêtes, les plans d’explication associés, l’utilisation des ressources, et le minutage des charges de travail. Ces points de données peuvent révéler les requêtes longues, les requêtes consommant la plupart des ressources, les requêtes les plus fréquemment exécutées, les bloats de table excessifs, et de nombreuses facettes opérationnelles de votre base de données. Ces informations vous aident à consacrer moins de temps à la résolution des problèmes en identifiant rapidement les opérations ou les zones nécessitant une attention particulière. Le Magasin des requêtes fournit une vue complète des performances globales de vos charges de travail en identifiant :
- Les requêtes longues et leur évolution au fil du temps.
- Les types d’attente affectant ces requêtes.
- Détails sur les principales requêtes de base de données par appels (nombre d’exécutions), par utilisation des données, par IOPS et par utilisation temporaire de fichiers (candidats potentiels au paramétrage pour l’amélioration des performances).
- Les détails d’exploration d’une requête, afin de voir son identifiant et l’historique d’utilisation des ressources.
- Un aperçu approfondi de votre consommation des ressources des bases de données globales.
Optimisation des index
L’optimisation des index est une fonctionnalité d’Azure Database pour PostgreSQL – Serveur flexible qui peut améliorer automatiquement les performances de votre charge de travail en analysant les requêtes suivies et en fournissant des recommandations d’index. Elle est intégrée en mode natif à Azure Database pour PostgreSQL – Serveur flexible, et s’appuie sur les fonctionnalités du Magasin des requêtes. L’optimisation des index analyse les charges de travail suivies par le Magasin des requêtes, et produit des recommandations d’index pour améliorer les performances de la charge de travail analysée, ou pour supprimer les index dupliqués ou inutilisés. Ce résultat est obtenu de trois manières uniques :
- Identifiez les index utiles à créer, car ils peuvent considérablement améliorer les requêtes analysées durant une session d’optimisation des index.
- Identifiez les index qui sont des doublons exacts et qui peuvent être éliminés pour réduire l’impact de leur existence et de leur maintenance sur les performances globales du système.
- Identifiez les index non utilisés au cours d’une période configurable, et qui peuvent être de bons candidats à la suppression.
Réglage intelligent
Le réglage intelligent est un processus de supervision et d’analyse continu qui permet non seulement d’en savoir plus sur les caractéristiques de votre charge de travail, mais également de suivre votre charge actuelle et l’utilisation des ressources, comme le processeur ou les IOPS. Cela ne perturbe pas les opérations normales de votre charge de travail d’application. Le processus permet à la base de données de s’ajuster dynamiquement à votre charge de travail en discernant le taux de ballonnement actuel, les performances d’écriture et l’efficacité des points de contrôle sur votre instance. Avec ces insights, le réglage intelligent déploie des actions de paramétrage qui améliorent les performances de votre charge de travail et évitent les pièges potentiels. Cette fonctionnalité comprend deux fonctions de réglage automatique :
- Réglage du nettoyage automatique : cette fonction suit le ratio de ballonnement et ajuste les paramètres de nettoyage automatique en conséquence. Il tient compte de l’utilisation actuelle et prévue des ressources pour éviter les interruptions de charge de travail.
- Réglage des écritures : cette fonctionnalité supervise de façon permanente le volume et les modèles des opérations d’écriture, et modifie les paramètres qui affectent les performances d’écriture. Ces ajustements améliorent à la fois les performances et la fiabilité du système, afin d’éviter de manière proactive les complications potentielles.
Conseil
Apprenez-en davantage sur l’application des performances intelligentes pour optimiser vos plateformes Azure Postgres.
Optimisation du cloud
L’optimisation de votre nouvel environnement de base de données Azure Postgres signifie l’aboutissement de tous les efforts incroyables et du dur labeur qui ont conduit votre équipe à ce point clé. L’optimisation du cloud peut être une nouvelle responsabilité, en particulier lorsque le point de départ est un environnement de base de données local ou hérité. La plateforme cloud Azure introduit un nouvel ensemble amélioré de fonctionnalités de scalabilité précieuses et de pointe, qui permet à votre équipe d’identifier l’allocation précise des ressources, les fonctionnalités et l’efficacité des coûts répondant le mieux aux besoins de votre organisation aujourd’hui et dans l’avenir. L’optimisation du cloud est un processus continu d’affinement de votre environnement, comme indiqué dans les meilleures pratiques associées au Microsoft Well-Architected Framework : optimisation des coûts, excellence opérationnelle, efficacité des performances, fiabilité et sécurité.
L’optimisation des coûts est une combinaison de dimensionnement approprié de vos ressources, d’application de stratégies de gestion des coûts, et d’utilisation efficace des ressources.
L’excellence opérationnelle inclut l’adoption de l’automatisation pour les déploiements, la surveillance et la mise à l’échelle, et elle réduit les erreurs tout en augmentant l’efficacité.
L’efficacité des performances vous permet de choisir les ressources appropriées pour répondre aux exigences sans surapprovisionnement, tout en appliquant les meilleures pratiques en matière de scalabilité afin de gérer efficacement la variabilité des charges pendant les périodes opérationnelles de pointe.
La fiabilité vous guide vers des systèmes hautement disponibles et tolérants aux pannes avec des mécanismes de redondance et de basculement pour réduire les temps d’arrêt, et des stratégies de récupération d’urgence afin d’implémenter des plans de récupération robustes, avec notamment des procédures de sauvegarde et de restauration.
La sécurité met l’accent sur l’importance des protocoles d’identité forts et des pratiques de gestion des accès, telles que l’accès selon le principe des privilèges minimum, l’authentification sans mot de passe, et le contrôle d’accès en fonction du rôle. La protection et le chiffrement des données garantissent que les données sensibles sont protégées au repos et en transit. La sécurité inclut également des outils et des meilleures pratiques pour la détection des menaces, et des réponses automatisées pour résoudre rapidement les incidents de sécurité. La conformité garantit que votre environnement est conforme aux normes et réglementations du secteur.
Pour plus d’informations sur les fondamentaux des cinq piliers de l’implémentation de l’optimisation cloud, visitez notre centre Azure Well-Architected Framework (WAF).
Pour vous assurer que ces piliers sont alignés sur votre déploiement Azure Postgres, consultez notre guide du service Azure Well-Architected Framework pour PostgreSQL.