كيف يمكنني معرفة ما إذا كان Autovacuum الخاص بـ PostgreSQL يعمل على UNIX؟

StackOverflow https://stackoverflow.com/questions/19826467

  •  05-07-2022
  •  | 
  •  

سؤال

كيف يمكن للمرء معرفة ما إذا كان Autovacuum Daemon في postgres 9.x يعمل وصيانة مجموعة قاعدة البيانات؟

هل كانت مفيدة؟

المحلول

postgresql 9.3

حدد ما إذا كان Autovacuum قيد التشغيل

هذا خاص بـ Postgres 9.3 على UNIX. لنظام التشغيل Windows ، انظر هذا سؤال.

الجدول نظام الاستعلام postgres

SELECT
  schemaname, relname,
  last_vacuum, last_autovacuum,
  vacuum_count, autovacuum_count  -- not available on 9.0 and earlier
FROM pg_stat_user_tables;

حالة عملية نظام GREP

$ ps -axww | grep autovacuum
24352 ??  Ss      1:05.33 postgres: autovacuum launcher process  (postgres)    

سجل GREP Postgres

# grep autovacuum /var/log/postgresql
LOG:  autovacuum launcher started
LOG:  autovacuum launcher shutting down

إذا كنت تريد معرفة المزيد عن Autovacuum النشاط ، مجموعة log_min_messages إلى DEBUG1..DEBUG5. أمر SQL VACUUM VERBOSE سوف يخرج المعلومات على مستوى السجل INFO.


فيما يتعلق بالتيرات Autovacuum ، حالة مستندات Posgres:

في التكوين الافتراضي ، يتم تمكين AutoVacuuming ويتم تعيين معلمات التكوين ذات الصلة بشكل مناسب.

أنظر أيضا:

نصائح أخرى

أنا استخدم:

select count(*) from pg_stat_activity where query like 'autovacuum:%';

في Collectd لمعرفة عدد Autovacuum التي تعمل بشكل متزامن.

قد تحتاج إلى إنشاء وظيفة أمان مثل هذه:

CREATE OR REPLACE FUNCTION public.pg_autovacuum_count() RETURNS bigint
AS 'select count(*) from pg_stat_activity where query like ''autovacuum:%'';'
LANGUAGE SQL
STABLE
SECURITY DEFINER;

ودعا ذلك من Collectd.

في Postgres السابقة ، كان "الاستعلام" "Current_query" ، لذا قم بتغييره وفقًا لما يصلح.

يمكنك أيضًا تشغيل pg_activity لمشاهدة الاستعلامات التي تعمل حاليًا على قاعدة البيانات الخاصة بك. عادةً ما أترك محطة مفتوحة مع تشغيل هذا معظم الوقت على أي حال كما هو جداً مفيد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top