2.7 Database Deployment Recommendations

You should consider the following guidelines before installing and configuring any database system for File Reporter.

2.7.1 Use a Dedicated Server

Due to the potential size of the collected scan data and the I/O processing needed for large database installations, we strongly recommend that you install the database on a dedicated server.

2.7.2 Use a Dedicated Database Instance

In addition to sizing requirements, we recommend that you use a dedicated SQL Server instance or PostgreSQL cluster to prevent conflicts with other vendor software. File Reporter needs access to manage the database security principals and roles, which requires access at the instance level. In addition, future developments of File Reporter might include other instance-specific updates such as CLR extensions for SQL server, security principal and role management for delegation purposes, and custom extensions, all of which require management at the instance or cluster level.

In short, do not install the File Reporter database in an instance or cluster that shares databases with other software.

2.7.3 Provide Sufficient I/O Bandwidth

Relation Database Management Systems are by nature very I/O intensive, especially when it comes to persisted storage on disk. For best performance, consider the following:

  • Provide SSD-backed storage if possible for the database tablespaces or filegroups*.

  • Alternatively, provide RAID-10 spindle storage for database tablespaces or filegroups*.

  • Do not use RAID-5 storage for database storage.

  • Do not use Network Attached Storage for database storage.

  • If using a SAN, be sure to provide at least 10 GB or more throughput (ideally, the SAN link should be faster than the I/O capacity of the backend storage system, so that it is not the bottleneck).

  • Be sure to enable battery-backed cache for RAID and SAN controllers.

  • Optionally, place the transaction logs on a separate RAID-1 or SSD.

    This can be done either during the installation of the SQL Server instance, or afterwards.

    For procedures on moving database files after the installation of an SQL Server instance, see https://msdn.microsoft.com/en-us/library/ms189133.aspx.

    For PostgreSQL, moving database files is a simple process of stopping the database server, relocating the pg_xlog folder, and then creating a symbolic link to the new path.

    The need for separate disks for transaction logs is minimized if the main storage is already on RAID-10 or SSD, and the I/O channel is not already saturated.

    *For basic information on SQL Server filegroups, see https://msdn.microsoft.com/en-us/library/ms189563.aspx.

    *For basic information on PostgreSQL tablespaces, see http://www.postgresql.org/docs/9.4/static/manage-ag-tablespaces.html.