Civicrm's database uses log_% tables to store each change to corresponding tables. The log_% are populated by triggers that copy each write to a table to the corresponding log table. Row compression is in use. They grow without expiration, and with about four years of historical data they account for about 50% of the total disk footprint of the civicrm database.
Extrapolating from testing with log_civicrm_activity, if we were to trim these tables to records newer than 1 year, we would recover about 308GB or 37% the overall civicrm database footprint.
We've talked about expiration timelines and it sounds as though FR tech agrees that 1 year may be an acceptable max age for data in log_% tables. This task is to address that question and to develop a process to purge old data that can be automated. There are also several log tables that are not useful, which we should be able to disable altogether.
Here's a summary of action items:
[] drop trigger for log_civicrm_financial_item
[] drop table log_civicrm_financial_item
[] drop trigger for log_civicrm_entity_financial_trxn
[] drop table log_civicrm_entity_financial_trxn
[] truncate log_civicrm_entity_tag (confirm this first)
[] drop trigger for log_civicrm_financial_trxn
[] drop table log_civicrm_financial_trxn
[] drop trigger for log_civicrm_line_item
[] drop table log_civicrm_line_item
[] drop trigger for log_civicrm_mailing
[] drop table log_civicrm_mailing
[] drop trigger for log_civicrm_mailing_job
[] drop table log_civicrm_mailing_job
[] drop trigger for log_civicrm_subscription_history
[] drop table log_civicrm_subscription_history