As a rule DBA’s are careful about what they install on their production server. And rightly so. It is your duty to ensure that nothing is installed which may affect the performance or integrity of your database server. However, this should not prevent you from installing tools which may save your behind in a pinch.
So what is ok to install and what isn’t? Well, I follow two simple rules:
- Know where the tool you are trying to install comes from
Don’t install anything from an unknown source - Understand what is being installed and what changes will be made
Knowledge is power. If you know what is being installed and why, you can weigh the potential impact against the potential gain, and in this way you can make an informed decision on whether or not to install it on your server
ApexSQL Log is a tool, which provides you with the ability to read the SQL Server transaction log. This is especially useful, when there was an accidental or malicious update or delete by an unauthorized party. In such a scenario, ApexSQL Log can be a life saver. Not only can it tell you who was responsible, but it can also retrieve the changed information and create a redo or undo script to help you to rectify the problem.
Because ApexSQL Log needs to install components on the server that hosts SQL Server when performing remote auditing, a lot of DBA’s may get reluctant to install it out of fear of what it may do to their server. No components are installed on the SQL Server itself.
What are ApexSQL server side components?
ApexSQL server side components is a windows service that is used to read the .ldf file of a remote online database.
Why do we need the ApexSQL Log server side components?
Since SQL Server is constantly writing to the online transaction log file, it is required to lock the file, much the same as it would do to a table when a significant number of rows are being inserted.
In order to get the information out of the online transaction log, ApexSQL log needs to be able to access this file. This is done by duplicating the windows file handle of the SQL Server transaction log. Due to windows security restrictions this cannot be done remotely which forces ApexSQL log to have to install a component which can run natively on the server.
When ApexSQL duplicates the file handle it gains READ-ONLY access to the SQL Server transaction log. So there is no way that it can damage the file or alter its content.
What exactly gets installed on the server?
Here is a list of ApexSQL files which get installed by the ApexSQL Log installer.
C:\ProgramData\ApexSQL\ApexSQLEngine\
- ApexSql.Activation.dll
- ApexSql.Base.dll
- ApexSql.Common.Logging.dll
- ApexSql.Engine.Agent.exe
- ApexSql.Engine.Communication.dll
- ApexSql.Engine.dll
- ApexSqlLogCorex64.dll
- ApexSqlLogCorex86.dll
- ApexSqlServerHelperx64.exe
- ApexSqlServerHelperx86.exe
c:\ProgramData\ApexSQL\ApexSQLSsc\
- ApexSql.Common.Logging.dll
- ApexSql.Ssc.Communication.dll
- ApexSql.Ssc.Host.exe
Are there any SQL Server objects created?
No, ApexSQL Log, does not create any SQL Server objects from application version 2016 onwards.