By product  
  Other  

Troubleshooting

Troubleshooting and known issues with ApexSQL Tools


Insufficient execute permissions dialog shown when working with the Connection monitor

Applies to
ApexSQL Log

Summary

This article explains what to do when the following message appears "Insufficient permissions to execute server-side components. Please make sure SQL login used has EXECUTE permission on ApexSQL Log extended procedures (xp_ApexSQLLog)"

Symptoms
Insufficient permissions to execute server-side components message shows up when user is connecting to the Connection monitor manager





Cause
Besides the client application, ApexSQL Log installs several extended stored procedures to SQL Server master database. Only a user with enough privileges granted on the master database and these procedures can access Connection monitor manager and view and change its settings

Resolution
SQL login used to access the Connection monitor manager must have at least db_datareader and db_securityadmin database roles and be granted EXECUTE permission on both xp_ApexSqlLogConnectionMonitor_State and xp_ApexSQLLog extended stored procedures. It also needs to have VIEW ANY DEFINITION set upon the master database

About ApexSQL Log
ApexSQL Log is a SQL Server Transaction Log reader that allows viewing transaction log data in read-friendly format. Audit and undo SQL database changes of your choosing. Determine who changed the data and when the change occurred. Read the transaction log to find out who created, changed or dropped a database object

Last updated
November 28, 2011

Labels:

...


System.OutOfMemory exception is thrown

Applies to
ApexSQL Diff,
ApexSQL Log,
ApexSQL Doc

Summary

This article explains what to do when the System.OutOfMemory exception is thrown

Symptoms
System.OutOfMemory exception is thrown. It usually happens when working with large databases, backups or script folders containing large number of objects, generating huge scripts or putting application under strain in general.

Cause
The exception is caused by the .NET framework architecture and the way it allocates memory. Due to the nature of the .NET framework, this cannot be completely removed, however it can be worked around.

Resolution
Use Command Line Interface that these ApexSQL products contain. Using CLI puts less strain on the machine resources.
You can either save your project using GUI and then execute it via CLI, or you can specify all the parameters using CLI entirely.

To make your project using GUI and execute it via CLI:

1) Make your project using GUI and save it

2) Open Command Prompt

3) Navigate to the ApexSQL product installation path
(e.g. cd C:\Program Files\ApexSQL\ApexSQLDiff\
or
cd C:\Program Files\ApexSQL\ApexSQLLog\)

4)  Type:

a) for ApexSQL Diff

ApexSQLDiff.com /project:<project path>\<project name>
(e.g. ApexSQLDiff.com /project:C:\Users\ApexUser\Documents\ApexSQL\ApexSQLDiff  \project.axds)

The script file named “sync.sql” will be created in the ApexSQL Diff installation folder.

b) for ApexSQL Log

ApexSQLLog.com /project:<project path>\<project name> /undo:<filename>      
(e.g. ApexSQLLog.com /project:C:\Users\ApexUser\Documents\ApexSQL\ApexSQLDiff \project.axlp /undo:undoscript.sql)

The script file named “undoscript.sql” will be created in the ApexSQL Log installation folder.

Instead of using CLI in ApexSQL Log, you can output the results into a file and thus avoid showing them in the Main grid.

About ApexSQL Log
ApexSQL Log is a SQL Server Transaction Log reader that allows viewing transaction log data in read-friendly format. Audit and undo SQL database changes of your choosing. Determine who changed the data and when the change occurred. Read the transaction log to find out who created, changed or dropped a database object

Last updated
December 01, 2011

Labels: , ,

...


How to determine if ApexSQL Log CLI has stopped working

Applies to
ApexSQL Log

Summary

This article explains how to determine if ApexSQL Log CLI has stopped working

Symptoms
The application running is undetermined. There are no new output lines in the console

Cause
Analyzing huge transaction logs can cause ApexSQL Log to become non-responsive

Resolution
To check if the ApexSQL Log is still running, do the following:

1. Open Windows Task Manager
2. Select Processes tab and open Select Columns dialog
3. Select I/O Read Bytes
4. Click OK and check this value for ApexSQLLog.exe value




If the value of I/O Read Bytes keeps changing - ApexSQL Log is still analyzing transaction log sources
Also check the size of the output file created by ApexSQL Log. If its size is increasing - ApexSQL Log is still running

About ApexSQL Log
ApexSQL Log is a SQL Server auditing and recovery solution. Use ApexSQL Log to recover data, undo INSERT, UPDATE and DELETE commands and audit schema changes. Read the transaction log to find out who created, changed or dropped a database object.

Last updated
November 25, 2011

Labels:

...


Insufficient credentials exception is thrown when attempting to install the server-side components

Applies to
ApexSQL Log

Summary

This article explains what to do when the "Insufficient credentials" exception is thrown

Symptoms
Exception is thrown during the installation of the server-side components

Cause
Insufficient user permissions to install the server-side components

Resolution
Make sure that the computer user account used to run the installation
• Is a member of the Windows administrators group on the machine the installation has been started on
• Has Windows administrative privileges on the machine on which the SQL Server is installed
• Is a member of the fixed sysadmin SQL Server role

Try to install the server-side components again

See also
ApexSQL Log installation manual

About ApexSQL Log
ApexSQL Log is a SQL Server Transaction Log reader that allows viewing transaction log data in read-friendly format. Audit and undo SQL database changes of your choosing. Determine who changed the data and when the change occurred. Read the transaction log to find out who created, changed or dropped a database object

Last updated
April 9, 2012

Labels:

...


What should I do when I encounter a problem in ApexSQL Log?

Applies to
ApexSQL Log

Summary

This article explains what should be done when performance problems are encountered in ApexSQL Log or there are problems while installing ApexSQL Log server-side components

Symptoms
1) Performance troubles
a) Out of memory exception during data source analysis from the ApexSQL Log GUI
b) Slow work with Main grid in the ApexSQL Log GUI

Tech Tip
Command Line Interface (CLI) must be used for issues mentioned above, detailed info can be read in ApexSQL Log online documentation in the Command Line Interface chapter

2) Problems during server-side components installation

Resolution
Send us the application log files for analysis

Client-side logs are located in:
C:\Users\<user name>\AppData\Local\ApexSQL\ApexSQLLog<major version>\LOG
(for Windows Vista, Windows 7 and Windows Server 2008)
or
C:\Documents and Settings\<user name>\Local Settings\Application Data\ApexSQL\ApexSQLLog<major version>\Logs
(for Windows XP and Windows Server 2003)

Server-side log file is located in:
C:\ProgramData\ApexSQL\ApexSQLLog<major version>\<instance name>\LOG
(for Windows Vista, Windows 7 and Windows Server 2008)
or
C:\Documents and Settings\All Users\Application Data\ApexSQL\ApexSQLLog<major version>\<instance name>\LOG
(for Windows XP and Windows Server 2003)

Note
App/Application Data a hidden folder; Show hidden files and folders Windows option has to be checked.

About ApexSQL Log
ApexSQL Log is a SQL Server auditing and recovery solution. Use ApexSQL Log to recover data, undo INSERT, UPDATE and DELETE commands and audit schema changes. Read the transaction log to find out who created, changed or dropped a database object.

Last updated
November 29, 2011

Labels:

...


Installing server-side components only to a remote server

Applies to
ApexSQL Log
ApexSQL Recover

Summary

This article shows how to install server-side components of ApexSQL Log/Recover to a remote server

Symptoms
When installing server-side components from a client machine, the following error occurs "You need to be a member of the sysadmin role to complete the installation. Please, attempt to connect to the database using a SQL Server sysadmin account after closing this dialog"

Cause
One of the causes for this is that the user attempting to install the server-side components doesn't have sufficient permissions to install them on the remote server

Resolution
The server-side components must be installed directly on the server. This can be accomplished by running application individual installer on the server itself. To do this

1) Download ApexSQL Log or ApexSQL Recover individual installers

Download ApexSQL Log installer
Download ApexSQL Recover installer

2) Run the installer on the server

3) When prompted to select components to install, select Server-side components on a local server






4) Complete the installation

About ApexSQL Log
ApexSQL Log is a SQL Server Transaction Log reader that allows viewing transaction log data in read-friendly format. Audit and undo SQL database changes of your choosing. Determine who changed the data and when the change occurred. Read the transaction log to find out who created, changed or dropped a database object

About ApexSQL Recover
ApexSQL Recover is a tool that recovers data lost due to delete, truncate and drop operations. Recover BLOB data as files and extract data from corrupted databases, detached MDFs or a recent SQL database backup without restoring it.

Last update
November 30, 2011

Labels: ,

...


ApexSQL Log shows invalid data for NT user name, application name and client host when auditing transaction log from another server

Applies to
ApexSQL Log

Summary

This article explains how to audit transaction logs from one server on another and what to do if NT user name, application name and client host data are not correct

Symptoms
When transaction logs from one server are audited on another server, ApexSQL shows invalid data for NT user name, application name and client host

Cause
NT user name, application name and client host data are not located in the transaction log. ApexSQL Log captures this data through its Connection monitor, saves them in the table APEXSQL_LOG_LOGIN and later, during the auditing process, matches this data with transaction log data. The APEXSQL_LOG_CONNECTION_MONITOR_SESSION table captures the information about the Connection monitor sessions. When the database is moved from one server to another, ApexSQL Log cannot find correct captured login data and invalid data message (or none at all) is shown

Resolution
To handle this

1. Copy the set of transaction log backups from the production server to the auditing server
2. Backup the data from APEXSQL_LOG_CONNECTION_MONITOR_SESSION and APEXSQL_LOG_LOGIN tables on the production server and copy the resulting files to the auditing server. Make sure not to copy the SERVER_NAME column values. Run the following command from the Command prompt

bcp "SELECT SPID, LOGIN_TIME, LOGIN_NAME, CLIENT_HOST, APPLICATION_NAME FROM ApexSQLLog.dbo.APEXSQL_LOG_LOGIN" queryout ProductionServerLogins.Bulk -T

Note that this command applies to the default ApexSQL Log capture database I.e. ApexSQLLog. If another database is used for data capture, command needs to change. If the data is not on the default SQL Server instance, the -S argument must be added
-SServer_name[\instance_name] I.e. -SDELL\SQL2008
The file storage types should be SPID - int, LOGIN_TIME - datetime - null, LOGIN_NAME, CLIENT_HOST and APPLICATION_NAME - nvarchar. Click Enter to confirm all the options (file storage type, prefix length and field terminator)

The APEXSQL_LOG_CONNECTION_MONITOR_SESSION table can be backed up using following command

bcp "SELECT SESSION_ID, START_TIME, STOP_TIME FROM ApexSQLLog.dbo.APEXSQL_LOG_CONNECTION_MONITOR_SESSION" queryout ProductionServerSessions.Bulk -T

These commands will create Production server logins and Production server sessions bulk files in the folder in which they were executed

3. Start the Connection monitor on test server
4. Setup the Connection monitor database and select the option I will maintain the information myself on the test server
5. Stop and disable the Connection monitor on the test server
6. Truncate the APEXSQL_LOG_CONNECTION_MONITOR_SESSION and APEXSQL_LOG_LOGIN tables on the test server

TRUNCATE TABLE APEXSQL_LOG_LOGIN
TRUNCATE TABLE APEXSQL_LOG_CONNECTION_MONITOR_SESSION


7. Transfer the Connection monitor data from the production server to the auditing server. Use the following command in the Command prompt of the auditing server

bcp ApexSQLLog.dbo.APEXSQL_LOG_LOGIN in ProductionServerLogins.Bulk -T
bcp ApexSQLLog.dbo.APEXSQL_LOG_CONNECTION_MONITOR_SESSION in ProductionServerSessions.Bulk -T


Set the length of the SERVER_NAME field to 0

8. Run ApexSQL Log auditing process on the auditing server with the set of the transaction log backups copied in step 1. Since APEXSQL_LOG_CONNECTION_MONITOR_SESSION and APEXSQL_LOG_LOGIN now contain login data from the production server, correct login data will appear in the application. The Connection monitor on the auditing server can be disabled

About ApexSQL Log
ApexSQL Log is a SQL Server auditing and recovery solution. Use ApexSQL Log to recover data, undo INSERT, UPDATE and DELETE commands and audit schema changes. Read the transaction log to find out who created, changed or dropped a database object.

Last updated
November 29, 2011

Labels:

...


Very large ApexSQL Log tables

Applies to
ApexSQL Log

Summary

This article explains why the APEXSQL_LOG_CONNECTION_MONITOR_SESSION and APEXSQL_LOG_LOGIN tables can grow enormously and how to make them smaller

Symptoms
The database where the tables that capture login, application and host information are stored (APEXSQLLOG by default) has grown enormously (I.e. 15 GB). The APEXSQL_LOG_LOGIN and APEXSQL_LOG_CONNECTION_MONITOR_SESSION tables have millions of records

Cause
ApexSQL Log Connection monitor inserts one new row into 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 with the number of logins made to the server. The location of these tables and data management is fully configurable from the Connection monitor manager dialog. More information could be found here

Resolution
The login information is not cleaned automatically if the option I will maintain the information myself is selected. The recommended solution is to use automatic maintenance of captured information. If there is no need to keep the captured data of the changes that happened long ago, reduce the number of days that the information is kept for





Also, if there is no need for the specific connecton information captured by Connection monitor, this could be stoped and disabled. Note that deleting the captured data will make the database transaction log grow. But it will also enable to recover the deleted data using ApexSQL Log

About ApexSQL Log
ApexSQL Log is a SQL Server Transaction Log reader that allows viewing transaction log data in read-friendly format. Audit and undo SQL database changes of your choosing. Determine who changed the data and when the change occurred. Read the transaction log to find out who created, changed or dropped a database object

Last updated
November 29, 2011

Labels:

...


I restored a database backup and get no results in ApexSQL Log

Applies to
ApexSQL Log

Summary

This article shows what to do when there are no results after database backup is restored in ApexSQL Log

Symptoms
The original database is in full recovery mode. The restored database is restored from a database backup and there are no results in the Main Grid

Cause
The cause for this problem is that a full database backup doesn't include the entire transaction log. Only the transactions that were uncommitted at the start of the backup plus all the transactions that are run during the backup exist in the full database backup

Resolution
Create the transaction log backup on the original server. Use it as a datasource for ApexSQL Log analysis of the restored database

About ApexSQL Log
ApexSQL Log is a SQL Server auditing and recovery solution. Use ApexSQL Log to recover data, undo INSERT, UPDATE and DELETE commands and audit schema changes. Read the transaction log to find out who created, changed or dropped a database object.

Last updated
November 28, 2011

Labels:

...