Home > Blog de Apoio e Recuperação > Como fazer backup do banco de dados Oracle com o Bacula? Visão geral técnica do Backup e Recuperação para Oracle.

Como fazer backup do banco de dados Oracle com o Bacula? Visão geral técnica do Backup e Recuperação para Oracle.

1 Star2 Stars3 Stars4 Stars5 Stars
(46 avaliações, média: 5,00 de 5)
Loading...
Atualizado 3rd fevereiro 2024, Rob Morrison

Oracle backup

Backup e Recuperação para Oracle

Normalmente, as operações de backup e recuperação são consideradas como um dos principais pilares da proteção de dados. Isso também se aplica ao backup e restauração do Oracle, é claro, e no mundo de hoje ter pelo menos um backup de seu banco de dados é praticamente uma necessidade se você não quiser eventualmente perder tudo por causa de um simples erro ou acidente infeliz semelhante.

Um backup é uma cópia de seus dados que pode ser usada para reconstruir o conteúdo original de seu banco de dados. No contexto do Oracle, há dois tipos principais de backup: backup físico e backup lógico.

O backup físico é uma cópia dos arquivos físicos armazenados para uso em caso de emergência. Os backups físicos normalmente incluem tipos de arquivos como arquivos de controle, arquivos de dados e logs redo arquivados.

Os backups lógicos são uma cópia dos dados lógicos dentro do banco de dados, tais como procedimentos armazenados e tabelas. Esses backups são frequentemente tratados como uma boa adição aos backups físicos, mas são essencialmente inúteis sem o seu equivalente.

A menos que especificado de outra maneira, a maioria da documentação de backup e recuperação se refere a um backup físico com o termo “backup”. Portanto, criar um backup físico de um banco de dados é o ato de “fazer backup” desse banco.

Recuperação de dados e problemas potenciais

Embora haja algumas exceções, a maioria dos casos de falha que exigem que o processo de recuperação de dados seja iniciado pode ser atribuída a um desses três tipos de erro: erros de usuários, falhas de mídia e erros de aplicação.

Os erros de usuários acontecem quando, por causa de um erro manual ou erro na lógica da aplicação, a parte específica do banco de dados é alterada ou apagada incorretamente. Esse tipo de erro é considerado como a maior causa da maioria das paradas de banco de dados em todo o mundo.

Há também dois escopos diferentes para esse desastre potencial: localizado e generalizado. O dano localizado é algo relativamente insignificante que pode ser consertado com um processo de correção preciso. Os danos generalizados, por outro lado, são os que apagam grandes quantidades de dados e precisam ser combatidos o mais rápido possível para evitar, pelo menos parcialmente, uma parada massiva de todo o banco de dados.

Uma falha na mídia é outro tipo de erro, sendo representado principalmente por algum tipo de problema físico com um dispositivo de armazenamento que causa problemas com solicitações de leitura ou gravação. A medida apropriada em resposta a uma falha de mídia depende do tipo de dispositivo e do tipo de dados em questão.

É importante mencionar que os erros de mídia são algo que pode acontecer com qualquer dispositivo de armazenamento. Por esse mesmo motivo, não é raro que as empresas desenvolvam algum tipo de programa de recuperação de desastres na tentativa de mitigar os efeitos potencialmente desastrosos de uma falha de mídia, entre outras coisas (já que essas falhas são conhecidas por paralisar todo o dispositivo de armazenamento de uma só vez).

Erros de aplicação são o resultado de um mau funcionamento do software, normalmente representado por um bloco de dados corrompido. No caso de corrupção da mídia (também chamada corrupção física), é bastante comum que o bloco inteiro não seja reconhecido pelo banco de dados, com os checksums que não são correspondentes, o bloco inteiro contendo zeros, e assim por diante. Dependendo da extensão da corrupção, alguns erros menores de aplicação podem ser mais ou menos corrigidos usando alguma variação da recuperação de bloco de mídia.

Estratégia de Backup para Oracle

Dentro das funcionalidades do Oracle, há duas estratégias principais de backup: RMAN e gerenciada pelo usuário.

O RMAN, ou Recovery Manager, é uma solução totalmente integrada dentro do banco de dados Oracle que pode realizar uma variedade de atividades relacionadas à backup. O RMAN pode ser acessado usando o Oracle Enterprise Manager ou a linha de comando.

Os backups gerenciados pelo usuário são backups básicos que podem ser executados usando uma combinação de comandos do sistema operacional do host e comandos de recuperação SQL*Plus. Nesse caso, todos os aspectos relacionados à backups devem ser definidos manualmente para cada backup.

Embora haja dois tipos de backup que são suportados, o RMAN é o comumente preferido, portanto a maioria das funcionalidades de backup do Oracle são voltadas para esse tipo de backup.

Uma grande vantagem de um backup do RMAN é a capacidade de criar backups enquanto o banco de dados estiver aberto e/ou montado. O comando de backup em si também é relativamente fácil:

 

BACKUP DATABASE;

É possível acrescentar uma série de adições ou parâmetros a esse comando, por exemplo, ele pode ficar assim se quisermos incluir também os logs arquivados no backup:

 

BACKUP DATABASE PLUS ARCHIVELOG;

Outra opção que está disponível com o RMAN é a capacidade de criar backups incrementais. O backup incremental é um tipo de backup que copia apenas arquivos específicos que foram alterados desde que o último backup de qualquer tipo foi realizado (dependendo do tipo de backup, pode ser um backup incremental cumulativo ou um backup incremental diferencial).

Quando se trata de comandos, o utilizado para fazer backup é relativamente semelhante (com possíveis adições na forma de vários parâmetros):

 

BACKUP INCREMENTAL;

E há também o fato de que as shadow copies/snapshot também podem ser criadas com os backups incrementais do RMAN. Por exemplo, o comando para criar um backup incremental na área de recuperação rápida pode ser iniciado assim:

 

BACKUP INCREMENTAL LEVEL 1 … FROM SCN

Como você pode ver, existem muitas funcionalidades que o RMAN, como solução de backup nativa do Oracle, pode oferecer. Ao mesmo tempo, ele tem suas próprias limitações, e é aqui que entram as soluções de backup de terceiros.

Backup e Recuperação para Oracle com o Bacula Enterprise

Basicamente, chamamos de backup de dados uma cópia de seus dados mais importantes que você está guardando separadamente do original para restaurá-los no caso de perdas. Qualquer negócio tem algum tipo de dado que precisa proteger e não querem perder, incluindo os usuários do banco de dados Oracle. A perda de dados é o principal motivo pelo qual você precisa ter um backup para manter seu ambiente de banco de dados Oracle confiável e seguro.

A maioria das empresas que usam o Oracle preferem ter uma pessoa separada para administrar suas operações de backup. Essa função é chamada de “administrador de backup”. Tipicamente, essa pessoa seria encarregada de uma série de coisas, inclusive:

  • Elaboração de um cronograma de backup adequado;
  • Estar pronto para resolver problemas que possam surgir em relação a todo o processo de backup e recuperação;
  • Pensar e testar diferentes situações com tipos distintos de possíveis falhas de hardware ou software relacionadas com a perda de dados;
  • Outras tarefas não diretamente relacionadas com o processo de backup, mas ainda possíveis, são a preservação e transferência de dados;
  • Estar pronto para fazer a recuperação em caso de perda de dados de qualquer escala.

Falando da perda do banco de dados Oracle, a grande variedade de possíveis razões para perder um banco de dados demonstra ainda mais que fazer backups é uma ótima atitude! Por exemplo, algumas das várias causas de perda de dados poderiam ser:

  • Falha de hardware;
  • Acidentes com dados mal cuidados;
  • Corrupção de dados por causa de um vírus;
  • Erros no processo de migração de dados de um dispositivo ou sistema para outro, etc.

Há muitas maneiras de fazer backup dos bancos de dados Oracle. Os modos clustered oferecem resiliência a questões de hardware, e as infraestruturas altamente disponíveis, em nuvem e convergentes oferecem novas opções de garantia e liberdade de dados, juntamente com redundância. Independentemente dessas opções, o backup do Oracle continua crítico para assegurar que um pequeno erro, corrupção ou hack não destrua os dados críticos que residem até mesmo na melhor infraestrutura. Os servidores de banco de dados permanecem um componente chave da maioria das organizações, e muitas vezes contêm as informações mais críticas para a continuidade das operações. O guia a seguir lhe mostrará como executar o backup e a recuperação do Oracle usando a funcionalidade SBT do RMAN, que permite que os dados sejam transmitidos diretamente ao Bacula Enterprise.

Possíveis Tipos de Backup e Recuperação do Oracle

Há dois métodos para fazer o backup do banco de dados Oracle:

  • O Bacula administra o backup usando o modo dump do Oracle. Isso é rápido e fácil de configurar, mas é limitado ao escopo de bancos de dados menores e não suporta recuperação point in time ou backups incrementais.
  • RMAN gerencia o backup (modo Oracle SBT). Também conhecido como Oracle Recovery Manager (RMAN), ele é um recurso original do servidor de banco de dados Oracle, o que significa que não há necessidade de instalá-lo manualmente, pois ele já está incluído no lado do servidor. Esse modo usa a excelente ferramenta de backup RMAN e APIs para permitir que o Bacula inicie modos de backup mais avançados que suportam PITR, backups de banco de dados incrementais e diferenciais, e pode aproveitar o recurso de monitoramento de mudanças do RMAN para melhorar o desempenho do backup incremental. É também o mais fácil de usar, já que o RMAN usa uma interface para todos os sistemas operacionais, o que o torna muito menos complicado.

Uma vez que o tipo de backup baseado no RMAN é a solução preferida, aqui estão algumas das vantagens mais notáveis de usá-lo:

  • Compressão binária. Esse tipo de mecanismo de compressão está integrado no banco de dados Oracle como um sistema e seu principal objetivo é reduzir o tamanho geral de um backup médio.
  • Duplicação automatizada do banco de dados. Uma série de recursos implementados no Oracle que permite a fácil criação da cópia de seu banco de dados usando um grande número de configurações de armazenamento.
  • Backups incrementais. Esse tipo de backup só mantém e faz backup dos blocos que foram modificados de alguma maneira desde o último backup completo. Ele requer muito menos espaço de armazenamento do que o backup tradicional e acrescenta mais flexibilidade ao processo de restauração no caso de algum tipo de desastre.
  • Backups criptografados. O RMAN pode facilmente criptografar seu banco de dados usando a capacidade integrada de criptografia de backup. Há uma distinção entre criar esse tipo de backup em disco e diretamente em uma fita. Para o disco: o banco de dados em questão permite a Advanced Security Option (Opção Avançada de Segurança). Para fita: o RMAN tem que usar a interface Oracle SBT, mas não há necessidade de ativar a Opção Avançada de Segurança.
  • Recuperação de mídia em bloco. Se a quantidade de dados corrompidos é relativamente pequena, você não precisa necessariamente restaurar todo o backup para corrigi-los. Nesse caso, o recurso de recuperação de mídia em bloco pode ser usado sem colocar o arquivo offline.

Para isso, vamos montar os backups do Oracle SBT.

Parte 1: Configurando o plugin de backup e recuperação do Oracle no Bweb

Passo 1. NO Bweb, configure um novo fileset para a tarefa. Na aba ‘Plugin’ do fileset, selecione Oracle SBT.

backup oracle database

Passo 2. O plugin de backup e recuperação do Oracle é configurado principalmente no lado do cliente, portanto, na maioria dos casos, não é necessária mais nenhuma configuração no Bweb. O commit do fileset pode ser realizado.

oracle backup and recovery

Passo 2.1: Observe as diferentes opções disponíveis para fazer backup do banco de dados se o plugin Oracle (não-SBT) for escolhido. O white paper do plugin Oracle aborda esses métodos alternativos em profundidade.

oracle backup

Parte 2: Configurando o plugin de backup no servidor Oracle

Assim como acontece com outros plugins de banco de dados, o Bacula Enterprise File Daemon e o respectivo componente do plugin de banco de dados (Oracle SBT, neste caso) devem ser instalados primeiro no servidor. Isso coloca as ferramentas necessárias para o backup do Bacula no servidor do banco de dados. Consulte o white paper da Oracle ou entre em contato com o suporte da Bacula Systems se precisar de ajuda com esse passo.

Passo 1: Instale o arquivo Bacula Daemon e os pacotes de plugins de backup do Oracle

Passo 2: Instale a biblioteca SBT no Oracle


/opt/bacula/scripts/install-sbt-libobk.sh install

Passo 3: Reinicie o Oracle

Passo 4: Copie o bconsole e certifique-se de que o Oracle o possa ler:


cp /opt/bacula/bin/bconsole /opt/bacula/ oracle
cp /opt/bacula/etc/bconsole.conf /opt/bacula/oracle
chown oracle:dba /opt/bacula/oracle/bconsole*
chmod go-rxw /opt/bacula/oracle/bconsole*

Passo 5: Edite /opt/bacula/etc/sbt.conf para indicar o nome da tarefa, caminho e configuração do bconsole, e o nome do cliente:


client=oracle-fd
job=OracleBackup
bconsole=”/opt/bacula/oracle/bconsole -n -c /opt/bacula/oracle/bconsole.conf”

Exemplos de fileset e tarefas:

Abaixo estão exemplos do fileset simples configurado no Bweb na Parte 1, e um exemplo de tarefa que o utiliza. Para tutoriais aprofundados sobre o Bweb, veja a documentação em vídeo da Bacula Systems:


FileSet {
Name = SBT-FileSet
Include {
Options {
Signature = MD5
}
Plugin = oracle-sbt
}
}

Job {
Name = SBT-Backup
FileSet = SBT-FileSet
Client = oracle-fd
Maximum Concurrent Jobs = 10
Messages = Standard
Pool = Default
Storage = File
}

Parte 3: Testando a conectividade do plugin e executando o backup do Oracle:

Passo 1: Teste o plugin


/opt/bacula/scripts/install-sbt-libobk.sh test

Passo 2: Faça um backup manual através do RMAN:


RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
ALLOCATE CHANNEL c2 DEVICE TYPE sbt;
ALLOCATE CHANNEL c3 DEVICE TYPE sbt;
BACKUP INCREMENTAL LEVEL 0 DATABASE plus archivelog;
}

Uma saída de backup do RMAN típica e bem-sucedida é mostrada a seguir. Ela é uma indicação de que o plugin SBT está instalado, corretamente configurado, e pronto para executar os backups:


[oracle@centos07 ~]$ rman target /

Recovery Manager: Release 12.1.0.2.0 – Production on Thu Mar 23 11:02:22 2017

Copyright (c) 1982, 2015, Oracle and/or its affiliates. All rights reserved.

connected to target database: CENTOS07 (DBID=2213460080)

RMAN> run {

2> allocate channel c1 type sbt;

3> backup database plus archivelog;

4>}

using target database control file instead of recovery catalog

allocated channel: c1

channel c1: SID=44 device type=SBT_TAPE

channel c1: Bacula Enterprise Oracle SBT Plugin 1.0.0.7

Starting backup at 23-MAR-17

current log archived

channel c1: starting archived log backup set

channel c1: specifying archived log(s) in backup set

input archived log thread=1 sequence=23 RECID=1 STAMP=894837644
input archived log thread=1 sequence=24 RECID=2 STAMP=894882191
input archived log thread=1 sequence=25 RECID=3 STAMP=894882226
input archived log thread=1 sequence=26 RECID=4 STAMP=894924027
input archived log thread=1 sequence=27 RECID=5 STAMP=912953744
input archived log thread=1 sequence=28 RECID=6 STAMP=912955548
input archived log thread=1 sequence=29 RECID=7 STAMP=912955554
input archived log thread=1 sequence=30 RECID=8 STAMP=912955561
input archived log thread=1 sequence=31 RECID=9 STAMP=912955564
input archived log thread=1 sequence=32 RECID=10 STAMP=912964429
input archived log thread=1 sequence=33 RECID=11 STAMP=939375680
input archived log thread=1 sequence=34 RECID=12 STAMP=939380476
input archived log thread=1 sequence=35 RECID=13 STAMP=939380575

channel c1: starting piece 1 at 23-MAR-17

channel c1: finished piece 1 at 23-MAR-17

piece handle=07rvrjqv_1_1 tag=TAG20170323T110255 comment=API Version 2.0,MMS Version 1.0.0.7

channel c1: backup set complete, elapsed time: 00:00:25

Finished backup at 23-MAR-17

Starting backup at 23-MAR-17

channel c1: starting full datafile backup set

channel c1: specifying datafile(s) in backup set

input datafile file number=00001
name=/u01/app/oracle/oradata/CENTOS07/datafile/o1_mf_system_c2kyrs39_.dbf

input datafile file number=00003
name=/u01/app/oracle/oradata/CENTOS07/datafile/o1_mf_sysaux_c2kyqoql_.dbf

input datafile file number=00004
name=/u01/app/oracle/oradata/CENTOS07/datafile/o1_mf_undotbs1_c2kyt7s9_.dbf

input datafile file number=00006
name=/u01/app/oracle/oradata/CENTOS07/datafile/o1_mf_users_c2kyt6j4_.dbf

channel c1: starting piece 1 at 23-MAR-17

channel c1: finished piece 1 at 23-MAR-17

piece handle=08rvrjrp_1_1 tag=TAG20170323T110321 comment=API Version 2.0,MMS Version 1.0.0.7

channel c1: backup set complete, elapsed time: 00:00:56

channel c1: starting full datafile backup set

channel c1: specifying datafile(s) in backup set

including current control file in backup set

channel c1: starting piece 1 at 23-MAR-17

channel c1: finished piece 1 at 23-MAR-17

piece handle=09rvrjth_1_1 tag=TAG20170323T110321

comment=API Version 2.0,MMS Version 1.0.0.7

channel c1: backup set complete, elapsed time: 00:00:03

Finished backup at 23-MAR-17

Starting backup at 23-MAR-17

current log archived

channel c1: starting archived log backup set

channel c1: specifying archived log(s) in backup set

input archived log thread=1 sequence=36 RECID=14 STAMP=939380664

channel c1: starting piece 1 at 23-MAR-17 channel c1: finished piece 1 at 23-MAR-17

piece handle=0arvrjto_1_1 tag=TAG20170323T110424 comment=API Version 2.0,MMS Version 1.0.0.7

channel c1: backup set complete, elapsed time: 00:00:01

Finished backup at 23-MAR-17 released channel: c1

Recuperação do banco de dados Oracle

Embora um backup por si só seja incrivelmente importante, vale a pena mencionar também que as funções de recuperação são, naturalmente, uma parte vital de todo o processo no ciclo de backup e recuperação do banco de dados Oracle. Ter apenas um backup sem meios para restaurá-lo não tem utilidade para ninguém.

Mas, primeiro temos que dar uma olhada em algumas noções básicas. Como dissemos anteriormente, há um grande número de circunstâncias possíveis que poderiam criar a necessidade de recuperar seu banco de dados. Por exemplo, várias falhas de hardware e problemas de firmware:

  • Corrupção de bloco;
  • Perda de dados;
  • Erro do usuário;
  • Problemas com atualização;
  • Desastre natural ou antinatural.

Você terá que se conectar primeiro com o catálogo de recuperação se quiser restaurar ou recuperar um banco de dados usando o RMAN. O próximo passo é alocar canais em fita ou em disco. O objetivo do catálogo de recuperação é fornecer todo tipo de informação sobre backups de banco de dados ou backups comuns. Você também pode configurar um arquivo de controle separado para fins similares. A diferença entre os comandos restore e recover é que “restore” faz exatamente o que você espera: restaura arquivos de banco de dados. Já o “recover” é um pouco diferente, uma vez que aplica todas as mudanças registradas nos logs de dados arquivados.

O backup e recuperação do banco de dados Oracle como um processo é capaz de fornecer várias opções de recuperação, inclusive:

  • Recuperação de ponto específico

Quando você está usando o Oracle, o processo de recuperação não é tão complicado. Você pode facilmente restaurar todo o banco de dados e depois disso usar os comandos “recover” para escolher o ponto específico para o qual deseja que seu banco de dados seja recuperado. Há também várias outras opções incluídas além da recuperação completa básica se você estiver usando o RMAN: você pode levar o estado do seu banco de dados a um ponto específico no tempo ou pode corresponder a sua condição com um log de arquivo específico.

  • Restauração de Tablespaces/Datafiles/Blocos

Se seu banco de dados inclui muitos tablespaces, você pode escolher esse modo de recuperação para limitar o tempo de inatividade dele apenas aos usuários que estavam usando arquivos agora danificados. Em geral, a restauração de tablespaces é um pouco mais complicada do que a função normal de restauração do banco de dados, já que você não pode recuperar tablespaces específicos após a restauração. É por isso que é aconselhado fazer um backup logo após a restauração desses tablespaces. Uma outra especificidade ao usar o RMAN é que você será capaz de fornecer tanto o número do bloco, como o número do datafile, facilitando assim o processo de recuperação.

  • Data Recovery Advisor

O serviço da Oracle também inclui um recurso chamado Data Recovery Advisor, que você pode usar se estiver tendo problemas com um ou vários de seus arquivos de banco de dados. Esse assistente pode lhe fornecer tanto o script de reparo baseado em seu banco de dados, quanto pode lhe mostrar o quanto você pode recuperar em sua situação atual. Você também pode muito facilmente ativar o script fornecido logo após o assistente disponibilizar.

No entanto, o gerenciamento de backups da Oracle não se limita a manter sua política de retenção, ela também pode ser usada para acompanhar quais backups você pode usar para operações de restauração em um dado momento. Há várias abordagens para essa tarefa:

A primeira abordagem é estritamente para a recuperação de uma lista de backups disponíveis, e isso pode ser feito com pouco ou nenhum esforço com um comando LIST que o RMAN tem. Esse comando em particular recupera uma tabela de conjuntos de backups, com informações adicionais sobre cada um deles, como a data de criação, o tipo de backup, as partes específicas de um banco de dados que foram copiadas, e muito mais.

A segunda abordagem do gerenciamento de backups do Oracle é centrada em torno da eliminação de arquivos obsoletos. Ela é controlada em sua maioria por apenas dois parâmetros (RECOVERY WINDOW e REDUNDANCY, que se referem ao número de dias de uma política de retenção e número de backups, respectivamente), e consiste em três opções possíveis:

  • Expire. Controlado por REDUNDANCY e RECOVERY WINDOW, geralmente uma parte de um script de backup, ou tarefa de backup, com um parâmetro EXPIREDATE.
  • Delete from catalog. O histórico dos backups é apagado com chances de recuperação se for acidental, ou se os dados em questão forem necessários.
  • Delete expired. Uma tarefa rotineira de limpeza que elimina os backups obsoletos e os logs de arquivo.

Enquanto a maioria das operações de backup do Oracle trata de backups de todo o banco de dados, a opção de restaurar objetos específicos também está disponível, de modo que qualquer objeto dentro do seu sistema possa ser copiado ou recuperado separadamente do resto a qualquer momento. Assim como no tópico anterior, há várias maneiras de abordar o assunto:

  • Oracle Data Pump. O Data Pump é um utilitário do Oracle que pode fornecer tanto a exportação, quanto a importação de objetos ou tabelas específicas. Vale notar que a DDL (Data Definition Language) também está incluída, o que significa que toda a estrutura da tabela ou procedimento em questão seria recriada com o objeto ou tabela que está sendo restaurada. Isso também pode ser usado para restaurar apenas a estrutura com zero dados nela para ser usada como modelo ou medida de backup.
  • Utilização de níveis de tabela/esquema para copiar objetos específicos. Tabelas individuais podem ser recuperadas dentro do Oracle usando o comando CREATE. Ele incluirá tablespaces sem registro, o que significa que você só poderá restaurar dados, sem qualquer estrutura, tais como índices, triggers, constantes etc.

Considerações finais sobre o backup e recuperação para Oracle

Como o plugin Oracle SBT do Bacula Enterprise potencializa o RMAN para disponibilizar recursos avançados de backup, algumas configurações adicionais devem ser feitas no Oracle.

Período de retenção:

Ao usar o plugin RMAN SBT, a retenção de backup definida no RMAN deve corresponder ao volume Bacula ou à retenção da tarefa.

Log de arquivo:

Para usar o modo de backup RMAN, o banco de dados deve estar no modo ARCHIVELOG.

Consulte o white paper da Bacula sobre backup para Oracle, ou entre em contato com o suporte da Bacula Systems, se você precisar de mais informações, assistência, ou tiver alguma dúvida depois de ler este guia de backup e recuperação para Oracle.

Sobre o autor
Rob Morrison
Rob Morrison é o diretor de marketing da Bacula Systems. Ele começou sua carreira de marketing de TI na Silicon Graphics, na Suíça, e desempenhou intensamente várias funções de administração de marketing por quase 10 anos. Nos 10 anos seguintes, Rob também ocupou vários cargos de administração de marketing na JBoss, Red Hat e Pentaho, assegurando o crescimento da participação no mercado dessas empresas reconhecidas. Ele é formado pela Universidade de Plymouth e tem um diploma de honras em mídia digital e comunicação, além de ter feito um programa de estudos no exterior.
Deixe um comentário

Seu e-mail não será publicado. Os campos obrigatórios estão marcados com *