cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post
Level 8

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.

Labels (1)
0 Kudos
3 Replies
Level 12

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

0 Kudos

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

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

0 Kudos