Folks, I just wrote a PHP (sorry!) CLI script to archive completed radacct session data that's older than the current month and last month to a separate database.
As the radacct table grows in size, INSERTs, UPDATEs and DELETEs take longer as the data and index file sizes grow. SELECTs also take longer for the same reasons. While the script archives complete sessions older than the current month and past month, this can be amended to today and yesterday, this week and last week, etc easily enough. Note that only complete sessions are moved. This script should run nightly to catch recently closed sessions that were not caught in the "big move" at the start of a new month. Record dates are determined by the AcctStopTime field by default. A MySQL merge table is used to make searching on the archived records easy. The records are archived to a different database and the merge does not include the live radacct. This was a decision I made but others can do as they choose - a merge can include table from different databases as of MySQL 4.1.1. For more information please see: http://www.barryodonovan.com/development/other/radacct_archive/ Comments, updates, patches, suggestions, etc all gratefully appreciated. Suggestions on including this (after making it somewhat more generic) in the radacct bin tree would be appreciated. - Barry - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html