Bạn cũng muốn đảm bảo tem datetime của mỗi bảng. Tìm kiếm bất kỳ siêu dữ liệu nào trong hệ thống cho mỗi bảng, sắp xếp danh sách như vậy theo datetime được cập nhật lần cuối và hiển thị đầu ra theo thứ tự desc theo datetime. Bạn cũng có thể kiểm tra kích thước bảng để biết sự thay đổi nhỏ về kích thước.
Ví dụ: trong MySQL 5.x, bạn có information_schema.tables trông như thế này:
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)
Cột UPDATE_TIME ghi lại lần cuối cùng bất kỳ CHERTN, CẬP NHẬT hoặc XÓA nào được áp dụng lần cuối vào bảng. Bạn có thể chạy các truy vấn như thế này để tìm hiểu khi nào mỗi cơ sở dữ liệu được truy cập lần cuối:
Lần cuối một bảng được truy cập trong mỗi cơ sở dữ liệu:
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ần cuối một bảng được truy cập trong bất kỳ cơ sở dữ liệu nào:
SELECT MAX(update_time) last_accessed FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','mysql');
10 ngày qua, một bảng đã được truy cập:
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;
Đây chỉ là một vài ví dụ về cách lấy siêu dữ liệu đó từ MySQL. Tôi chắc chắn rằng Oracle và SQL Server có các phương thức tương tự hoặc tốt hơn.
Khi bạn chắc chắn về mức độ thường xuyên hoặc hiếm khi cơ sở dữ liệu (hoặc lược đồ) được truy cập, bạn nên kết xuất / xuất thủ công cơ sở dữ liệu cũ cùng với các bản sao của lược đồ ngoài dữ liệu. Xin thứ lỗi rằng câu trả lời của tôi không phải là thuyết bất khả tri. SQLServer và Oracle DBA cũng nên nói câu trả lời của họ ở đây, vì khái niệm lược đồ là một bộ sưu tập trong một cá thể cơ sở dữ liệu bị mờ trong MySQL nhưng được tuân thủ rất nghiêm ngặt trong SQLServer và Oracle.