Bienvenue > Blog sur la sauvegarde et la restauration > Comment sauvegarder une base de données Oracle avec Bacula ? Présentation technique d’Oracle Backup and Recovery.

Comment sauvegarder une base de données Oracle avec Bacula ? Présentation technique d’Oracle Backup and Recovery.

1 Star2 Stars3 Stars4 Stars5 Stars
(46 votes, moyenne: 5,00 de 5)
Loading...
Mis à jour 9th juillet 2021, Rob Morrison

Oracle backup

Oracle Backup and Recovery

Généralement, les opérations de sauvegarde et de restauration sont considérées comme l’un des piliers essentiels de la protection des données. Cela s’applique également à Oracle Backup and Recovery, bien sûr, et dans le monde d’aujourd’hui, avoir au moins une sauvegarde de votre base de données est pratiquement une nécessité si vous ne voulez pas finir par tout perdre à cause d’une simple erreur ou d’un accident malheureux.

Une sauvegarde est une copie de vos données qui peut être utilisée pour reconstruire le contenu de votre base de données originale. Dans le contexte d’Oracle, il existe deux principaux types de sauvegarde : la sauvegarde physique et la sauvegarde logique.

La sauvegarde physique est une copie des fichiers physiques stockés à utiliser en cas d’urgence. Les sauvegardes physiques comprennent généralement des types de fichiers tels que les fichiers de contrôle, les fichiers de données et les redo logs archivés.

Les sauvegardes logiques sont une copie des données logiques de la base de données, telles que les procédures stockées et les tables. Ces sauvegardes sont souvent considérées comme un bon complément aux sauvegardes physiques mais sont essentiellement inutiles sans leur contrepartie.

Sauf indication contraire, la majorité de la documentation sur la sauvegarde et la restauration fait référence à une sauvegarde physique en tant que terme de « sauvegarde ». Créer une sauvegarde physique d’une base de données est l’acte de « sauvegarder » ladite base de données.

Restauration des données et problèmes potentiels

Bien qu’il y ait quelques exceptions possibles, la majorité des cas d’erreur qui exigent le lancement du processus de restauration des données peuvent être attribués à l’un des trois types d’erreur suivants : erreurs de l’utilisateur, défaillances du support et erreurs de l’application.

Les erreurs de l’utilisateur sont possibles lorsque, en raison d’une erreur manuelle ou d’une erreur dans la logique de l’application, une partie spécifique de la base de données est modifiée ou supprimée de manière incorrecte. Ce type d’erreur est considéré comme la cause principale de la majorité des interruptions de service des bases de données dans le monde entier.

Il existe également deux types de catastrophes potentielles : localisées et étendues. Les dommages localisés sont relativement insignifiants et peuvent être corrigés grâce à un processus de réparation précis. Les dommages généralisés, en revanche, sont ceux qui suppriment des quantités massives de données et doivent être contrés dès que possible afin d’éviter, au moins partiellement, un arrêt massif de l’ensemble de la base de données.

La défaillance du support est un autre type d’erreur. Elle est généralement représentée par un problème physique avec un dispositif de stockage qui cause des problèmes avec les demandes de lecture ou d’écriture. La mesure appropriée en réponse à une défaillance du support dépend du type de périphérique et du type de données en question.

Il est important de mentionner que les erreurs de support sont quelque chose qui peut arriver à n’importe quel dispositif de stockage en premier lieu. Pour cette même raison, il n’est pas rare que les entreprises développent une sorte de programme de reprise après sinistre afin d’essayer d’atténuer les effets potentiellement désastreux d’une défaillance du support, entre autres choses (puisque les défaillances du support sont connues pour paralyser l’ensemble du dispositif de stockage en même temps).

Les erreurs d’application sont le résultat d’un dysfonctionnement du logiciel, généralement représenté par un bloc de données corrompu. Dans le cas d’une corruption du support (également appelée corruption physique), il est assez fréquent que le bloc entier ne soit pas du tout reconnu par la base de données, avec des sommes de contrôle qui ne correspondent pas, le bloc entier contenant des zéros, etc. En fonction de l’étendue de la corruption, certaines erreurs d’application mineures peuvent être plus ou moins corrigées en utilisant une variante de la récupération du support de bloc.

Stratégie de Backup d’Oracle

Dans les capacités d’Oracle, il y a deux stratégies de sauvegarde principales : RMAN et la gestion par l’utilisateur.

RMAN, ou Recovery Manager, est une solution entièrement intégrée à la base de données Oracle qui peut effectuer diverses activités liées à la sauvegarde. On peut accéder à RMAN à l’aide d’Oracle Enterprise Manager ou de la ligne de commande.

Les sauvegardes gérées par l’utilisateur sont des sauvegardes de base qui peuvent être effectuées en utilisant une combinaison de commandes du système d’exploitation hôte et de commandes de récupération SQL*Plus. Dans ce cas, tous les aspects liés à la sauvegarde doivent être définis manuellement pour chaque sauvegarde.

Bien que deux types de sauvegarde soient pris en charge, RMAN est celui qui est généralement préféré, de sorte que la majorité des capacités de sauvegarde d’Oracle sont concentrées dans ce type de sauvegarde.

Un avantage majeur d’une sauvegarde RMAN est la possibilité de créer des sauvegardes pendant que la base de données est ouverte et/ou montée. La commande de sauvegarde elle-même est relativement simple ; l’invite ressemble à ceci :

 

BACKUP DATABASE;

Il est possible d’ajouter un certain nombre de compléments ou de paramètres à cette commande, par exemple, elle peut ressembler à ceci si nous voulons également inclure les journaux archivés dans la sauvegarde :

 

BACKUP DATABASE PLUS ARCHIVELOG;

Une autre option disponible avec RMAN est la possibilité de créer des sauvegardes incrémentales. Une autre option disponible avec RMAN est la possibilité de créer des sauvegardes incrémentielles. La sauvegarde incrémentielle est un type de sauvegarde qui copie uniquement les fichiers spécifiques qui ont été modifiés depuis que la dernière sauvegarde de n’importe quel type a été effectuée (selon le type de sauvegarde, il peut s’agir d’une sauvegarde incrémentielle cumulative ou d’une sauvegarde incrémentielle différentielle).

En ce qui concerne les commandes, l’invite de sauvegarde est relativement similaire (avec des ajouts possibles sous la forme de divers paramètres) :

 

BACKUP INCREMENTAL;

Et il y a aussi le fait que les copies d’ombre/fichiers instantanés peuvent aussi être créés avec les sauvegardes incrémentales de RMAN. Par exemple, la commande de création d’une sauvegarde incrémentale dans la zone de récupération rapide peut être lancée avec la commande suivante :

 

BACKUP INCREMENTAL LEVEL 1 … FROM SCN

Comme vous pouvez le constater, RMAN, en tant que solution de sauvegarde Oracle native, offre de nombreuses possibilités. En même temps, il a ses propres limites, et c’est là que les solutions de sauvegarde tierces entrent en jeu.

Oracle Backup and Recovery avec Bacula Enterprise

On appelle sauvegarde de données une copie de vos données importantes que vous conservez séparément de l’original pour les restaurer en cas de perte de toutes sortes. Toute entreprise a des données qu’elle doit protéger et qu’elle ne veut pas perdre – y compris les utilisateurs de bases de données Oracle. La perte de données est la principale raison pour laquelle vous devez disposer d’une sauvegarde pour que votre environnement de base de données Oracle reste fiable et sûr.

La plupart des entreprises utilisant Oracle préfèrent confier à une personne distincte la gestion de leurs opérations de sauvegarde Oracle – ce poste est appelé « administrateur de sauvegarde ». En règle générale, cette personne sera chargée d’un certain nombre de tâches, notamment :

  • Élaborer un programme de sauvegarde approprié
  • Être prêt à résoudre les problèmes qui peuvent survenir en relation avec l’ensemble du processus de sauvegarde et de restauration
  • Réfléchir et tester différentes situations avec différents types de défaillances matérielles ou logicielles possibles liées à la perte de données
  • La préservation et le transfert des données ne sont pas directement liés au processus de sauvegarde mais restent des tâches possibles
  • Être prêt à se rétablir en cas de perte de données, quelle qu’en soit l’ampleur.

En ce qui concerne la perte de la base de données Oracle, la grande variété de raisons possibles pour la perte de la base de données illustre encore plus le fait que faire des sauvegardes Oracle est une bonne chose en général ! Par exemple, certaines des diverses causes de perte de données pourraient être :

  • Un crash Hardware
  • Accidents avec mauvaise manipulation des données
  • Corruption des données à cause d’un virus
  • Erreurs dans le processus de migration des données d’un dispositif ou d’un système à un autre, etc.

Il existe de nombreuses façons de sauvegarder les bases de données Oracle. Les modes en grappe offrent une résilience aux problèmes matériels, et les infrastructures hautement disponibles, en cloud et convergentes offrent de nouvelles options pour l’assurance et la liberté des données ainsi que la redondance. Quelles que soient ces options, la sauvegarde d’Oracle reste essentielle pour garantir qu’une petite erreur, une corruption des données ou un piratage ne détruise pas les données critiques résidant dans la meilleure infrastructure. Les serveurs de bases de données restent un composant clé de la plupart des organisations, et contiennent souvent les informations les plus critiques pour la continuité des opérations. Le guide qui suit vous montrera comment exécuter la sauvegarde et la restauration d’Oracle en utilisant la fonctionnalité SBT de RMAN, qui permet de transmettre les données directement à Bacula Enterprise.

Types possibles de Backup and Recovery d’Oracle

Il existe deux méthodes pour sauvegarder une base de données Oracle :

  • La sauvegarde gérée par Bacula en utilisant le mode dump d’Oracle. Cette méthode est rapide et facile à mettre en place, mais son champ d’application est limité aux petites bases de données et elle ne prend pas en charge la restauration ponctuelle ou les sauvegardes incrémentielles.
  • Sauvegarde gérée par RMAN (mode Oracle SBT). Également connu sous le nom d’Oracle Recovery Manager (RMAN), il s’agit d’une fonctionnalité originale du serveur de base de données Oracle, ce qui signifie qu’il n’est pas nécessaire de l’installer manuellement – elle est déjà incluse du côté du serveur. Ce mode utilise l’excellent outil de sauvegarde et les API de RMAN pour permettre à Bacula de lancer des modes de sauvegarde plus avancés qui supportent les sauvegardes PITR, incrémentales et différentielles des bases de données, et peut tirer parti de la fonction de suivi des changements de RMAN pour améliorer les performances des sauvegardes incrémentales. C’est aussi le plus convivial puisque RMAN utilise une seule interface pour tous les systèmes d’exploitation, ce qui le rend beaucoup moins compliqué.

Puisque le type de sauvegarde basé sur RMAN est la solution idéale, voici quelques-uns des avantages les plus notables de son utilisation :

  • Compression binaire. Ce type de mécanisme de compression est intégré à la base de données Oracle en tant que système et son objectif principal est de réduire la taille globale d’une sauvegarde moyenne.
  • Duplication automatisée de la base de données. Un certain nombre de fonctionnalités implémentées dans Oracle permettent de créer facilement la copie de votre base de données en utilisant un grand nombre de configurations de stockage.
  • Sauvegardes incrémentielles. Ce type de sauvegarde ne conserve et ne sauvegarde que les blocs qui ont été modifiés d’une manière ou d’une autre depuis la dernière sauvegarde complète. Cette méthode de sauvegarde nécessite beaucoup moins d’espace de stockage que la méthode traditionnelle et ajoute plus de flexibilité au processus de restauration en cas de sinistre.
  • Sauvegardes cryptées. RMAN peut facilement crypter votre base de données en utilisant la fonction intégrée de cryptage des sauvegardes. Il y a une distinction entre la création d’une telle sauvegarde sur un disque et la création de cette même sauvegarde directement sur une bande. Pour le disque – la base de données en question doit activer l’option de sécurité avancée. Pour la bande – RMAN doit utiliser l’interface Oracle SBT mais il n’est pas nécessaire d’activer l’option de sécurité avancée.
  • Récupération des supports de bloc. Si la quantité de données corrompues est relativement faible, vous n’avez pas vraiment besoin de restaurer l’ensemble de la sauvegarde pour la réparer – cette fonctionnalité est appelée récupération de support de bloc et peut être utilisée sans mettre le fichier lui-même hors ligne.

Dans ce guide pratique, nous allons configurer des sauvegardes Oracle SBT.

Partie 1 : Configurer le plugin de sauvegarde et de récupération Oracle dans Bweb

Étape 1 : Dans Bweb, configurez un nouveau jeu de fichiers pour le travail. Dans l’onglet « Plugin » du jeu de fichiers, sélectionnez Oracle SBT.

backup oracle database

Étape 2 : Le plugin de sauvegarde et de restauration Oracle est configuré principalement du côté client, donc dans la plupart des cas, aucune autre configuration n’est nécessaire dans Bweb. Le nouveau jeu de fichiers peut être validé.

oracle backup and recovery

Étape 2a : Veuillez noter les différentes options de sauvegarde de la base de données Oracle disponibles si le plugin Oracle (non-SBT) est choisi. Le Whitebook du plugin Oracle couvre ces méthodes alternatives en profondeur.

oracle backup

Partie 2 : Configurer le plugin de sauvegarde de la base de données Oracle sur le serveur Oracle

Comme pour les autres plugins de base de données, le Bacula Enterprise File Daemon et le composant du plugin de base de données concerné (Oracle SBT dans ce cas) doivent d’abord être installés sur le serveur de base de données. Cela permet de placer les outils nécessaires à la sauvegarde Bacula sur le serveur de base de données. Veuillez consulter le Whitebook Oracle ou contacter le support Bacula Systems si vous avez besoin d’aide pour cette étape.

Étape 1 : Installez Bacula File Daemon et Oracle backup plugin.

Étape 2 : Installez la bibliothèque sbt dans Oracle


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

Étape 3 : Redémarrez Oracle

Étape 4 : Copiez bconsole et assurez-vous qu’Oracle peut le lire :


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*

Étape 5 : modifiez le fichier /opt/bacula/etc/sbt.conf pour indiquer le nom du travail, le chemin et la configuration de bconsole, et le nom du client :


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

Comme pour les autres plugins de base de données, Bacula Enterprise File Daemon et le composant du plugin de base de données concerné (Oracle SBT dans ce cas) doivent d’abord être installés sur le serveur de base de données. Cela permet de placer les outils nécessaires à la sauvegarde Bacula sur le serveur de base de données. Veuillez consulter le Whitebook d’Oracle ou contacter le support Bacula Systems si vous avez besoin d’aide pour cette étape.

Exemples de fichiers et de tâches :

Vous trouverez ci-dessous des exemples d’un jeu de fichiers simple configuré dans BWeb dans la première partie, et un exemple de travail qui utilise ce jeu de fichiers. Pour des tutoriels approfondis sur Bweb, veuillez consulter la documentation vidéo de 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
}

Partie 3: Tester la connectivité du plugin et exécuter Oracle Backup :

Étape 1 : Testez le plugin


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

Étape 2 : Exécuter manuellement une sauvegarde via 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;
}

Un résultat typique de sauvegarde réussie de RMAN ressemble à celui ci-dessous, et indique que le plugin SBT est installé, correctement configuré, et prêt à exécuter des sauvegardes :


[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

Resturation des bases de données Oracle

Bien qu’une sauvegarde en soi soit incroyablement importante, il convient également de mentionner que les fonctions de restauration constituent, bien entendu, une partie essentielle de l’ensemble du processus du cycle de sauvegarde et de restauration des bases de données Oracle. Disposer d’une sauvegarde sans moyen de restauration n’est utile à personne.

Mais d’abord, nous devons couvrir quelques bases. Comme nous l’avons dit précédemment, il existe un grand nombre de circonstances possibles qui peuvent vous amener à devoir restaurer votre base de données. Par exemple, il peut s’agir d’un certain nombre de défaillances matérielles et de problèmes de logiciels :

  • Corruption de bloc
  • Perte de données
  • Erreur de l’utilisateur
  • Problèmes de mise à jour
  • Catastrophe naturelle ou non naturelle

Vous devez d’abord vous connecter au catalogue de restauration si vous souhaitez restaurer une base de données à l’aide de RMAN. L’étape suivante consiste à allouer des canaux à la bande ou au disque. L’objectif du catalogue de restauration est de fournir toutes sortes d’informations sur la sauvegarde ou les sauvegardes de la base de données. Vous pouvez également configurer un fichier de contrôle distinct à des fins similaires. La différence entre les commandes restore et recover est que « restore » fait exactement ce que vous attendez – restaurer les fichiers de la base de données, mais « recover » est quelque peu différent puisqu’il applique toutes les modifications enregistrées dans les journaux de données archivés.

La sauvegarde et la restauration de la base de données Oracle en tant que processus est capable de fournir plusieurs options de récupération, notamment :

  • Point spécifique de restauration

Lorsque vous utilisez Oracle, le processus de restauration n’est pas si compliqué. Vous pouvez facilement restaurer l’ensemble de la base de données et ensuite utiliser les commandes « recover » pour choisir le point spécifique auquel vous souhaitez que votre base de données soit restaurée. Outre la restauration complète de base, plusieurs autres options sont incluses si vous utilisez RMAN : vous pouvez ramener l’état de votre base de données à un moment précis dans le temps ou faire correspondre son état à un journal d’archive spécifique.

  • Restauration des Tablespaces/Datafiles/Blocks

Si votre base de données comprend de nombreux tablespaces, vous pouvez choisir ce mode de restauration pour limiter l’interruption de la base de données aux seuls utilisateurs de tablespaces qui utilisaient des fichiers endommagés. En général, la restauration des tablespaces est un peu plus compliquée que la fonction habituelle de restauration de la base de données, car vous ne pouvez pas récupérer un tablespace spécifique après la restauration. C’est pourquoi une sauvegarde est conseillée juste après la restauration de ces tablespaces. Une autre particularité de RMAN est que vous pourrez fournir à la fois le numéro de bloc et le numéro de fichier de données, ce qui facilite le processus de récupération.

  • Conseiller en restauration des données

Le service d’Oracle comprend également une fonction appelée « Data Recovery Advisor » (conseiller en restauration des données) que vous pouvez faire apparaître si vous rencontrez des problèmes avec un ou plusieurs de vos fichiers de base de données. Ce conseiller est capable de vous fournir à la fois le script de réparation basé sur votre base de données et de vous montrer combien vous pouvez restaurer dans votre situation actuelle. Vous pouvez également activer très facilement le script fourni juste après avoir lancé le conseiller.

Dernières réflexions sur Oracle Backup and Recovery

Comme le plugin SBT de Bacula Enterprise Oracle s’appuie sur RMAN pour des fonctions de sauvegarde avancées, une configuration supplémentaire doit être effectuée dans Oracle.

Période de conservation :

Lorsque vous utilisez le plugin SBT de RMAN, la conservation des sauvegardes définie dans RMAN doit correspondre à la conservation des volumes ou des tâches de Bacula.

Journal d’archivage :

Afin d’utiliser le mode de sauvegarde RMAN, la base de données doit être en mode ARCHIVELOG.

Veuillez consulter le Whitebook Oracle Backup de Bacula et le support technique de Bacula Systems si vous avez besoin de plus d’informations, d’assistance ou si vous avez des questions après avoir lu ce guide de sauvegarde et de restauration Oracle.

À propos de l’auteur
Rob Morrison
Rob Morrison est le directeur marketing de Bacula Systems. Il a commencé sa carrière dans le marketing informatique chez Silicon Graphics en Suisse, où il a obtenu de bons résultats dans divers rôles de gestion du marketing pendant près de 10 ans. Au cours des 10 années suivantes, Rob a également occupé divers postes de gestion du marketing chez JBoss, Red Hat et Pentaho, assurant la croissance des parts de marché de ces sociétés bien connues. Il est diplômé de l'université de Plymouth, titulaire d'un diplôme spécialisé en médias et communications numériques, et a suivi un programme d'études à l'étranger.
Laissez un commentaire

Votre adresse email ne sera pas publiée. Les champs requis sont indiqués *