This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

Is there a way to put a quota limit on the size of the SolarWindsOrion database?

I have noticed that the two top tables that can grow uncontrollably overnight are syslogs and traps.  Along with traps, the trapvarbinds also gets bigger.  The recent issue I had with our SQL server is that we had no space left for a maintenance backup after the trapvarbinds table suddenly ate up all the disk free space.  Together with the failure to do a maintenance backup, there is a problem of growing transaction logs.  We were able to solve the issue by expanding the disk size with additional SAN storage allocation.  (By the way, the backup target, and the database are using the same disk drive.)

However, my new concern now is this.  Can I limit the size of trapvarbinds table and the transaction logs? Or is there a way to limit the size of SolarwindsOrion database itself?  If I can put a limit to their sizes, I can always make sure that I'll always have free space enough for maintenance backup.

  • Would love to understand this as well. We recently had few devices started to send millions of traps, which has made the whole NPM unresponsive. I have implemented report and alert since to alert in case we have too many traps form one particular device. Below SQL report will give you devices which have more than 100 traps received over the last 1 hour.

    SELECT

      t.NodeID

    ,t.IPAddress

    ,t.Hostname

    ,CASE

        WHEN (t.NodeID <> '0' AND t.NodeID IS NOT NULL)

        THEN Nodes.Caption

        ELSE 'Not in SolarWinds'

       END AS 'Caption'

    ,CONVERT(NVARCHAR(50),COUNT(*)) + ' (over the last 1440 min)' AS 'TRAPS COUNT'

    FROM Solarwinds.dbo.Nodes WITH(NOLOCK)

    RIGHT JOIN Solarwinds.dbo.Traps t WITH(NOLOCK) ON t.NodeID = Nodes.NodeID

    WHERE

      t.DateTime > DateAdd(MINUTE,-1440,GETDATE())

    GROUP BY t.NodeID,Nodes.NodeID,t.IPAddress,t.Hostname,Nodes.Caption

    HAVING

      COUNT(*) > MAX(100)

    ORDER BY COUNT(*) DESC

  • For the transaction logs issue change the database recovery mode to simple, you only need the full recovery mode if using transactional backups.

  • here is similar script for SysLog COUNT if anyone finds it useful