Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This article explains how to delete historical data from an up.time MS SQL DataStore.  See related articles for MySQL and Oracle DataStores.  The tables listed in the article are valid for up.time 7; although the logic applies to any release of up.time, you may receive errors for tables that do not exist.

You may want to delete historical data historical performance data if the up.time Archive process has timed out and data older than the Archive Policy still exists in the data store.  You may also choose to manually delete historical data historical performance data to free up the threads for regular monitoring that the up.time Archive process would occupy.

For ease, a stored procedure that accomplishes the same as the statements below is available by contacting Support at [email protected].

 Another reason to manually delete historical performance data is to shrink the size of the DataStore.

The first step is to verify the oldest data samples within the Datastore.  Use the DataStore Profile script for a MS SQL database found on the Support Portal's Tools & Utilities page.

Once you know the oldest data sample, go to the Historical Data Purge Scripts page and download the MySQL trim script you want to run i.e. Ad-hoc, Procedure or Use Archive Settings.

Warning
WARNING: All
Warning
These commands are permanent.  All deleted data will be lost.   Ensure  Ensure that you complete a full data store backup before proceeding with these commands.

The following commands will delete all performance data prior to a specified date:

...

a trim script.

Choose a date for which all data samples collected before this day will be deleted.

...

Code Block
languagesql
select min(id) from performance_sample where CONVERT(CHAR(10),sample_time,120) = 'DATE';

...

 It is strongly recommended that

...

deletions are completed in small chunks (e.g. 2 weeks or 1 month at a time) rather than attempting one large delete statement

...

Code Block
languagesql
delete from performance_aggregate where sample_id <ID; go; 
delete from performance_cpu where sample_id <ID; go; 
delete from performance_disk where sample_id <ID; go;  
delete from performance_disk_total where sample_id <ID; go; 
delete from performance_esx3_workload where sample_id <ID; go; 
delete from performance_fscap where sample_id <ID; go; 
delete from performance_network where sample_id <ID; go; 
delete from performance_nrm where sample_id <ID; go; 
delete from performance_psinfo where sample_id <ID; go; 
delete from performance_lpar_workload where sample_id <ID; go; 
delete from performance_vxvol where sample_id <ID; go; 
delete from performance_who where sample_id <ID; go;

...

Get the earliest VMware sample ID for the specified day.  All data samples collected prior to this day will be deleted.  Replace DATE below with your target date in the format YYYY-MM-DD:

Code Block
languagesql
select min(id) from vmware_perf_sample where CONVERT(CHAR(10),sample_time,120) = 'DATE';

...

Code Block
languagesql
delete from vmware_perf_aggregate where sample_id < ID; go;
delete from vmware_perf_cluster where sample_id < ID; go;
delete from vmware_perf_datastore_usage where sample_id < ID; go;
delete from vmware_perf_datastore_vm_usage where sample_id < ID; go;
delete from vmware_perf_disk_rate where sample_id < ID; go;
delete from vmware_perf_entitlement where sample_id < ID; go;
delete from vmware_perf_host_cpu where sample_id < ID; go;
delete from vmware_perf_host_disk_io where sample_id < ID; go;
delete from vmware_perf_host_disk_io_adv where sample_id < ID; go;
delete from vmware_perf_host_network where sample_id < ID; go;
delete from vmware_perf_host_power_state where sample_id < ID; go;
delete from vmware_perf_mem where sample_id < ID; go;
delete from vmware_perf_mem_advanced where sample_id < ID; go;
delete from vmware_perf_network_rate where sample_id < ID; go;
delete from vmware_perf_vm_cpu where sample_id < ID; go;
delete from vmware_perf_vm_disk_io where sample_id < ID; go;
delete from vmware_perf_vm_network where sample_id < ID; go;
delete from vmware_perf_vm_power_state where sample_id < ID; go;
delete from vmware_perf_vm_storage_usage where sample_id < ID; go;
delete from vmware_perf_vm_vcpu where sample_id < ID; go;
delete from vmware_perf_watts where sample_id < ID; go;

...

Get the earliest Network Device sample ID for the specified day.  All data samples collected prior to this day will be deleted.  Replace DATE below with your target date in the format YYYY-MM-DD:

Code Block
languagesql
select min(id) from net_device_perf_sample where CONVERT(CHAR(10),sample_time,120) = 'DATE';

...

Code Block
languagesql
delete from net_device_perf_ping where sample_id < ID; go;
delete from net_device_perf_port where sample_id < ID; go;

Delete the retained date from before the specified date.  All data samples collected prior to this day will be deleted.  Replace DATE below with your target date in the format YYYY-MM-DD:

...

languagesql

...

, so if the oldest data in the data store is from July 1, 2014, choose July 15, 2014 as the day to delete from.

You can verify that the historical data has been deleted by running a performance graph or report in the up.time UI or simply running the Datastore Profile script again.

If you encounter any issues or have any questions regarding this process please do not hesitate to contact [email protected] for guidance.

See related articles for DataStore running on MySQL or Oracle

...