ImLogLocations - System Parameter
The System parameter ImLogLocations is used to override the limited default locations of SQL Server and allows the Logging Service to create new Log Databases and/or files to be placed on different disks with a round-robin pattern.
As you can see from the example image below, SQL Server has limited GUI options to determine which disks to use for DATA and Log.
Here's an example of default settings, image from SQL Server instance properties
System Parameter Name | Data Type | Values/Example | Comment |
---|---|---|---|
ImLogLocations | json | json object as exemplified later on this page | Default = null (SQL Server default settings apply) |
This feature was introduced with version 4.3.0.26
JSON Structure and Examples
The Log Database has been designed to utilize multiple logical disks for different file groups to scale and to improve performance where needed. The following file groups exist for the Log Database:
- Data
- ImageData - Nodinite stores the payload of messages on SQL Pages outside of the Events table to limit fragmentation and pages used
- Index - For use with clustered indexes and other indexes
- Primary - SQL Default, Nodinite does not use this file group at all
- Log - Transaction Log (Since we recommend Simple recovery mode this file should only grow during large delete operations) - Shrink as you like
The LastOrderDeployed is a positive zero (0) based value indicating which item in the array to use. The max value must therefore be several items in the array - 1.
Simple example with 1 disk to override the default SQL Path
data, index, imagedata and log are placed on the same disk H:.
{
"Configurations": [{
"CustomPathData": "H:\\MSSQLSERVER\\DATA\\",
"CustomPathImagedata": "H:\\MSSQLSERVER\\DATA\\",
"CustomPathIndex": "H:\\MSSQLSERVER\\DATA\\",
"DefaultPath": "H:\\MSSQLSERVER\\DATA\\",
"DefaultPathLog": "H:\\MSSQLSERVER\\LOG\\",
"Order": 0
}],
"LastOrderDeployed": 0
}
Advanced example using 4 disks in 3 rotating groups
data, index and imagedata rotate over 3 disks (K:, L: and M:) and the primary and transaction log is placed on the 4:th disk (N:).
{
"Configurations": [{
"CustomPathData": "K:\\MSSQLSERVER\\DATA\\",
"CustomPathImagedata": "L:\\MSSQLSERVER\\DATA\\",
"CustomPathIndex": "M:\\MSSQLSERVER\\DATA\\",
"DefaultPath": "N:\\MSSQLSERVER\\DATA\\",
"DefaultPathLog": "N:\\MSSQLSERVER\\LOG\\",
"Order": 0
},
{
"CustomPathData": "M:\\MSSQLSERVER\\DATA\\",
"CustomPathImagedata": "K:\\MSSQLSERVER\\DATA\\",
"CustomPathIndex": "L:\\MSSQLSERVER\\DATA\\",
"DefaultPath": "N:\\MSSQLSERVER\\DATA\\",
"DefaultPathLog": "N:\\MSSQLSERVER\\LOG\\",
"Order": 1
},
{
"CustomPathData": "L:\\MSSQLSERVER\\DATA\\",
"CustomPathImagedata": "M:\\MSSQLSERVER\\DATA\\",
"CustomPathIndex": "K:\\MSSQLSERVER\\DATA\\",
"DefaultPath": "N:\\MSSQLSERVER\\DATA\\",
"DefaultPathLog": "N:\\MSSQLSERVER\\LOG\\",
"Order": 2
}],
"LastOrderDeployed": 0
}
Frequently asked questions
Additional solutions to common problems and the Nodinite System Parameters FAQ exist in the Troubleshooting user guide.
How do I change the value?
Changing a value for the pre-defined System Parameters is described in the generic 'How do I change the System Parameters' article.