Announcement

Collapse
No announcement yet.

tempdb läuft voll

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • tempdb läuft voll

    Hallo Zusammen,

    im Bereich Datenbanken bin ich noch sehr neu und benötige daher Eure Hilfe.

    Auf einem SQL-Server sind mehrere kleine Datenbanken. Jetzt habe ich bereits das zweiter Mal gehabt, dass mir die tempdb voll geschrieben wurde und keine Benutzerinteraktionen mehr möglich waren.

    Beide Male hatten wir jetzt das Glück, dass einer meiner Kollegen noch an dem Server angemeldet war und somit über den Enterprise Manager ein Truncate Only durchführen konnte. Ist man nicht am Enterprise Manager angemeldet habe ich keine Möglichkeit eine Abfrage durchzuführen, somit auch nicht das Truncate Only.

    Wie kann ich aber zukünftig sicherstellen, dass ich den Server weiterhin erreiche bzw. mit dies nicht wieder passiert?

    TempDB noch mal wieder zu vergrößern ist dabei aus meiner Sicht nicht die richtige Entscheidung und auch nicht der richtige Weg.

    Danke für Eure Hilfe.
    Stefie

  • #2
    Werden vernünftige Vollbackups gefahren? In diesem Rahmen könnten alle Transaktionslogs abgeschnitten werden.

    Um welche DB-Größe handelt es sich denn das nicht einfach die DB vergrößert werden kann? Terra-Bytes?

    Comment


    • #3
      Hallo Stefanie,

      seit dem MSSQL2005 wird die TempDB stärker verwendet also noch zu 2000er Zeiten; das merke ich hier bei uns auch.
      Truncate Log hilft hier nur etwas (übrigens, ab 2008 gibt es die Option nicht mehr und das aus gutem Grund). Das schneidet nur das Transaktions-Protokoll ab (zumal im Standard die TempDB eh schon Wiederherstellungsmodel = Einfach hat), die Datenbank-Datei bleibt dabei unverändert; die kannst Du mit DBCC SHRINKDATABASE(tempdb) verkleinern lassen.

      Aber in der Regel hat es so seinen Grund, wenn die TempDB verwendet wird:
      - Sortierungen/Hash Joins, die aufgrund der Größe nicht mehr im Speicher gehalten werden können
      - Indizes, die mit der Option "SORT_IN_TEMPDB = ON" erstellt wurden (mmh, kann man übers SSMS gar nicht erst einschalten)
      - Verwendung von lokal/global-temporären Tabellen (#temp / ##temp)

      Hier kann ich nur empfehlen, die Ursache heraus zu finden, statt an den Symptomen zu laborieren, z.B. per Profiler die TempDB überwachen lassen.
      Um erst mal über die Runden zu kommen, könntest Du per SQL Server Agent die TempDB regelmäßig verkleinern lassen.
      Je nach Größe erzeugt das natürlich IO-Last, was Deinen Betrieb dann ausbremst => also Nachts.
      Olaf Helper

      <Blog> <Xing>
      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

      Comment


      • #4
        Hallo,

        man ich merke ich stehe echt am Anfang

        Also derzeit wird Nachts eine Vollsicherung für jede DB gefahren und alle 2 Std. eine Translogsicherung. Die Datenbanken haben unterschiedliche Größen, sie gehen von den kleinen MB's hoch bis zu TB's.

        Comment


        • #5
          Hallo Stefanie,

          bis Du mit dem Problem weitergekommen bzw. hast Du es gelöst?

          MS hat auch etwas dazu veröffentlicht:

          Troubleshooting Insufficient Disk Space in tempdb
          http://msdn.microsoft.com/en-us/library/ms176029.aspx

          Working with tempdb in SQL Server 2005
          http://www.microsoft.com/technet/pro...ithtempdb.mspx
          Olaf Helper

          <Blog> <Xing>
          * cogito ergo sum * errare humanum est * quote erat demonstrandum *
          Wenn ich denke, ist das ein Fehler und das beweise ich täglich

          Comment

          Working...
          X