Ayrıca her tablonun datetime damgalarından emin olmak istersiniz. Her tablo için sistemde herhangi bir meta veri arayın, son güncellenen datetime göre böyle bir liste sipariş edin ve çıktıyı datetime göre azalan sırada görüntüleyin. Ayrıca, boyuttaki ufak bir değişiklik için bile masa boyutunu kontrol edebilirsiniz.
Örneğin, MySQL 5.x'te şu şekilde görünen information_schema.tables var:
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)
UPDATE_TIME sütunu, tabloya en son INSERT, UPDATE veya DELETE uygulaması son kez kaydediliyor. Her veritabanına en son ne zaman erişildiğini öğrenmek için aşağıdaki gibi sorgular çalıştırabilirsiniz:
Her veritabanında bir tabloya en son erişildiğinde:
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;
Herhangi bir veritabanında bir tabloya en son erişildiğinde:
SELECT MAX(update_time) last_accessed FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','mysql');
Bir tabloya erişilen son 10 tarih:
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;
Bunlar, MySQL'den bu tür meta verilerin nasıl alınacağına dair birkaç örnektir. Eminim Oracle ve SQL Server benzer veya daha iyi yöntemlere sahiptir.
Bir veritabanına (veya şemaya) ne sıklıkta veya nadiren erişildiğinden emin olduktan sonra, şemanın kendisinin kopyalarından verilerle birlikte eski veritabanlarını manuel olarak dökmeniz / vermeniz gerekir. Lütfen cevabımın DB agnostik olmadığına izin verin. SQLServer ve Oracle DBA'lar burada da yanıtlarını dile getirmelidir, çünkü bir veritabanı örneği içinde koleksiyon olan bir şema kavramı MySQL'de bulanık, ancak SQLServer ve Oracle'da çok sıkı bir şekilde takip edilir.