ניהול PostgreSQL – ביקורת, כוונון, תמיכה

שאילתות איטיות וטבלאות תפוחות יכולות להאט בשקט את השירות שלך, ולהפוך את מסד הנתונים לצוואר בקבוק. אנחנו לוקחים על עצמנו את ניהול PostgreSQL – מביקורת וכיוונון עדין ועד גיבוי ו-replication. הצוות שלנו מספק את הפרויקט במפתח מלא, ומבטיח פעילות יציבה ותמיכה מתמשכת עבור התשתית שלך.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
ניהול PostgreSQL – ביקורת, כוונון, תמיכה
מורכב
מתמשך

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

טופלים מתים (Dead tuples) יכולים לתפוס עד 80% משטח הדיסק, ושאילתות איטיות יכולות להרוג את מהירות טעינת העמוד. הגדרות ברירת המחדל של PostgreSQL אינן מיועדות לפרויקטים בעומס גבוה. צוות המהנדסים שלנו עם ניסיון של 5+ שנים בניהול PostgreSQL בסביבת production טיפל ביותר מ-50 פרויקטים ומבטיח זמינות של 99.9%. אנו מציעים ניהול מסד נתונים מקצה לקצה: ביקורת (audit), כוונון (tuning), ניטור ותמיכה. צרו קשר לביקורת — נבחן את הפרויקט שלכם תוך 2 ימי עסקים.

PostgreSQL אינו "התקן ושכח." כברירת מחדל, הוא מוגדר באופן שמרני כדי לפעול על מגוון רחב ביותר של חומרה. ללא תחזוקה שוטפת, טבלאות מתנפחות מטופלים מתים, אינדקסים מתפרקים, הנפיחות צורכת ג'יגה-בייטים, ושאילתות איטיות גוררות את כל היישום. ניהול מערכת הוא סט של משימות חוזרות וניטור מתמיד. הניסיון שלנו מראה שעד 30% משטח הדיסק ניתן לשחזר לאחר אופטימיזציית נפיחות ללא השבתה.

ביקורת התקנה ראשונית

הדבר הראשון שאנו עושים בעת חיבור למסד נתונים חדש הוא איסוף נתוני אבחון:

SELECT version();
SHOW config_file;
SHOW data_directory;
SELECT datname, pg_size_pretty(pg_database_size(datname)) AS size FROM pg_database ORDER BY pg_database_size(datname) DESC;
SELECT schemaname, relname, pg_size_pretty(pg_total_relation_size(relid)) AS total, pg_size_pretty(pg_relation_size(relid)) AS table, pg_size_pretty(pg_indexes_size(relid)) AS indexes FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC LIMIT 10;
SELECT relname, n_dead_tup, n_live_tup, round(n_dead_tup::numeric / nullif(n_live_tup + n_dead_tup, 0) * 100, 1) AS dead_pct, last_autovacuum, last_autoanalyze FROM pg_stat_user_tables ORDER BY n_dead_tup DESC LIMIT 20;

ביקורת כזו חושפת צווארי בקבוק: טבלאות עם נפיחות גבוהה, אינדקסים שאינם בשימוש, הגדרות autovacuum לא אופטימליות. בפרויקט אחד, הקטנו את גודל מסד הנתונים ב-40% לאחר הסרת אינדקסים כפולים וכוונון VACUUM.

VACUUM ו-ANALYZE

Autovacuum פועל ברקע, אך עבור טבלאות בעומס גבוה הגדרות ברירת המחדל שלו לרוב אינן מספיקות. אנו מכוונים את autovacuum תחת עומס באמצעות פרמטרים לפי טבלה:

ALTER TABLE orders SET (
    autovacuum_vacuum_scale_factor = 0.01,
    autovacuum_analyze_scale_factor = 0.005,
    autovacuum_vacuum_cost_delay = 2
);

כדי להילחם בנפיחות ללא חלון תחזוקה, אנו משתמשים ב-SELECT version(); SHOW config_file; SHOW data_directory; SELECT datname, pg_size_pretty(pg_database_size(datname)) AS size FROM pg_database ORDER BY pg_database_size(datname) DESC; SELECT schemaname, relname, pg_size_pretty(pg_total_relation_size(relid)) AS total, pg_size_pretty(pg_relation_size(relid)) AS table, pg_size_pretty(pg_indexes_size(relid)) AS indexes FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC LIMIT 10; SELECT relname, n_dead_tup, n_live_tup, round(n_dead_tup::numeric / nullif(n_live_tup + n_dead_tup, 0) * 100, 1) AS dead_pct, last_autovacuum, last_autoanalyze FROM pg_stat_user_tables ORDER BY n_dead_tup DESC LIMIT 20; — הוא מהיר פי 100 מ-ALTER TABLE orders SET ( autovacuum_vacuum_scale_factor = 0.01, autovacuum_analyze_scale_factor = 0.005, autovacuum_vacuum_cost_delay = 2 ); ואינו חוסם כתיבות.

כיצד לכוון את autovacuum לעומס גבוה?

עבור טבלאות עם UPDATE/DELETE אינטנסיבי, נדרש autovacuum אגרסיבי יותר. אנו ממליצים להפחית את scale_factor ל-0.01 ולהגדיל את cost_limit ל-2000 כדי לנקות טופלים מתים בתדירות גבוהה יותר. כמו כן, הפעלת VACUUM מקבילי באמצעות pg_repack מסייעת להפחית נפיחות ב-50-70% ללא התערבות ידנית.

מדוע להפקיד ניהול PostgreSQL בידי אנשי מקצוע?

כוונון VACUUM שגוי עלול להוביל ל-XID wraparound — עצירה מוחלטת של מסד הנתונים. אינדקסים לא אופטימליים מאטים כתיבות פי 2–3. הפרת זכויות גישה עלולה להוביל לדליפת נתונים. אנו מספקים הגנה מקיפה: כוונון autovacuum תחת עומס, הסרת אינדקסים מתים, הענקת הרשאות מינימליות, ארכוב WAL. הכל עם אחריות וניטור 24/7.

ניהול אינדקסים

אינדקסים שאינם בשימוש צורכים מקום ומאטים INSERT/UPDATE. אנו בודקים אותם באופן קבוע באמצעות VACUUM FULL. ליצירת אינדקסים בסביבת production, אנו תמיד משתמשים ב-max_parallel_workers_maintenance — זה מונע חסימת כתיבות.

גיבוי

סוג גיבוי שחזור לנקודת זמן (Point-in-Time Recovery) גודל מהירות שחזור
pg_dump (לוגי) לא (רק בזמן ה-dump) קטן יותר בינוני (תלוי בנתונים)
pg_basebackup (פיזי) כן (PITR) גדול יותר (כל ה-cluster) מהיר (העתקת קבצים)

אנו משלבים את שתי השיטות: גיבוי לוגי יומי וארכוב WAL רציף עבור PITR. הגיבויים נבדקים על ידי שחזור פעם בחודש.

רפליקציה וזמינות גבוהה

אנו מקימים רפליקציית streaming במצב סינכרוני או אסינכרוני. אנו מנטרים את הפיגור ברפליקציה באמצעות pg_stat_user_indexes. עבור איגוד חיבורים, אנו משתמשים ב-PgBouncer — הוא מפחית ביעילות את העומס על PostgreSQL עם אלפי חיבורים במקביל.

כיצד אנו מבטיחים פעילות רציפה של מסד הנתונים?

אנו משתמשים בניטור מקיף: פיגור רפליקציה, מילוי WAL, טמפרטורת CPU, עומס דיסק, זמן תגובה לשאילתות. בחריגה מהנורמה — התראות מיידיות ב-Telegram/Slack. במקרה של תקלה — SLA של 15 דקות. המהנדסים שלנו מוסמכים ובעלי ניסיון בשחזור מתקלות בכל רמת מורכבות.

שגיאות תצורה נפוצות והפתרונות שלהן

שגיאה השלכות פתרון
max_connections גבוה מדי דלדול זיכרון הפחתה ל-200-400, שימוש ב-PgBouncer
autovacuum מנוטרל נפיחות, XID wraparound הפעלה וכוונון
shared_buffers > 25% זיכרון RAM ביצועים נמוכים הגדרה ל-15-25% זיכרון RAM
אין ניטור תקלות פתאומיות הטמעת Prometheus + Grafana

אופטימיזציית שאילתות

אנו מנתחים שאילתות איטיות באמצעות CREATE INDEX CONCURRENTLY ו-pg_stat_replication. בעיות אופייניות: שאילתות N+1, אינדקסים חסרים, JOINs שגויים. לדוגמה, החלפת סריקה רציפה (sequential scan) בסריקת אינדקס מאיצה שאילתות פי 10-100. אנו משתמשים באינדקסים מכסים (covering indexes) ובאינדקסים חלקיים (partial indexes) עבור נתונים המסוננים לעתים קרובות.

מה כלול

  • ביקורת תצורת PostgreSQL (גרסה, פרמטרים, extensions)
  • אופטימיזציית שאילתות ואינדקסים (המלצות להאצה פי 2–10)
  • הקמת רפליקציה (streaming, logical) וזמינות גבוהה
  • גיבוי (גיבוי לוגי + פיזי, PITR)
  • ניטור והתראות (Prometheus, Grafana, Zabbix)
  • שדרוגי גרסה והגירה מתוכננת
  • תיעוד והדרכת מנהלי מערכת
  • תמיכה טכנית 24/7 (SLA עד 15 דקות)

לפרטים נוספים על VACUUM, ראו את התיעוד הרשמי. בקשו ייעוץ — נעזור לכוון את PostgreSQL לפרויקט שלכם.