Gilles Darold

PostgreSQL DBA Senior / PostgreSQL Expert

Grenoble, France

66 chemin du curtil

38690 Bevenais - France
gilles@darold.net

http://www.darold.net/
https://github.com/darold/

Résumé

Je suis un expert et contributeur de la base de données PostgreSQL. Je travaille dans le monde de PostgreSQL et Linux depuis plus de 25 ans et j'ai travaillé sur de nombreux projets couvrant l'administration de PostgreSQL, la migration vers PostgreSQL, l'optimisation des performances, la sauvegarde et la restauration avancées, la réplication et la haute disponibilité. J'ai également 20 ans d'expérience dans différents domaines liés au système et au réseau.

J'utilise PostgreSQL depuis 1995, depuis lors j'ai créé des outils très connus autour de PostgreSQL comme pgBadger pour l'analyse des logs, Ora2Pg pour migrer la base de données Oracle et plus récemment pgCluu ou pgFormatter. J'ai également contribué au code de PostgreSQL, Orafce, pgPool-II et OpenLDAP pour n'en nommer que quelques-uns. J'ai aussi de nombreuses extensions de PostgreSQL à mon actif.

Domaines d'expertise

  • Audit et recommandations PostgreSQL.
  • Optimisation Système, PostgreSQL et SQL.
  • Technologies de réplication PostgreSQL, réplication en continu, réplication logique, Slony, envoi de journaux.
  • PostgreSQL sauvegarde / restauration logique et PITR. Installation / configuration d'outils de sauvegarde (barman, pgBackRest, etc.)
  • Partitionnement de table et autres fonctionnalités avancées de PostgreSQL.
  • Migration Oracle, MySQL, MSSQL et autre bases vers PostgreSQL.
  • Formations PostgreSQL pour tous les niveaux (Administration de PostgreSQL, développeravec PostgreSQL, administration avancée et performances).
  • Support en ligne et téléphonique tout niveau pour PostgreSQL, 24/7.
  • Maintenance et développement de programmes / scripts complexes.
  • Correction et signalement de bogues sur PostgreSQL.
  • Développement de nouvelles fonctionnalités et extensions PostgreSQL.
  • Déplacement en clientèle jusqu'à 50% du temps.
  • Travail en autonomie directement avec les clients.
  • Administration avancée et tuning des systèmes Linux (Ubuntu, Centos, Redhat ou Debian), y compris les langages de script comme Bash, Ksh, Python, Perl etc.
  • Connaissance pratique de MS Windows.

Enseignement et conférences

  • Juin 2023 - Perl Conferences Toronto pgCluu: PostgreSQL Cluster utilization, en anglais.
  • Octobre 2022 - PgConf.eu Berlin Migration validation made easy with Ora2Pg, en anglais.
  • Juin 2022 - Prague PostgreSQL Developers Day Asynchronous queries with PostgreSQL, en anglais.
  • Decembre 2021 - PgConf NYC, New York: Migration validation made easy with Ora2Pg, en anglais.
  • Septembre 2019 - PgConf Asia, Bali: A step toward SQL/MED DATALINK, en anglais.
  • Juin 2019 - PgDay France, Lyon: pgBadger Utilisation avancée
  • Decembre 2016 - Mai 2019 : Professeur de Programmation Perl MI-ASSR Grenoble Université - IUT2
  • November 2018 - PgSessions #10 Paris: New features in PostgreSQL v11.0
  • May 2018 - PGCon Ottawa: conférence courte sur l'extension pgtt, en anglais.
  • Octobre 2017 - PostgreSQL Graphic Tools Developer Meeting à Varsovie : Présentation de l'interfaçage applicatif avec pgBadger et pgFormatter, en anglais.
  • Juin 2017 - PGDAY France: Toulouse: Conférence sur le partitionnement PostgreSQL et les transactions autonomes.
  • Septembre 2015 - PostgreSQL Session # 7 Paris :  Conférence sur Comment quitter Oracle.
  • Février 2015 - PostgreSQL Conference Russia, Moscou: Conférence sur les difficultés de migration d'Oracle, en anglais.
  • Septembre 2014 - PostgreSQL Session # 6 Paris : Conférence sur la migration d'Oracle Spatial vers PostGis.
  • Juin 2013 - PGDay France, Nantes: Conférence sur les performances des migrations avec Ora2Pg.
  • Mai 2012 - PGCon Ottawa : conférence courte sur pgBadger, en anglais.
  • Octobre 2011 - PgConf.Eu Amsterdam : Conférence sur les bonnes pratique de la migration Oracle vers PostgreSQL.

Compétences techniques

  • Platformes : UNIX (AIX, HP-UX, Solaris), Linux (RedHat, Slackware, Debian, Ubuntu, BSD, ...), Windows
  • Réseaux : TCP/IP, ISO/OSI, Ethernet, FDDI, VPN, SSH, PGP, WAN, WLAN (wifi), différents protocoles incluant SMTP, IMAP, HTTP.
  • Bases de données : PostgreSQL, Oracle, MySQL, SQLite, BDB
  • Langages : Shell, HTML, Java, JavaScript, jquery, Perl, C, C++, GTK, TCL/TK, Java, Python, SQL, PL/SQL and PLPGSQL

Expérience professionnelle

Expert PostgreSQL / Sénior developpeur

Expert PostgreSQL Indépendant, Grenoble

CTO @ HexaCLuster Corp, Toronto, ON, Canada

October 2023 - à maintenant

  • Migration Oracle vers PostgreSQL
  • Formations PostgreSQL
  • Développement d'une extension pour émuler le package Oracle DBMS_LOCK. https://github.com/HexaCluster/pg_dbms_lock
  • Développement d'une extension de compatibilité avec SQL Server. (not public)
  • Développement d'une extension pour émuler le package Oracle UTL_SMTP. (not public)
  • Patch PostgreSQL: psql: Add some completion support for CREATE TABLE .. AS. https://github.com/postgres/postgres/commit/816f10564a8671918e170a547625584d10587cf4

Expert PostgreSQL / Sénior developpeur

CTO @ MigOps Inc, Durham, NC, USA

Mai 2021 - Mai 2023

  • Migration Oracle vers PostgreSQL
  • Formations PostgreSQL
  • Développement d'une extension pour appliquer des règles de sécurité à la création d'utilisateur ou mot de passe dans PostgreSQL. https://github.com/MigOpsRepos/credcheck
  • Développement d'une extension pour émuler le package Oracle DBMS_ERRLOG. https://github.com/MigOpsRepos/pg_dbms_errlog
  • Ajout des fonctions standard regexp_like(), regexp_count(), regexp_instr(), regexp_substr() et regexp_replace() à PostgreSQL. https://github.com/postgres/postgres/commit/6424337073589476303b10f6d7cc74f501b8d9d7
  • Développement d'une extension pour émuler le package Oracle DBMS_JOB. https://github.com/MigOpsRepos/pg_dbms_job

Expert PostgreSQL / Sénior developpeur

LzLabs GmbH, Zurich

Mai 2019 - Mai 2021

  • Développement d'un Foreign Data Wrapper PostgreSQL pour DB2 z/Os
  • Migration d'une suite logicielle d'émulation DB2 z/OS à PostgreSQL v1[123]
  • Développement d'un outil pour la sauvegardedes bases PostgreSQL database au format binaire. https://github.com/lzlabs/pg_dumpbinary
  • Développement d'une extension PostgreSQL pour le support des Global Temporary Tables dans le style Oracle/DB2. https://github.com/darold/pgtt/
  • Développement d'une extension pour les transactions avec rollback au niveau requête pour PostgreSQL: https://github.com/lzlabs/pg_statement_rollback/
  • Ajout des fonctions standard regexp_like(), regexp_count(), regexp_instr(), regexp_substr() and regexp_replace() à l'extension orafce. https://github.com/orafce/orafce/releases/tag/VERSION_3_15_0

PostgreSQL DBA Sénior

Dalibo, Paris

Oct 2010 - Mai 2019

  • Évaluation des déploiements clients de PostgreSQL et recommandations pour les améliorer.
  • Propositions de solutions pour répondre aux besoins des clients.
  • Aide à la clientèle dans le développement d'applications personnalisées basées sur PostgreSQL.
  • Formations PostgreSQL pour tous les niveaux (débutant, développeur et avancé).
  • Migrations de bases de données d'Oracle, SQL Server, MySQL vers PostgreSQL
  • Mise en oeuvre d'architectures pour migrer des données et des bases de données entière.
  • Optimisation des performances et recommandations pour les déploiements de base de données existants
  • Optimisation des requêtes SQL et procédures stockées, analyse des plans de requête, écriture de PLpgSQL avancé
  • Implémentation de solutions de réplication, de haute disponibilité et de reprise après sinistre avec PostgreSQL
  • Mise en oeuvre de solutions de sauvegarde / restauration, de gestion / supervision, de mises à jour de version et de correctifs.
  • Support et développement de propositions techniques pour répondre aux besoins des clients.
  • Création, mise en oeuvre et documentation d'architectures PostgreSQL complexe.
  • Publication d'articles techniques, contributions à PostgreSQL et aux conférences.
  • Écriture de programmes et scripts complexes.
  • Conseil des clients sur le dimensionnement des ressources.
  • Maîtrise des outils de gestion de base de données PostgreSQL et optimisation de base de données.
  • Technologies de réplication PostgreSQL Streaming Replication, réplication logique, Slony.
  • Mise en réseau de PostgreSQL, HBA et pool de connexion (PgBouncer, PgPool).

Responsable Systèmes et Réseaux

Groupe SAMSE, Grenoble

Feb 2000 - Sep 2010

  • Conduite de projets (choix de solutions techniques, installation, packaging, documentation, déploiement, développement spécifiques et reporting).
  • Administration Système : 200 serveurs Unix (Linux, AIX et SCO) pour l'infrastructure réseaux, les bases de données, les applications de gestion commerciale, Intranet, cluster RedHat, SAN (EMC Clarion), robot de sauvegarde (Overland), virtualisation (ESX vmWare).
  • Administration Réseaux : VPN Orange MPLS de 220 agences, LAN agences et Siège (VLAN, STP, redondance), Wifi Siège et 25 agences (Entrepôts du Bricolage). DHCP, DNS, Sendmail, Cyrus Imap, OpenLDAP, Squid...
  • Supervision Nagios, outils développés en interne, monitoring SNMP.
  • Administration World Wide : DMZ (ftp, www, dns, mailhost), Firewal Checkpoint, gestion nom de domaine, vpn site à site et client à site pour les prestataires, sécurisation des serveurs (chroot user, chroot Apache+php+perl, ftp).
  • Responsable intégration Open Source : WWW, DHCP, DNS, messagerie (Webmail, Sendmail, Cyrus Imap), OpenLDAP, clients léger sur serveurs VNC, portail Intranet, proxy Internet Squid, formation des administrateurs et du support. Ce travail a fait l'objet d'une conférence à Linux Solution Paris 2003,

Développeur / Administrateur Système

Free Lance, Grenoble

Jun 1996 - Jan 2000

  • Formateur langage de programmation Perl pour la société TEAMLOG.
  • Conception et programmation d'une suite de logiciels E-Business, incluant la gestion dynamique des données, l'intégration graphique et l'administration des catalogues. Environnement de programmation: CGI-Perl (mod_perl), PostgreSQL, Apache, XML/XSLT, Linux. Vente en ligne des magasins CASINO.
  • Hewlet-Packard : Technicien process. Analyse de base de Knowledge. Programmation des outils d'extraction et de formatage de données. Environnement de programmation : Perl sur HPUX.
  • Conception et programmation d'un site E-Business pour la société LVO International. Programmation CGI-PERL pour la gestion dynamique des données, Interface utilisateur World Wide, outils d'administration et outils statistiques. Conception et création RDBMS PostgreSQL. Systéme : Linux. Administrateur du site.
  • Installation et configuration sur site d'un firewall intégré (NextLand ISB100) pour la société SIRIAL.
  • Hewlet-Packard : Technicien process. Analyse de base de Knowledge. Programmation des outils d'extraction et de formatage des données. Environnement de programmation:: Perl, HPUX.
  • Hewlet-Packard : Conception d'une application concernant l'audit sécurité des systèmes et réseaux. Port mapper et scanner de services (http, smtp, telnet, ftp, pop3, etc.) sur de très grand rèseaux (+2000 machines) Programmation Perl et rapport en HTML.
  • Conception d'une architecture réseau (DMZ), installation et configuration d'un firewall, proxy cache, serveur WWW pour la société SAMSE. Système Linux, IP Masquerading, Ipfwm, Proxy Squid, serveur Apache.

Développeur

Société MONIT'AIR (Héli-Union), Grenoble

Mai 1995 - Mai 1996

  • Développement logiciel pour la société MONIT'AIR (Héli-Union). Programmation d'une application complète permettant la configuration, l'extraction de données et l'affichage de statistiques de vol des enregistreurs de vols (boite noire) pour une flotte d'hélicoptère de sécurité civile et la gendarmerie nationale. Visual Basic sur NT4.0/Windows95 liés au RDBMS Access95.
  • Installation et configuration d'un serveur NT 4.0. Protocoles NetBUI et TCP/IP avec 8 PC sous Win95.

Développeur

Observatoire astronomique Calern, Nice

Nov 1994 - Jan 1995

  • Écriture d'un HowTo Linux pour l'installation et la configuration du RDBMS Postgres95 (PostgreSQL).
  • Programmation d'un serveur d'enregistrement de demande de prise de clichés astronomiques pour la communauté des astronomes professionnels. Observatoire Astronomique de Nice (Calern). Interface CGI/C entre le serveur WWW et une base de données SQL (Postgres95). Développement sur HP9000/710 (HPUnix). Portage sous Linux.
  • Programmation des logiciels pour le traitement des demandes de clichés et la mise en route automatique du télescope au point donné. Interface de gestion des utilisateurs et demandes de clichés. Programmation en C, Motif et Xwindow. Portage sous Linux.

Formation

Analyste Programmeur en Informatique Industrielle et logiciel

Grenoble, 1995

(AFPA)

UER Sciences humaines

Grenoble, 1987

(première année)

Baccalauréat Scientifique

Grenoble, 1986

 (série D)

Projets OpenSources personnels

  • Ora2Pg : Convertisseur de base Oracle vers PostgreSQL. http://ora2pg.darold.net/
  • pgBadger : Analyze de log PostgreSQL. http://dalibo.github.io/pgbadger/
  • pgFormatter : Formatage / enjoliveur de code SQL et PlPgSQL pour PostgreSQL. http://sqlformat.darold.net/
  • pgCluu : Analyze de performances PostgreSQL et système. http://pgcluu.darold.net/
  • pg_dumpbinary : Développement d'un outil pour la sauvegardedes bases PostgreSQL database au format binaire. https://github.com/lzlabs/pg_dumpbinary
  • Extension PostgreSQL :
    • uri : ajout d'un type de données pour le stockage et la validation des URL. https://github.com/darold/uri
    • external_data : ajout du type de données BFILE d'Oracle (fichier externes). https://github.com/darold/external_file
    • pgtt : ajout du support des Tables Temporaires Globales à la Oracle dans PostgreSQL. https://github.com/darold/pgtt
    • pg_statement_rollback : extension pour les transactions avec rollback au niveau requête dans PostgreSQL: https://github.com/lzlabs/pg_statement_rollback/
    • pg_dbms_errlog : extension d'émulation du package Oracle DBMS_ERRLOG. https://github.com/MigOpsRepos/pg_dbms_errlog
    • pg_dbms_job : extension d'émulation du package Oracle DBMS_JOB. https://github.com/MigOpsRepos/pg_dbms_job
    • pg_dbms_lock : extension d'émulation du package Oracle DBMS_LOCK. https://github.com/HexaCluster/pg_dbms_lock
    • hexa_mssqlfce : extension de compatibilité avec SQL Server. https://github.com/HexaCluster/hexa_mssqlfce
    • pg_utl_smtp : extension d'émulation du package Oracle UTL_SMTP. https://github.com/HexaCluster/pg_utl_smtp
  • pgpool : diverses contributions http://www.pgpool.net/docs/pgpool-II-3.5.4/NEWS.txt
  • Apache2::ModProxyPerlHtml : Module Apache 2 pour Reverse Proxy. http://modproxyhtml.darold.net/
  • SquidClamAv : Redirecteur Squid pour le scan antivirus des flux HTTP. http://squidclamav.darold.net/
  • SendmailAnalyzer : Analyseur / Reporting de log Sendmail, Antivirus et AntiSpam. http://sareport.darold.net/
  • SquidAnalyzer : Analyseur/ Reporting de log Proxy Internet Squid. http://www.darold.net/projects/SquidAnalyzer/
  • SquidGuardMgr : GUI pour l'administration de complète de SquidGuard. http://squidguardmgr.darold.net/
  • Sysusage : Monitoring Système Unix basé sur Sar (sysstat). http://sysusage.darold.net/
  • OpenLdap : patch pour le support de PostgreSQL en backend OpenLDAP, http://www.openldap.org/lists/openldap-bugs/200112/msg00024.html

 

  • GitHub Account: https://github.com/darold/