Không có cách tích hợp để thực hiện việc này - và all the approaches that check the file mtime described in other answers here are wrong. Tùy chọn đáng tin cậy duy nhất là thêm trình kích hoạt vào mọi bảng ghi lại thay đổi đối với một bảng lịch sử thay đổi đơn lẻ, điều này cực kỳ kém hiệu quả và không thể thực hiện hồi tố.
Nếu bạn chỉ quan tâm đến "cơ sở dữ liệu được sử dụng" so với "cơ sở dữ liệu không được sử dụng", bạn có khả năng thu thập thông tin này từ tệp nhật ký cơ sở dữ liệu định dạng CSV. Phát hiện "sửa đổi" vs "không sửa đổi" là rất nhiều khó khăn hơn; xem xét SELECT writes_to_some_table(...)
.
Nếu bạn không cần phải phát hiện cũ hoạt động, bạn có thể sử dụng pg_stat_database
, ghi lại hoạt động kể từ khi số liệu thống kê cuối cùng reset. ví dụ .:
-[ RECORD 6 ]--+------------------------------
datid | 51160
datname | regress
numbackends | 0
xact_commit | 54224
xact_rollback | 157
blks_read | 2591
blks_hit | 1592931
tup_returned | 26658392
tup_fetched | 327541
tup_inserted | 1664
tup_updated | 1371
tup_deleted | 246
conflicts | 0
temp_files | 0
temp_bytes | 0
deadlocks | 0
blk_read_time | 0
blk_write_time | 0
stats_reset | 2013-12-13 18:51:26.650521+08
vì vậy tôi có thể thấy rằng có có được hoạt động trên DB này kể từ khi số liệu thống kê cuối cùng đặt lại. Tuy nhiên, tôi không biết gì về những gì đã xảy ra trước khi thiết lập lại số liệu thống kê, vì vậy nếu tôi có DB cho thấy hoạt động bằng 0 kể từ khi số liệu thống kê đặt lại nửa giờ trước, tôi không biết gì hữu ích.
Nguồn
2014-02-05 01:31:13
Tất cả các phương pháp tiếp cận dựa trên thử nghiệm điều hành thời gian sửa đổi tệp hệ thống là sai, hãy xem http://dba.stackexchange.com/a/58246/7788 –