Pingu
Computer MySQL PostgreSQL Books Publications
Spielereien Kanu Business TopoDB POI Klettersteigen History TransPool Thermal Baden Brokenstuben Goldwaschen
Blog Contact
Shinguz
Google
/ch/open

DOAG K + A 2024 - Notizen

DOAG 2024 Konferenz + Ausstellung: Agenda

JavaScript in der Datenbank? Brauche ich das eigentlich? Ganz vielleicht sogar!

Martin Bach @ ORACLE Deutschland B.V. & Co. KG, Vortragsbeschreibung

  • Um JavaScript Entwickler abzuholen
  • Ergäntzung zu PL/SQL und Java
  • “Single Point of Truth”

Lohnt sich der Umstieg auf Visual Studio Code für Datenbankentwickler?

Carolin Krützmann, Vortragsbeschreibung

Datenbank Administration neu denken 2.0

Andre Lünsmann @ Barmenia Krankenversicherung AG, Vortragsbeschreibung

  • Automatisierung (maximal)
  • KI gestützte Ausbildung
  • Lösungen vorschlagen bei Support Cases / Assistant
  • Search Engine

“Multicloud”: Scale out PostgreSQL über mehrere Clouds

Borys Neselovskyi @ EnterpriseDB Senior Sales Engineer, Vortragsbeschreibung

  • Cloud Exit Strategy
  • Vendor lock-in
  • PostgreSQL HA
    • Shared Disk failover
    • Filesystem Replication Block Device
    • Trigger based Replication
  • Physical Replication (WAL shipping (old), WAL streaming (new), Async (default), Sync) → innerhalb RZ
    • Async: RPO != 0
    • Was passiert bei: Packet loss???
    • Delayed Replication ist möglich
    • Sync
    • Streaming
    • Downtime for Major Upgrades!!!
  • Native Logical Replication → Besser für RZ → RZ
  • EDB Postgres Distributed (PGD) (EE) m/m a/a
    • automatic conflict resolution → Regelbasiert

A PostgreSQL fork for horizontal scalability: YugabyteDB

Franck Pachot @ Yugabyte, Vortragsbeschreibung

   +---------+         +---------+         +---------+
   | Parser  |         | Parser  |         | Parser  |
   | Analyze |         | Analyze |         | Analyze |
   | Planner |         | Planner |         | Planner |
   | Execute |         | Execute |         | Execute |
   +---------+         +---------+         +---------+
                  X                   X
+---------------+   +---------------+   +---------------+
|    Doc DB     |   |    Doc DB     |   |    Doc DB     |
| Storage Layer |   | Storage Layer |   | Storage Layer |
+---------------+   +---------------+   +---------------+
        |                   |                   |
     -------             -------             -------
    /       \           /       \           /       \
    ---------           ---------           ---------
    |       |           |       |           |       |
    |       |           |       |           |       |
    +-------+           +-------+           +-------+

Building a Global, High-Availability Database with Galera Cluster: A Live Demo

Seppo Jaakola @ Codership OY, Vortragsbeschreibung

Performance Configuration (in WAN)

  • wsrep_provider_options:
gcs.max_packet_size=1048576
evs.send_window=512
evs.user_send_window=256
gcs.fc_limit=128
  • wsrep_applier_threads / wsrep_slave_threads
  • binlog_row_event_max_size, binlog_cache_size = 2M

at TCP Level:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.ipv4.tcp_slow_start_after_idle = 0

Ein praktischer Einstieg in Kubernetes

Michael Kloker @ Boehringer Ingelheim GmbH, Vortragsbeschreibung

  • Namespaces: logische Trennung
  • Deployment: n Pods
  • Pod: Container
  • Service: Zugriff und Loadbalancer auf Pods
  • Ingress: Bridge von ausserhalb in einen Kubernetes Cluster
    • WSL (Windows)

    • Docker Desktop (Windows)

    • $ kubectl get nodes

    • helm Package Manager für Kubernetes

    • $ helm repo add Kubernetes - https://...

    • $ help repo update

    • Admin-Account

      • $ kubectl apply -f xxx.yaml
      1. Create Namespace
      • $ kubectl get ns
      • $ kubectl api-resources
      1. Create DB
      2. Create Service
      3. Create Frontend
      4. Selector
      5. Ingress-Route (traefik) - access from outside
      6. Ingress-Route
  • Troubleshooting
  • Scaling
  • Persistent Volumes (PVC)
    • Pod-Neustart: Daten sind weg
  • NodePort → Import data into DB, direct access
  • Portforwarding → Import data into DB, direct access
  • Customized Images

Einführung von PostgreSQL in einer Oracle-“Bude”

Bernd Patolla @ In & Out AG, Vortragsbeschreibung

“PostgresSQL”: So wird man ein PostgreSQL-DBA: vom Anfänger zum Fortgeschrittene

Ilya Kosmodemiansky @ Data Egret GmbH, Vortragsbeschreibung

TODO: Download slides!

  • PostgreSQL Cluster = Instanz
  • PostgreSQL RC: Mai/Juni
  • PostgreSQL GA: Sepember/Oktober → 1/2 Jahr abwarten
  • Einstellungen:
    • ≤ v16 Checksum war aus, pg_checksums → einschalten!
    • amcheck Extension (regular check)
    • postgresql.conf
    • sharded_buffer = 25% RAM
    • autovacuum_vacuum_scale_factor = 0.2 → 0.02 make “garbage collection” more aggressive
    • View pg_settings \X = \G (MySQL)
    • ALTER SYSTEMpostgresql.conf.auto
    • pgbouncer → Connection Pooler (Muss!)
      • PostgreSQL ist auf dem Weg vom Process- zum Thread-Modell
      • 1000 - 10000 Client Connections
      • Nicht bei Java (Connection Pooling) aber bei PHP, Python, Go
      • pool_mode = transaction (best)
    • Replikation
      • Physical HA Sync. vs. Async: Committed on Replica, Replica weg → Cluster steht
      • Logical HA, CDC, Analytische Abfragen
      1. Replikations-User, pg_hba.conf (Primary)
      2. Replica: rm data + log
      3. [pg_basebackup](https://www.postgresql.org/docs/current/app-pgbasebackup.html) - ... (< 10 TB)
      4. pg_is_in_recovery
      5. Log auf Fehler prüfen
      6. pgbouncer → Replica + VIP + HAproxy
    • Backup/Recovery
      • pg_dump (kein PiTR möglich) RPO >> 0
      • VM Snapshots → korrupte VM Backups möglich Veeam macht es falsch → Test ob Recovery möglich ist!
      • PiTR: pg_basebackup, pgBackRest
        • pg_basebackup: Kein inkrementelles, kein parallels Backup möglich
        • Empfehlung pgBackRest (hat Backup Catalog) für >> 1 TB
        • Catalog ← Primary → Replica

Is PostgreSQL catching up with the Oracle Database?

Ludovico Caldara @ ORACLE Deutschland B.V. & Co. KG, Vortragsbeschreibung, Vortragsfolien, Video

  • PostgreSQL is growing, has momentum
  • Reason: 2014 AWS adopted PostgreSQL
  • PostgreSQL Vanilla Core
  • Core Team: 7 (3 EDB, 1 AWS, 1 MS, 1 Crunchy Data, 1 Linpro)
  • Major Contributors: 34
  • Extensions must be added (minimum set of extensions) → Carefull about quality! 1000+ on Github
  • Problems:
    • shared_buffers: PostgreSQL Shared Buffers vs free RAM
    • XID Wraparound
    • PostgreSQL has a bad MVCC implementation

      Our research at Carnegie Mellon University […] have shown that its MVCC implementation is the worst among the other widely used relational DBMSs, including MySQL, Oracle and Microsoft SQL Server.

      Source

    • […] the XID counter wraps around to zero, […] In short, catastophic data loss.

      Source

    • Things haven’t changed in 30+ years!
    • Most annoying issues:
      • Data duplication
      • Table bloat
      • Index write amplification
      • Visibility maps
      • Transaction Wraparound
      • Vacuum management
      • Transactional DDLs

Migrationsmagie: Die Macht von Liquibase nutzen

Sebastian Reinhard @ merlin.zwo InfoDesign GmbH & Co. KG, Vortragsbeschreibung

  • Szenario: ERP erneuern - Liquibase alternatve Flyway
  • Liquibase
    • Ist Open Source + Pro Version
    • Unterstützt verschiedene Stages
    • Ist CLI basiert
  • Changelog = Masterscript
    • Changeset
    • Context z.B. Mandant oder Module
  • Der Start:
    • Intialization
    • $ liquibase --help
    • init project
    • changelog-sync
    • generate-changelog (reverse engineering)
  • Migration
    • validate (Syntax Check)
    • update (anwenden)
    • update-sql → Generiert SQL script
    • tag --tag=v1.20
  • Rollback
    • rollback --tag=v1.20
    • rollback-count = 3
    • rollback-to-date = YYYY-MM-DD

What’s New in MySQL and HeatWave

Mughees A. Minhas, SVP Products (OEM, OCI, …) @ Oracle Corp., Vortragsbeschreibung

  • 2020 HeatWave came out
  • With AGPL Oracle thinks about closing the gap between CE + EE
  • Biggest difference between CE and EE: Security
  • MySQL 9.2: MySQL REST-API (call, on MySQL Router Level???)
  • HeatWave Option is NOT in CE yet
  • There exists a EE Developer License
  • MEM → obsoleted → OEM or Cloud Monitoring Service (Monitoring as a Service)
  • “SQL insight” → SQL DWH
  • Small LLM Llama-2-7b or Mistral 7B
  • LLM are specialized for certain usecases! → So choose the right LLM
  • HeatWave/HyperGraph Optimizer can be compiled in? → Possibly! At least the source code has many parts referring to HeatWave Optimizer!
  • News JSON Format:
    • EXPLAIN ANALYZE was not able to print JSON output
    • HeatWave/HyperGraph Optimizer uses a new Iterator Structure, that was not sufficiently represented in the old format.
    • More details here: New JSON format for EXPLAIN

Docker, Puppet, Ansible, AutoUpgrade und Kollegen - Automatisierung für DBAs

Randolf Eberle-Geist, Vortragsbeschreibung

  • HashiCorp Vagrant (Wikipedia_en) → Oracle VirtualBox
  • Docker
    • docker compose
    • docker swarm
    • kubernetes
  • Konfigurationmanagement
    • Puppet (Agent basiert, grosse Umgebungen)
    • Ansible (keine Agents, ssh, kleinere Umgebungen)
    • Chef