Migrar bases de dados MariaDB para AzureMigrate MariaDB databases to Azure

Este artigo demonstra como a empresa fictícia Contoso planeou e emigrou a sua plataforma de base de dados de código aberto MariaDB para Azure.This article demonstrates how the fictional company Contoso planned and migrated its on-premises MariaDB open-source database platform to Azure.

O Contoso está a usar a MariaDB em vez do MySQL por causa da sua:Contoso is using MariaDB instead of MySQL because of its:

  • Inúmeras opções de motor de armazenamento.Numerous storage engine options.
  • Cache e desempenho do índice.Cache and index performance.
  • Suporte de código aberto com funcionalidades e extensões.Open-source support with features and extensions.
  • Motor de armazenamento ColumnStore para cargas de trabalho analíticas.ColumnStore storage engine for analytical workloads.

O objetivo de migração da empresa é continuar a usar o MariaDB, mas não se preocupar em gerir o ambiente necessário para o apoiar.The company's migration goal is to continue to use MariaDB but not worry about managing the environment needed to support it.

Impulsionadores de negóciosBusiness drivers

A equipa de liderança de TI tem trabalhado em estreita colaboração com parceiros de negócios para entender o que querem alcançar com esta migração.The IT leadership team has worked closely with business partners to understand what they want to achieve with this migration. Querem:They want to:

  • Aumentar a disponibilidade.Increase availability. A Contoso tem tido problemas de disponibilidade com o seu ambiente MariaDB no local.Contoso has had availability issues with its MariaDB on-premises environment. A empresa exige que as aplicações que utilizam esta loja de dados sejam mais fiáveis.The business requires the applications that use this data store to be more reliable.
  • Aumentar a eficiência.Increase efficiency. A Contoso precisa de remover procedimentos desnecessários e simplificar processos para desenvolvedores e utilizadores.Contoso needs to remove unnecessary procedures and streamline processes for developers and users. O negócio precisa que a TI seja rápida e não perca tempo ou dinheiro para entregar mais rapidamente às necessidades do cliente.The business needs IT to be fast and not waste time or money to deliver faster on customer requirements.
  • Aumentar a agilidade.Increase agility. As equipas de TI da Contoso precisam de ser mais reativas às necessidades da empresa.Contoso IT needs to be more responsive to the needs of the business. Deve reagir mais rapidamente do que as mudanças no mercado para permitir o sucesso numa economia global.It must react faster than the changes in the marketplace to enable success in a global economy. Não deve atrapalhá-lo ou tornar-se um bloqueador de negócios.It mustn't get in the way or become a business blocker.
  • A escala.Scale. À medida que o negócio cresce com sucesso, a Contoso IT deve fornecer sistemas que cresçam ao mesmo ritmo.As the business grows successfully, Contoso IT must provide systems that grow at the same pace.

Objetivos de migraçãoMigration goals

A equipa de cloud da Contoso definiu os objetivos da migração.The Contoso cloud team has pinned down goals for this migration. Estes objetivos ajudaram a determinar o melhor método de migração.These goals were used to determine the best migration method.

RequisitosRequirements DetalhesDetails
DisponibilidadeAvailability Atualmente, os funcionários internos estão a passar por dificuldades com o ambiente de acolhimento para a instância MariaDB.Currently internal staff are having a hard time with the hosting environment for the MariaDB instance. A Contoso quer ter perto de 99,99 por cento de disponibilidade para a camada de base de dados.Contoso wants to have close to 99.99 percent availability for the database layer.
EscalabilidadeScalability O hospedeiro da base de dados no local está rapidamente a ficar sem capacidade.The on-premises database host is quickly running out of capacity. A Contoso precisa de uma forma de escalar os seus casos para além das limitações atuais ou reduzir se o ambiente de negócios mudar para economizar custos.Contoso needs a way to scale its instances past current limitations or scale down if the business environment changes to save on costs.
DesempenhoPerformance O departamento de recursos humanos contoso (RH) tem vários relatórios que executa diariamente, semanalmente e mensalmente.The Contoso human resources (HR) department has several reports it runs on a daily, weekly, and monthly basis. Quando executa estes relatórios, nota-se problemas consideráveis de desempenho com a aplicação virada para o trabalhador.When it runs these reports, it notices considerable performance issues with the employee-facing application. Precisa de executar os relatórios sem afetar o desempenho da aplicação.It needs to run the reports without affecting application performance.
SegurançaSecurity A Contoso precisa de saber que a base de dados está acessível apenas às suas aplicações internas e não é visível ou acessível através da internet.Contoso needs to know that the database is accessible only to its internal applications and isn't visible or accessible via the internet.
MonitorizaçãoMonitoring ATualmente, a Contoso utiliza ferramentas para monitorizar as métricas da base de dados MariaDB e fornecer notificações quando a CPU, a memória ou o armazenamento têm problemas.Contoso currently uses tools to monitor the metrics of the MariaDB database and provide notifications when CPU, memory, or storage have issues. A empresa quer ter a mesma capacidade em Azure.The company wants to have this same capability in Azure.
Continuidade do negócioBusiness continuity A loja de dados de RH é uma parte importante das operações diárias da Contoso.The HR data store is an important part of Contoso's daily operations. Se se corromper ou precisar de ser restaurado, a empresa quer minimizar o tempo de inatividade.If it became corrupted or needed to be restored, the company wants to minimize downtime.
AzureAzure O Contoso quer mover a candidatura para Azure sem a executar em VMs.Contoso wants to move the application to Azure without running it on VMs. A Contoso exige que utilize a plataforma Azure como serviço (PaaS) para o nível de dados.Contoso requirements state to use Azure platform as a service (PaaS) services for the data tier.

Design de soluçãoSolution design

Depois de fixar objetivos e requisitos, a Contoso projeta e analisa uma solução de implantação e identifica o processo de migração.After pinning down goals and requirements, Contoso designs and reviews a deployment solution and identifies the migration process. As ferramentas e serviços que utilizará para a migração também estão identificados.The tools and services that it will use for migration are also identified.

Aplicação atualCurrent application

A base de dados MariaDB acolhe dados de empregados que são usados para todos os aspetos do departamento de RH da empresa.The MariaDB database hosts employee data that's used for all aspects of the company's HR department. Uma aplicação baseada em LÂMPADA é usada como a parte frontal para lidar com os pedidos de RH dos empregados.A LAMP-based application is used as the front end to handle employee HR requests. A Contoso tem 100.000 colaboradores em todo o mundo, pelo que o tempo de paragem é importante para as suas bases de dados.Contoso has 100,000 employees worldwide, so uptime is important for its databases.

Solução propostaProposed solution

  • Avaliar os ambientes para a compatibilidade migratória.Evaluate the environments for migration compatibility.
  • Utilize ferramentas comuns de código aberto para migrar bases de dados para a Base de Dados Azure para a ocorrência de MariaDB.Use common open-source tools to migrate databases to the Azure Database for MariaDB instance.
  • Modifique todas as aplicações e processos para utilizar a nova Base de Dados Azure para a instância MariaDB.Modify all applications and processes to use the new Azure Database for MariaDB instance.

Considerações sobre a base de dadosDatabase considerations

Como parte do processo de design de soluções, a Contoso reviu as funcionalidades em Azure para hospedar as suas bases de dados MariaDB.As part of the solution design process, Contoso reviewed the features in Azure for hosting its MariaDB databases. As seguintes considerações ajudaram a empresa a decidir utilizar a Azure:The following considerations helped the company decide to use Azure:

  • Semelhante à Base de Dados Azure SQL, a Base de Dados Azure para MariaDB permite regrasde firewall .Similar to Azure SQL Database, Azure Database for MariaDB allows for firewall rules.
  • A Base de Dados Azure para MariaDB pode ser usada com a Rede Virtual Azure para evitar que o caso seja acessível ao público.Azure Database for MariaDB can be used with Azure Virtual Network to prevent the instance from being publicly accessible.
  • A Azure Database for MariaDB dispõe das certificações de conformidade e privacidade necessárias que a Contoso deve reunir para os seus auditores.Azure Database for MariaDB has the required compliance and privacy certifications that Contoso must meet for its auditors.
  • O desempenho do relatório e do processamento de aplicações será melhorado utilizando réplicas de leitura.Report and application processing performance will be enhanced by using read replicas.
  • Capacidade de expor o serviço apenas ao tráfego de rede interna (acesso não público) utilizando o Azure Private Link.Ability to expose the service to internal network traffic only (no-public access) by using Azure Private Link.
  • Contoso optou por não se mudar para a Base de Dados Azure para o MySQL porque está a analisar potencialmente a utilização do modelo de base de dados de colunas MariaDB e gráfico no futuro.Contoso chose not to move to Azure Database for MySQL because it's looking at potentially using the MariaDB ColumnStore and graph database model in the future.
  • A largura de banda e a latência da aplicação para a base de dados serão suficientes com base no gateway escolhido (ou Azure ExpressRoute ou VPN site-to-site).The bandwidth and latency from the application to the database will be sufficient enough based on the chosen gateway (either Azure ExpressRoute or Site-to-Site VPN).

Análise da soluçãoSolution review

A Contoso avalia a solução proposta ao elaborar uma lista de vantagens e desvantagens.Contoso evaluates the proposed design by putting together a pros and cons list.

ConsideraçãoConsideration DetalhesDetails
VantagensPros A Azure Database for MariaDB oferece um acordo de nível de serviço (SLA) com apoio financeiro de 99,99 por cento para uma elevada disponibilidade.Azure Database for MariaDB offers a 99.99 percent financially backed service-level agreement (SLA) for high availability.

O Azure oferece a capacidade de escalar para cima ou para baixo durante os tempos de carga de pico a cada trimestre.Azure offers the ability to scale up or down during peak load times each quarter. Contoso pode economizar ainda mais comprando capacidade reservada.Contoso can save even more by purchasing reserved capacity.

O Azure fornece capacidades de restauro e geo-restauro pontuais para a Base de Dados Azure para a MariaDB.Azure provides point-in-time restore and geo-restore capabilities for Azure Database for MariaDB.

DesvantagensCons Contoso está limitado às versões de lançamento MariaDB que são suportadas no Azure, que atualmente são 10.2 e 10.3.Contoso is limited to the MariaDB release versions that are supported in Azure, which are currently 10.2 and 10.3.

A Azure Database for MariaDB tem algumas limitações,como a redução do armazenamento.Azure Database for MariaDB has some limitations, such as scaling down storage.

Arquitetura propostaProposed architecture

O diagrama mostra a arquitetura do cenário. Figura 1: Arquitetura de cenário.Diagram shows the scenario architecture. Figure 1: Scenario architecture.

Processo de migraçãoMigration process

PreparaçãoPreparation

Antes de migrar as suas bases de dados MariaDB, tem de garantir que essas instâncias cumprem todos os pré-requisitos do Azure para uma migração bem sucedida.Before you can migrate your MariaDB databases, you need to ensure that those instances meet all the Azure prerequisites for a successful migration.

Versões suportadas:Supported versions:

  • MariaDB usa o esquema de nomeação x.y.z.MariaDB uses the x.y.z naming scheme. Por exemplo, x é a versão principal, y é a versão menor, e z é a versão patch.For example, x is the major version, y is the minor version, and z is the patch version.
  • A Azure suporta atualmente 10.2.25 e 10.3.16.Azure currently supports 10.2.25 and 10.3.16.
  • O Azure gere automaticamente atualizações para atualizações de patchs.Azure automatically manages upgrades for patch updates. Os exemplos são de 10.2.21 a 10.2.23.Examples are 10.2.21 to 10.2.23. As atualizações de versão menores e importantes não são suportadas.Minor and major version upgrades aren't supported. Por exemplo, não há suporte para a atualização do MariaDB 10.2 para o MariaDB 10.3.For example, upgrading from MariaDB 10.2 to MariaDB 10.3 isn't supported. Se pretender atualizar de 10.2 para 10.3, pegue numa lixeira de base de dados e restaure-a num servidor criado com a versão do motor alvo.If you want to upgrade from 10.2 to 10.3, take a database dump and restore it to a server created with the target engine version.

A rede:The network:

A Contoso precisa de criar uma ligação virtual de gateway de rede desde o seu ambiente no local até à rede virtual onde está localizada a sua base de dados MariaDB.Contoso needs to set up a virtual network gateway connection from its on-premises environment to the virtual network where its MariaDB database is located. Esta ligação permite que a aplicação no local aceda à base de dados sobre o gateway quando as cadeias de ligação forem atualizadas.This connection allows the on-premises application to access the database over the gateway when the connection strings are updated.

O diagrama mostra o processo de migração.Diagram shows the migration process. Figura 2: O processo de migração.Figure 2: The migration process.

MigraçãoMigration

Como MariaDB é semelhante ao MySQL, Contoso pode usar os mesmos utilitários e ferramentas comuns como MySQL Workbench, mysqldump, Toad ou Navicat para ligar e migrar dados para Azure Database para MariaDB.Because MariaDB is similar to MySQL, Contoso can use the same common utilities and tools such as MySQL Workbench, mysqldump, Toad, or Navicat to connect to and migrate data to Azure Database for MariaDB.

Contoso usou os seguintes passos para migrar as suas bases de dados.Contoso used the following steps to migrate its databases.

  • Determine a versão MariaDB no local executando os seguintes comandos e observando a saída.Determine the on-premises MariaDB version by running the following commands and observing the output. Na maioria dos casos, a sua versão não deve importar muito para o esquema e o despejo de dados.In most cases, your version shouldn't matter much for the schema and data dump. Se estiver a utilizar funcionalidades ao nível da aplicação, certifique-se de que essas aplicações são compatíveis com a versão alvo em Azure.If you're using features at the application level, ensure those applications are compatible with the target version in Azure.

      mysql -h localhost -u root -P
    

    A screenshot mostra como determinar a versão MariaDB no local. Figura 3: Determinação da versão MariaDB no local.Screenshot shows how to determine the on-premises MariaDB version. Figure 3: Determining the on-premises MariaDB version.

  • Criar um novo exemplo MariaDB em Azure:Create a new MariaDB instance in Azure:

    • Abra o portal do Azure.Open the Azure portal.

    • Selecione Adicione um recurso.Select Add a resource.

    • Procurar MariaDB.Search for MariaDB.

      A screenshot mostra um novo exemplo de MariaDB em Azure. Figura 4: Um novo exemplo mariaDB em Azure.Screenshot shows a new MariaDB instance in Azure. Figure 4: A new MariaDB instance in Azure.

    • Selecione Criar.Select Create.

    • Selecione o seu grupo de subscrição e recursos.Select your subscription and resource group.

    • Selecione o nome e a localização do servidor.Select a server name and location.

    • Selecione a sua versão alvo, que é 10.2 ou 10.3.Select your target version, which is 10.2 or 10.3.

    • Selecione o seu cálculo e armazenamento.Select your compute and storage.

    • Insira um nome de utilizador e senha de administração.Enter an admin username and password.

    • Selecione Rever + criar.Select Review + create.

      Screenshot da página Create MariaDB Server Figura 5: Rever e criar.Screenshot of the Create MariaDB Server page. Figure 5: Review and create.

    • Selecione Criar.Select Create.

    • Grave o nome de anfitrião do servidor, nome de utilizador e senha.Record the server hostname, username, and password.

    • Selecione Segurança de Ligação.Select Connection Security.

    • Selecione Adicionar O IP do Cliente (o IP a partir do qual estará a restaurar a base de dados).Select Add Client IP (the IP that you'll be restoring the database from).

    • Selecione Guardar.Select Save.

  • Executar os seguintes comandos para exportar a base de dados chamada Employees .Run the following commands to export the database called Employees. Repita para cada base de dados:Repeat for each database:

    mysqldump -h localhost -u root -p -–skip-triggers -–single-transaction –-extended-insert -–order-by-primary -–disable-keys Employees > Employees.sql
    
  • Restaurar a base de dados.Restore the database. Substitua-a pelo ponto final da sua Base de Dados Azure para a instância MariaDB e o nome de utilizador:Replace with the endpoint for your Azure Database for MariaDB instance and the username:

    mysql -h {name}.mariadb.database.azure.com -u user@{name} -p –ssl
    create database employees;
    use database employees;
    source employees.sql;
    
  • Utilize phpMyAdmin ou uma ferramenta semelhante, como mySQL Workbench, Toad e Navicat, para verificar a restauração verificando as contagens de registo em cada mesa.Use phpMyAdmin or a similar tool, such as MySQL Workbench, Toad, and Navicat, to verify the restore by checking record counts in each table.

  • Atualize todas as cadeias de ligação de aplicação para apontar para a base de dados migrada.Update all application connection strings to point to the migrated database.

  • Teste todas as aplicações para um bom funcionamento.Test all applications for proper operation.

Limpeza após a migraçãoClean up after migration

Após uma migração bem sucedida verificada, a Contoso precisa de fazer backup e armazenar os ficheiros de backup da base de dados no local para fins de retenção.After a verified successful migration, Contoso needs to back up and store the on-premises database backup files for retention purposes. Retire o servidor MariaDB no local.Retire the on-premises MariaDB server.

Rever a implementaçãoReview the deployment

Com os recursos migrados no Azure, a Contoso precisa de uma operacionalização completa e de proteger a nova infraestrutura.With the migrated resources in Azure, Contoso needs to fully operationalize and secure its new infrastructure.

SegurançaSecurity

Contoso precisa de:Contoso needs to:

  • Certifique-se de que a sua nova Base de Dados Azure para instâncias MariaDB e bases de dados estão seguras.Ensure that its new Azure Database for MariaDB instance and databases are secure. Para mais informações, consulte a Segurança na Base de Dados Azure para MariaDB.For more information, see Security in Azure Database for MariaDB.
  • Reveja as regras de firewall e as configurações de rede virtuais para verificar se as ligações estão limitadas apenas às aplicações que a exijam.Review the firewall rules and virtual network configurations to verify that connections are limited to only the applications that require it.
  • Configure quaisquer requisitos de IP de saída para permitir ligações aos endereços IP do gatewayMariaDB .Configure any outbound IP requirements to allow connections to the MariaDB gateway IP addresses.
  • Atualize todas as aplicações para exigir ligações SSL às bases de dados.Update all applications to require SSL connections to the databases.
  • Confifiquei o Link Privado para que todo o tráfego de bases de dados seja mantido dentro da rede Azure e da rede no local.Set up Private Link so that all database traffic is kept inside Azure and the on-premises network.
  • Ativar a Azure Advanced Threat Protection (ATP).Enable Azure Advanced Threat Protection (ATP).
  • Configure o Log Analytics para monitorizar e enviar alertas sobre segurança e regista entradas de interesse.Configure Log Analytics to monitor and send alerts on security and logs entries of interest.

Cópias de segurançaBackups

Certifique-se de que a Base de Dados Azure para instâncias MariaDB é apoiada através da geo-restauração.Ensure that the Azure Database for MariaDB instances are backed up by using geo-restore. Desta forma, os backups podem ser utilizados numa região emparelhada se ocorrer uma paralisação regional.In this way, backups can be used in a paired region if a regional outage occurs.

Importante

Certifique-se de que a Base de Dados Azure para a instância MariaDB tem um bloqueio de recursos para evitar que seja eliminada.Make sure that the Azure Database for MariaDB instance has a resource lock to prevent it from being deleted. Os servidores eliminados não podem ser restaurados.Deleted servers can't be restored.

Licenciamento e otimização de custosLicensing and cost optimization

  • A base de dados Azure para MariaDB pode ser dimensionada para cima ou para baixo.Azure Database for MariaDB can be scaled up or down. A monitorização de desempenho do servidor e das bases de dados é importante para garantir que satisfaz as suas necessidades, mas também manter os custos no mínimo.Performance monitoring of the server and databases is important to ensure you meet your needs but also keep costs at a minimum.
  • Tanto o CPU como o armazenamento têm custos associados.Both CPU and storage have costs associated. Existem vários níveis de preços para selecionar.There are several pricing tiers to select from. Certifique-se de que o plano de preços adequado é selecionado para as cargas de trabalho dos dados.Be sure the appropriate pricing plan is selected for the data workloads.
  • Cada réplica de leitura é faturada com base no cálculo e armazenamento selecionados.Each read replica is billed based on the compute and storage selected.
  • Utilize a capacidade reservada para economizar custos.Use reserved capacity to save on costs.

ConclusãoConclusion

Neste artigo, a Contoso emigrou as suas bases de dados MariaDB para uma Base de Dados Azure para exemplo de MariaDB.In this article, Contoso migrated its MariaDB databases to an Azure Database for MariaDB instance.