| By product |
| Other |
|
Knowledgebase Tips and How-to Articles for ApexSQL Tools ApexSQL Log Pre-Installation Notes Applies to ApexSQL Log Summary This article describes what you should know about installing ApexSQL Log's Server-side components on your SQL Server. It enumerates what exactly is installed on your server. ApexSQL Log's installation requirements are fairly small and their overall effect on performance is negligible. Installing ApexSQL Log on your server does not require you to restart your server Description What does ApexSQL Log install on my SQL Server? A. At the file level At the file level ApexSQL Log installs the files below which are saved in the SQL Server instance’s Binn folder Only ApexSqlLog2010Xprocs.dll is saved in the SQL Server instance's 'Binn' folder. The rest of the components are saved in C:\ProgramData\ApexSql\ApexSqlLog2010\ folder for Windows 7, Windows Vista and Windows Server 2008 (Please note that this is a hidden folder) For Windows XP and Windows Server 2003, the location for these components is C:\Documents and Settings\All Users\Application Data\ApexSQL\ApexSQLLog2010\ 1) ApexSql.Common.ArrayOfflineMetadata.dll 2) ApexSql.Common.CommonLib.dll 3) ApexSql.Common.DdlAuditing.dll 4) ApexSql.Common.Decry.dll 5) ApexSql.Common.Dependency.dll 6) ApexSQL.Common.GrammarParser.dll 7) ApexSql.Common.OfflineMetadata.dll 8) ApexSql.Common.Scripting.dll 9) ApexSql.Diff.dll 10) ApexSql.Engine.dll 11) ApexSql.Log.CommunicationProtocol.dll 12) ApexSqlLog2010Activation.exe 13) ApexSqlLog2010ConnectionMonitor.exe 14) ApexSqlLog2010Core.dll 15) ApexSqlLog2010ServerAuditor.exe 16) ApexSqlLog2010ServerHelper.exe 17) ApexSqlLog2010ServerHelper.sys 18) ApexSqlLogApi2010Activation.exe B. At the server-object level At the server-object level the following are added to the master database: 1) xp_ApexSqlLog2010 2) xp_ApexSqlLog2010ConnectionMonitor 3) xp_ApexSqlLog2010ConnectionMonitor_Disable 4) xp_ApexSqlLog2010ConnectionMonitor_Enable 5) xp_ApexSqlLog2010ConnectionMonitor_Info 6) xp_ApexSqlLog2010ConnectionMonitor_State 7) xp_ApexSqlLog2010ConnectionMonitor_Stop 8) xp_ApexSqlLogApi2010 9) sp_ApexSqlLog2010ConnectionMonitor_Start C. The new tables APEXSQL_LOG_LOGIN and APEXSQL_LOG_CONNECTION_MONITOR_SESSION are added Two tables called APEXSQL_LOG_LOGIN and APEXSQL_LOG_CONNECTION_MONITOR_SESSION are also added. These tables are created in the database you have chosen for storing login information. If you leave the default database, the data will be stored in the ApexSQLLog database. Please note that you can choose to remove these tables after installation if you don't need them. The APEXSQL_LOG_LOGIN table is used for storing login information as part of ApexSQL Log’s Connection Monitor (please read the next section for more information on the Connection Monitor). The APEXSQL_LOG_CONNECTION_MONITOR_SESSION table stores the Connection Monitor session information. The Connection Monitor is an optional Server-side component that can be stopped and/or disabled if you don't need some specific auditing information namely: For SQL Server 2000:
Please drop the APEXSQL_LOG_LOGIN and APEXSQL_LOG_CONNECTION_MONITOR_SESSION tables afterwards. For SQL Server 2005 and 2008, the NT user name information will always be available as long as you're connected to the same server where the transaction logs that you are attempting to read, originated from. What is the ApexSQLConnectionMonitor.exe (or, depending on version - ApexSqlLog2010ConnectionMonitor.exe, ApexSqlLog2008ConnectionMonitor.exe, ApexSqlConnectionMonitor2008.exe) for? To obtain connection-specific information, ApexSQL Log uses active connection monitoring through the ApexSQLConnectionMonitor.exe process. This process is designed to be very lightweight, fast, and non-intrusive so it does not interrupt the normal functioning of Microsoft SQL Server. Once the Connection Monitor is installed (it is a part of installed Server-side components), it will, for each new connection, store a row into the APEXSQL_LOG_LOGIN table and a new row into the APEXSQL_LOG_CONNECTION_MONITOR_SESSION table for each new Connection Monitor session. During auditing, ApexSQL Log queries these login tables to obtain connection specific information for each transaction. ApexSQL Log returns this information as blank if information cannot be obtained. Note: Connection monitoring works only for Microsoft SQL Server 2000, SQL Server 2005, SQL Server 2008 and SQL Server 2008 R2. The following information is made available by the ApexSQL Connection Monitor: For SQL Server 2000:
As the ApexSQL Log Connection Monitor inserts one new row into dbo.APEXSQL_LOG_LOGIN table for each new login and one new row into APEXSQL_LOG_CONNECTION_MONITOR_SESSION table for each new session, these tables grow directly in proportion to the number of logins made to the server and Connection Monitor sessions. Please see this troubleshooting article for more information: Very large ApexSQL Log tables As discussed in previous section--if you don't need the information that the Connection Monitor provides, please stop and/or disable it. Do all these cause performance overhead? ApexSQL Log has no performance overhead during audit trail capture since it is not involved in it at all. The application simply reads the transaction logs to gather audit data. This allows auditing to be performed during low load times or even be offloaded to another server. Additional login information which is not available from the transaction log is the only information that is actively captured. This capturing process is done by ApexSQL's Connection Monitor which has minimal overhead. SQL Server 2005, SQL Server 2008 and SQL Server 2008 R2 database transaction logs contain NT user's SID information from which full user name can be extracted. In this case, if application name and client host name are not necessary, ApexSQL's Connection Monitor can be stopped and disabled. If you don't need the Connection Monitor, you also wouldn't need the APEXSQL_LOG_LOGIN and APEXSQL_LOG_CONNECTION_MONITOR_SESSION tables. You can drop or truncate them. Should you decide to enable and run the Connection Monitor in the future, the tables will be automatically re-created if they don't exist Last updated December 26, 2011 Labels: ApexSQL Log |





