Vuoi anche assicurarti dei timbri datetime di ogni tabella. Cerca eventuali metadati nel sistema per ogni tabella, ordina tale elenco in base all'ultimo aggiornamento di datetime e visualizza l'output in ordine decrescente per datetime. Puoi anche controllare le dimensioni della tabella anche per un leggero cambiamento nelle dimensioni.
Ad esempio, in MySQL 5.x, hai information_schema.tables che assomiglia a questo:
mysql> desc information_schema.tables;
+-----------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+-------+
| TABLE_CATALOG | varchar(512) | NO | | | |
| TABLE_SCHEMA | varchar(64) | NO | | | |
| TABLE_NAME | varchar(64) | NO | | | |
| TABLE_TYPE | varchar(64) | NO | | | |
| ENGINE | varchar(64) | YES | | NULL | |
| VERSION | bigint(21) unsigned | YES | | NULL | |
| ROW_FORMAT | varchar(10) | YES | | NULL | |
| TABLE_ROWS | bigint(21) unsigned | YES | | NULL | |
| AVG_ROW_LENGTH | bigint(21) unsigned | YES | | NULL | |
| DATA_LENGTH | bigint(21) unsigned | YES | | NULL | |
| MAX_DATA_LENGTH | bigint(21) unsigned | YES | | NULL | |
| INDEX_LENGTH | bigint(21) unsigned | YES | | NULL | |
| DATA_FREE | bigint(21) unsigned | YES | | NULL | |
| AUTO_INCREMENT | bigint(21) unsigned | YES | | NULL | |
| CREATE_TIME | datetime | YES | | NULL | |
| UPDATE_TIME | datetime | YES | | NULL | |
| CHECK_TIME | datetime | YES | | NULL | |
| TABLE_COLLATION | varchar(32) | YES | | NULL | |
| CHECKSUM | bigint(21) unsigned | YES | | NULL | |
| CREATE_OPTIONS | varchar(255) | YES | | NULL | |
| TABLE_COMMENT | varchar(2048) | NO | | | |
+-----------------+---------------------+------+-----+---------+-------+
21 rows in set (0.01 sec)
La colonna UPDATE_TIME registra l'ultima volta che INSERT, UPDATE o DELETE sono stati applicati l'ultima volta alla tabella. È possibile eseguire query come queste per scoprire quando è stato effettuato l'ultimo accesso a ciascun database:
L'ultima volta è stato effettuato l'accesso a una tabella in ciascun database:
SELECT table_schema,MAX(update_time) last_accessed
FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','mysql')
AND update_time IS NOT NULL
GROUP BY table_schema;
L'ultima volta è stato effettuato l'accesso a una tabella in qualsiasi database:
SELECT MAX(update_time) last_accessed FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','mysql');
Ultime 10 date di accesso a una tabella:
SELECT * FROM
(SELECT * FROM
(SELECT last_accessed,COUNT(1) access_count
FROM (SELECT DATE(update_time) last_accessed
FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','mysql')
AND update_time IS NOT NULL) A
GROUP BY last_accessed) AA
ORDER BY last_accessed DESC) AAA
LIMIT 10;
Questi sono solo alcuni esempi di come ottenere tali metadati da MySQL. Sono sicuro che Oracle e SQL Server hanno metodi simili o migliori.
Una volta che si è sicuri della frequenza o raramente dell'accesso a un database (o schema), è necessario eseguire il dump / esportazione manuale di database obsoleti insieme alle copie dello schema stesso a parte i dati. Scusa, la mia risposta non è agnostica per DB. Anche i DBA di SQL Server e Oracle dovrebbero dare le loro risposte qui, poiché il concetto di uno schema che è una raccolta all'interno di un'istanza di database è offuscato in MySQL ma seguito molto rigorosamente in SQL Server e Oracle.