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/

Summary

I am a PostgreSQL Database Expert and senior developer. I've been working in the world of PostgreSQL and Linux for over 25 years and have worked on many different projects covering PostgreSQL administration, migration to PostgreSQL, performance tuning, advanced backup and recovery, replication, and high Availability. I have also 20 years of experiences in different areas related to System and Network.

I use PostgreSQL since 1995, since this time I've created some well known tools around PostgreSQL like pgBadger for log analysis, Ora2Pg to migrate Oracle database and more recently pgCluu or pgFormatter. I've also contributed to PostgreSQL, Orafce, pgPool-II and OpenLDAP code to name a few.

Areas of expertise

  • PostgreSQL audit and recommendations.
  • System, PostgreSQL and SQL tuning and optimizations.
  • PostgreSQL replication technologies, Streaming Replication, Logical Replication, Slony, log shipping.
  • PostgreSQL backup/restore logical and PITR. Installation/configuration of backup tools (barman, pgBackRest, etc.)
  • Table partitioning and other PostgreSQL advanced features.
  • Oracle and MySQL to PostgreSQL migration.
  • Deliver PostgreSQL courses for all level (beginner, developer and advanced).
  • On call and ticketing for various PostgreSQL 24/7 assistance.
  • Maintain and develop complex programming/scripts.
  • Fix and report bugs on PostgreSQL.
  • Develop PostgreSQL new features and extensions.
  • Able to travel up to 50%.
  • Can work with customers directly.
  • Advanced system administration and performance skills for Linux, (Ubuntu, Centos, Redhat, or Debian), including scripting languages like Bash, Ksh, Python, Perl etc..
  • Working knowledge of MS Windows.

Teaching and speaking engagements

  • June 2023 - Perl Conferences Toronto pgCluu: PostgreSQL Cluster utilization.
  • October 2022 - PgConf.eu Berlin Migration validation made easy with Ora2Pg.
  • June 2022 - Prague PostgreSQL Developers Day Asynchronous queries with PostgreSQL
  • December 2021 - PgConf NYC, New York: Migration validation made easy with Ora2Pg.
  • September 2019 - PgConf Asia, Bali: A step toward SQL/MED DATALINK
  • June 2019 - PgDay France, Lyon: pgBadger Advanced use
  • December 2016 - Mai 2019: Teacher of Perl Programming at Bachelor MI-ASSR Grenoble University - IUT2
  • November 2018 - PgSessions #10 Paris: New features in PostgreSQL v11.0
  • May 2018 - PGCon Ottawa: lightning talk about the pgtt extension, in English.
  • October 2017 - PostgreSQL Graphic Tools Developer Meeting in Warsaw: Talk about interfacing with pgBadger and pgFormatter.
  • June 2017 - PGDAY France, Toulouse: Talk about PostgreSQL partitioning and autonomous transaction, in French.
  • September 2015 - PostgreSQL Session #7 Paris: Talk about How to leave Oracle, in French.
  • Febuary 2015 - PostgreSQL Conference Russia, Moscow: Talk about Oracle migration difficulties, in English.
  • September 2014 - PostgreSQL Session #6 Paris: Talk about Oracle Spatial migration, in French.
  • June 2013 - PGDay France, Nantes: Talk about migration performances, in French.
  • May 2012 - PGCon Ottawa: lightning talk about pgBadger, in French.
  • October 2011 - PgConf.Eu Amsterdam: Migration Oracle to PostgreSQL best practices, in French.

Technical proficiencies

  • Platforms: UNIX (AIX, HP-UX, Solaris), Linux (RedHat, Slackware, Debian, Ubuntu, BSD, ...), Windows
  • Networking: TCP/IP, ISO/OSI, Ethernet, FDDI, VPN, SSH, PGP, WAN, WLAN (wifi), various protocols including SMTP, IMAP, and HTTP.
  • Databases: PostgreSQL, Oracle, MySQL, SQLite, BDB
  • Languages: Shell, HTML, Java, JavaScript, jquery, Perl, C, C++, GTK, TCL/TK, Java, Python, SQL, PL/SQL and PLPGSQL

Work Experience

Expert PostgreSQL / Sénior developpeur

Expert PostgreSQL Indépendant, Grenoble

CTO @ HexaCLuster Corp, Toronto, ON, Canada

October 2023 - now

  • Migration Oracle vers PostgreSQL
  • Formations PostgreSQL
  • Development of a PostgreSQL extension to emulate the Oracle DBMS_LOCK package. https://github.com/HexaCluster/pg_dbms_lock
  • Development of a PostgreSQL extension for SQL Server compatibility. (not public)
  • Development of a PostgreSQL extension to emulate the Oracle UTL_SMTP package. (not public)
  • PostgreSQL patch: 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 to PostgreSQL
  • PostgreSQL training in French
  • Development of a PostgreSQL extension to emulate the Oracle DBMS_ERRLOG package. https://github.com/MigOpsRepos/pg_dbms_errlog
  • Add standard function regexp_like(), regexp_count(), regexp_instr(), regexp_substr() and regexp_replace() to PostgreSQL. https://github.com/postgres/postgres/commit/6424337073589476303b10f6d7cc74f501b8d9d7
  • Development of a PostgreSQL extension to emulate the Oracle DBMS_JOB package. https://github.com/MigOpsRepos/pg_dbms_job

PostgreSQL Expert / Senior developer

LzLabs GmbH, Zurich

Mai 2019 - Mai 2021

  • Development of a PostgreSQL Foreign Data Wrapper for DB2 z/Os
  • Migration of the software suite to PostgreSQL v11
  • Development of a tool to backup a PostgreSQL database with data dumped in binary format. https://github.com/lzlabs/pg_dumpbinary
  • Development of a PostgreSQL extension to support Global Temporary Tables. https://github.com/darold/pgtt/
  • Extension Server side rollback at statement level for PostgreSQL: https://github.com/lzlabs/pg_statement_rollback/
  • Add standard functions regexp_like(), regexp_count(), regexp_instr(), regexp_substr() and regexp_replace() to the orafce extension. https://github.com/orafce/orafce/releases/tag/VERSION_3_15_0

PostgreSQL DBA Senior Consultant

Dalibo, Paris

Oct 2010May 2019

  • Evaluation of customer deployments of PostgreSQL and recommendations on how to improve them.
  • Work to develop Services proposals to achieve customer needs.
  • Guide customers in the development of custom PostgreSQL-based applications.
  • Deliver PostgreSQL courses on site for all level (beginner, developer and advanced).
  • Database migrations from Oracle, SQL Server, MySQL to PostgreSQL
  • Develop architectures to migrate data and entire databases
  • Performance tuning and recommendations to existing database deployments
  • Tuning of SQL statements, optimize stored procedures, analyze query plans, write advanced PLpgSQL
  • Implement replication, High Availability and disaster recovery solutions with Postgres
  • Implement solutions for backup/restore, management/monitoring and perform upgrades and patching.
  • Help scope and develop technical proposals to achieve customer needs.
  • Create, implement and document a suite of PostgreSQL architectures.
  • Publish blogs, white papers and conference contributions.
  • Writes complex programming/scripts.
  • Guide customers on capacity planning.
  • Postgres database management tools and database tuning.
  • PostgreSQL replication technologies Binary Streaming Replication, Logical Replication, Slony.
  • PostgreSQL networking, HBA and connection pooling (PgBouncer, PgPool).

System and Network Manager

Groupe SAMSE, Grenoble

Feb 2000Sep 2010

  • Projects management: architectures design and technical solutions, installation, packaging, documentation, specific development and reporting.
  • System Administration: 200 Unix server (Linux, AIX and SCO) for the network infrastructure, database, ERP, Intranet, RedHat cluster, SAN (EMC Clarion), automated backup library (Overland), virtualization (ESX vmWare).
  • Network Administration: VPN Orange MPLS for 220 agencies, VLAN, STP, High Availability, Wireless AP management. DHCP, DNS, Sendmail, Cyrus Imap, OpenLDAP, Squid…
  • Monitoring and alerting with Nagios, SNMP monitoring, development of specifics monitoring tools.
  • World Wide Administration: DMZ (ftp, www, dns, mailhost), Firewal Checkpoint, domain name registration, vpn site to site and client to site for external service provider, server security (chroot user, chroot Apache+php+perl, ftp).
  • Open Source Integration manager: WWW, DHCP, DNS, messagerie (Webmail, Sendmail, Cyrus Imap), OpenLDAP, light clients with VNC servers, Intranet portal, Internet Squid proxy, courses to other administrators and support. This work have been presented at Linux Solution Paris 2003, http://www.darold.net/projects/LinuxSol2003/

Developer / SysAdmin

Free Lance, Grenoble

Jun 1996Jan 2000

  • TeamLog: Perl Programming course.
  • Xsalto: Design and development of an E-Business Suite for Linux. Environment: CGI-Perl (mod_perl), PostgreSQL, Apache, XML/XSLT.
  • Hewlet-Packard : Technical process. Analyze of Knowledge database to extract relevent information. Environment: Perl on HPUX.
  • LVO International: Design and development of an E-Business web site. Environment: CGI-Perl (mod_perl), PostgreSQL, Apache, XML/XSLT.
  • Sirial: On site installation and configuration of an embedded firewall (NextLand ISB100) for company SIRIAL.
  • Hewlet-Packard : development of a high speed network scanner for security auditing. Port mapper and scanner for network service (http, smtp, telnet, ftp, pop3, etc.) on large network (+2000 machines). Perl program with HTML reports.
  • Group SAMSE: Design of a network architecture (DMZ), installation and configuration of a firewall, proxy cache, serveur WWW. Environment: System Linux, IP Masquerading, Ipfwm, Proxy Squid, serveur Apache.

Developer

Monit'Air (Heli-Union), Grenoble

May 1995 - May 1996

  • Complete development of an application allowing to configure, export data and report fly statistics from a fly recorder for copter. Update to follow specifications of the Civil Security and national Police. Environment: Visual Basic sur NT4.0/Windows95 using Access95 RDBMS.
  • Installation and configuration of NT 4.0 servers. Protocoles NetBUI et TCP/IP with PC under Win95.

Developer

Astronomical Laboratory Calern, Nice

Nov 1994 - Jan 1995

  • Write of a French HowTo Linux to install and configure RDBMS Postgres95 (PostgreSQL).
  • Development of a network service to register demands of professional astronomers to take astronomical shots. Environment: CGI/C interface between a HTTP server and a relational database (Postgres95), GUI to manage users and shots developped in C, Motif and XWindow. Works on HP9000/710 (HPUnix) with Linux port.

Education

University degree Software and Industrial Programmer.

Grenoble, 1995

University degree Human Sciences

Grenoble, 1987

French high-school diploma

Grenoble, 1986

 (Baccalaureat Scientifique)

OpenSources projects

  • Ora2Pg : Oracle to PostgreSQL database schema converter. http://ora2pg.darold.net/
  • pgBadger : A fast PostgreSQL Log Analyzer . http://dalibo.github.io/pgbadger/
  • pgFormatter : SQL and PlPgSQL PostgreSQL SQL syntax beautifier. http://sqlformat.darold.net/
  • pgCluu : PostgreSQL Cluster performances monitoring and auditing tool. http://pgcluu.darold.net/
  • pg_dumpbinary : Development of a tool to backup a PostgreSQL database with data dumped in binary format. https://github.com/lzlabs/pg_dumpbinary
  • PostgreSQL extensions :
    • uri : extension to add uri data type for PostgreSQL. https://github.com/darold/uri
    • external_data : allow access to "external files" from PostgreSQL server file systems like BFILE in Oracle. https://github.com/darold/external_file
    • pgtt : PostgreSQL extension to create, manage and use Oracle-style Global Temporary Tables and the others RDBMS. https://github.com/darold/pgtt
    • pg_statement_rollback : extension to add Server side rollback at statement level to PostgreSQL: https://github.com/lzlabs/pg_statement_rollback/
    • pg_dbms_errlog : extension to emulate the Oracle DBMS_ERRLOG package. https://github.com/MigOpsRepos/pg_dbms_errlog
    • pg_dbms_job : extension to emulate the Oracle DBMS_JOB package. https://github.com/MigOpsRepos/pg_dbms_job
    • pg_dbms_lock : extension to emulate the Oracle DBMS_LOCK package. https://github.com/HexaCluster/pg_dbms_lock
    • hexa_mssqlfce : extension compatibility layer with SQL Server into PostgreSQL. https://github.com/HexaCluster/hexa_mssqlfce
    • pg_utl_smtp : extension to emulate the Oracle UTL_SMTP package. https://github.com/HexaCluster/pg_utl_smtp
  • pgpool : severals contributions http://www.pgpool.net/docs/pgpool-II-3.5.4/NEWS.txt
  • Apache2::ModProxyPerlHtml : Most advanced Apache output filter to rewrite HTTP headers and HTML links for reverse proxy usage.. http://modproxyhtml.darold.net/
  • SquidClamAv : Dedicated ClamAV antivirus redirector for Squid to scan HTTP flow. http://squidclamav.darold.net/
  • SendmailAnalyzer : tool to monitor sendmail or postfix MTA usage and generate HTML reports with graphs. http://sareport.darold.net/
  • SquidAnalyzer : tool to report general statistics about hits, bytes, users, networks, top URLs, and top second level domains. http://www.darold.net/projects/SquidAnalyzer/
  • SquidGuardMgr : GUI to manage SquidGuard blocklists and ACLs. http://squidguardmgr.darold.net/
  • Sysusage :  system monitoring and alarm reporting tool. http://sysusage.darold.net/
  • OpenLdap : patch to add support of PostgreSQL as OpenLDAP backend, http://www.openldap.org/lists/openldap-bugs/200112/msg00024.html

 

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