Sie möchten auch die Datums- / Uhrzeitstempel jeder Tabelle sicherstellen. Suchen Sie nach Metadaten im System für jede Tabelle, ordnen Sie eine solche Liste nach Datum / Uhrzeit der letzten Aktualisierung und zeigen Sie die Ausgabe in absteigender Reihenfolge nach Datum / Uhrzeit an. Sie können die Tabellengröße auch auf geringfügige Größenänderungen überprüfen.
In MySQL 5.x haben Sie beispielsweise information_schema.tables, die folgendermaßen aussehen:
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)
In der Spalte UPDATE_TIME wird aufgezeichnet, wann INSERT, UPDATE oder DELETE zuletzt auf die Tabelle angewendet wurden. Sie können Abfragen wie diese ausführen, um herauszufinden, wann zuletzt auf jede Datenbank zugegriffen wurde:
Das letzte Mal, als in jeder Datenbank auf eine Tabelle zugegriffen wurde:
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;
Das letzte Mal, als in einer Datenbank auf eine Tabelle zugegriffen wurde:
SELECT MAX(update_time) last_accessed FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','mysql');
In den letzten 10 Daten wurde auf eine Tabelle zugegriffen:
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;
Dies sind nur einige Beispiele, wie Sie solche Metadaten von MySQL erhalten. Ich bin sicher, dass Oracle und SQL Server ähnliche oder bessere Methoden haben.
Wenn Sie sicher sind, wie oft oder selten auf eine Datenbank (oder ein Schema) zugegriffen wird, sollten Sie veraltete Datenbanken zusammen mit Kopien des Schemas selbst, abgesehen von den Daten, manuell sichern / exportieren. Bitte entschuldigen Sie, dass meine Antwort nicht DB-Agnostiker ist. SQLServer- und Oracle-Datenbankadministratoren sollten auch hier ihre Antworten aussprechen, da das Konzept eines Schemas als Sammlung innerhalb einer Datenbankinstanz in MySQL unscharf ist, in SQLServer und Oracle jedoch sehr streng befolgt wird.