Hallo liebe Community,
ich möchte die Zuverlässigkeit der Verbindung meiner Python Anwendung (Python 3.9.7 mit der Lib: psycopg 2.9.1) zum Datenbank-Server prüfen und ich möchte die DB aber nicht irgendwie stören, noch möchte meinen Rechner nicht von Netzwerk trennen, gibt es irgendein Werkzeug/Lib das mir Datenbankausfälle bzw. Störungen simulieren kann ?
Oder anders gefragt könnt ihr mir eins Empfehlen ?
Über Tipps würde ich mich sehr freuen.
Grüße
Datenbankausfall simulieren
- DB-Server stoppen
- Datenbank mittendrin mal umbenennen (das ist aber eine sehr exotische Sache, kann aber theoretisch vorkommen.... dass jemand sowas verrücktes macht. Ob das alle DBMS während des "Betriebs" erlauben, weiß ich aber nicht)
- je nach DBMS kann man dem User mit dem du Dich anmeldest ggf Schreibrechte entziehen
- Datenbank mittendrin mal umbenennen (das ist aber eine sehr exotische Sache, kann aber theoretisch vorkommen.... dass jemand sowas verrücktes macht. Ob das alle DBMS während des "Betriebs" erlauben, weiß ich aber nicht)
- je nach DBMS kann man dem User mit dem du Dich anmeldest ggf Schreibrechte entziehen
-
- User
- Beiträge: 49
- Registriert: Mittwoch 22. September 2021, 14:01
Ich nutze PostgreSQL
-
- User
- Beiträge: 49
- Registriert: Mittwoch 22. September 2021, 14:01
Ich möchte eben nicht irgendwas an der DB ändern, darf ich auch nichtBuchfink hat geschrieben: ↑Mittwoch 20. Oktober 2021, 15:33 - DB-Server stoppen
- Datenbank mittendrin mal umbenennen (das ist aber eine sehr exotische Sache, kann aber theoretisch vorkommen.... dass jemand sowas verrücktes macht. Ob das alle DBMS während des "Betriebs" erlauben, weiß ich aber nicht)
- je nach DBMS kann man dem User mit dem du Dich anmeldest ggf Schreibrechte entziehen
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@PythonCodingFun: Dann setz Dir halt eine eigene PostgreSQL-Datenbank auf, fülle die mit ein paar Testdaten und spiel dann damit nach herzenslust herum.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Erstmal solltest du dir im klaren sein was du mit Datenbankausfall oder Störung überhaupt meinst und vielleicht auch was du mit der Information machen möchtest. Geht es dir hier primär um Szenarien die du auf Anwendungsseite behandeln kannst wie switchover/failover und deadlocks um zu testen ob du Transaktionen in diesen Fällen wiederholst? Geht es dir um Probleme auf Postgres Seite die zwar Clients betreffen aber dort nicht zu kompensieren sind?
Es gibt ja eine ganze Reihe von Dingen die so schief gehen können nur mal zur kurzen Auswahl
Es gibt ja eine ganze Reihe von Dingen die so schief gehen können nur mal zur kurzen Auswahl
- Störung an Festplatte/SSD mit Verlust von Bandbreite?
- Korruption der Festplatte/SSD?
- Kompletter Verlust einer Festplatte?
- Netzwerk Probleme (z.B. Availability Zone verloren)?
- Kein Speicherplatz mehr?
- Eines der bisher erwähnten Dinge aber nur eine Primary, nur eine Replica oder irgendeine andere Konstellation von Instanzen ist betroffen.
- Verlust von Replicas bei synchronous replication?
- Replication Lag?
- Replication Lag und Speicherplatz auf der primary wird eng durch WAL?
- Switchover oderFailover (mit/ohne Datenverlust)?
- Verlust von Konsensus und die primary ist länger als für switchover/failover üblich read-only?
- VACUUM kommt nicht mit und transaction IDs sind nicht mehr verfügbar?
- Keine primary keys mehr verfügbar (serial/int ist doch überraschend klein manchmal)?