1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Entweder oder Anbfrage

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von tomi707, 18 November 2010.

  1. tomi707

    tomi707 Neuer Benutzer

    Hallo Leute,


    Mein Problem ist ich habe eine Tabelle in der die prozentuellen Verfügbarkeiten meiner Server geschrieben werden. Also wieviel Prozent der Zeit er UP und DOWN war.

    Ich habe 3 Server und will daraufs einen Durschnitt der Verfügbarkeit bekommen.
    Wäre ja nicht so schwer wenn nicht 2 Server im Cluster(Server1 und Server2) laufen.

    D.h. auch wenn Server1 ausfällt und die beiden anderen weiterlaufen, hab ich für den Benutzer eine Verfügbarkeit von 100%


    Jedoch hab ich noch keinen Weg gefunden das bei der AVG() Funktion zu berücksichtigen.

    Hoffe ihr könnt mir da helfen.

    Tabelle sieht ca so aus

    Code:
    Date | Host | % UP | % DOWN |
    ----------------------------------
    20.02.10 | Server1 | 0 | 100 |
    20.02.10 | Server2 | 100 | 0 |
    20.02.10 | Server3 | 100 | 0 |
    21.02.10
    ....
     
  2. thomas_w

    thomas_w Datenbank-Guru

    AW: Entweder oder Anbfrage

    Sofern es nur einen Datensatz pro Tag und Server gibt,
    dann könnte es so klappen. Im Prinzip fehlt Dir eine Tabelle
    die festlegt, welche Server einen Cluster bilden.

    Code:
    SELECT datum,
           CASE host
             WHEN 'Server1' THEN 'Cluster1'
             WHEN 'Server2' THEN 'Cluster1'           
             WHEN 'Server3' THEN 'Server3'           
            END AS host,
            CASE 
             WHEN SUM(up) > 100 THEN 100
             ELSE SUM(up)
            END AS verfuegbarkeit
      FROM serverlog
     GROUP BY datum,
              CASE host
               WHEN 'Server1' THEN 'Cluster1'
               WHEN 'Server2' THEN 'Cluster1'           
               WHEN 'Server3' THEN 'Server3'           
              END
    ORDER BY datum,
              CASE host
               WHEN 'Server1' THEN 'Cluster1'
               WHEN 'Server2' THEN 'Cluster1'           
               WHEN 'Server3' THEN 'Server3'           
              END;
     
    +------------+----------+----------------+
    | datum      | host     | verfuegbarkeit |
    +------------+----------+----------------+
    | 2010-02-20 | Cluster1 |            100 |
    | 2010-02-20 | Server3  |            100 |
    +------------+----------+----------------+
    2 rows in set (0.00 sec)
    mysql>
    
    Grüße
    Thomas
     
  3. thomas_w

    thomas_w Datenbank-Guru

    AW: Entweder oder Anbfrage

    Ergänzen hier noch meine Testdaten. Leider hat [Edit] bei der obigen Nachricht nicht mehr funktioniert.

    Code:
    CREATE TABLE serverlog (
     datum DATE NOT NULL,
     host VARCHAR(20) NOT NULL,
     up INT NOT NULL,
     down INT NOT NULL
    );
    INSERT INTO serverlog VALUES
    ( '2010-02-20', 'Server1', 0, 100),
    ( '2010-02-20', 'Server2', 100, 0),
    ( '2010-02-20', 'Server3', 100, 0);
    
    Grüße
    Thomas
     
Die Seite wird geladen...

Diese Seite empfehlen