יש רגע שבו PostgreSQL מנוהל מפסיק להיות נוח: אתם רוצים הרחבה שהשכבה לא מציעה, אתם רוצים לראות את תוכנית השאילתה האמיתית ולכוונן work_mem, אתם רוצים superuser. כשאתם רוצים להיות הבעלים של Postgres — ההגדרה, הגרסה, ההרחבות, לוח הגיבויים — VPS עם root מלא הוא התשובה הכנה. זו ההגדרה הספציפית-ל-PostgreSQL; לתמונה הרחבה יותר של "אחסון-עצמי של מסד נתונים" (Postgres מול Redis, איפה ארגז משותף לא נכון), ראו את מקרה-השימוש הכללי של מסד נתונים.
למה לאחסן-בעצמי את PostgreSQL
על הארגז שלכם אתם מקבלים את מה ששכבות מנוהלות מקצות במנות:
- את כל ה-
postgresql.conf—shared_buffers,work_mem,max_connections, הגדרות WAL, מכוונן ל-workload שלכם, לא ברירת מחדל של ספק. - כל הרחבה.
pgvectorל-embeddings,PostGISלגיאו-מרחבי,TimescaleDBלסדרות-זמן,pg_cron,pg_stat_statements— התקינו מה שאתם צריכים. כאן שכבה מנוהלת הכי הרבה פעמים אומרת לא. - הגרסה הראשית שלכם, משודרגת בלוח הזמנים שלכם, לא של הספק.
- superuser ומערכת ההפעלה שמתחת — הזיזו את ספריית הנתונים, כווננו את ה-kernel, הריצו שכפול streaming לארגז שני.
אם pgvector היא הסיבה שאתם כאן, שימו לב ש-Postgres-בתוספת-pgvector הוא vector store שלם על מכונה אחת — אותו אבן-בניין מאחורי stack RAG באחסון-עצמי וזיכרון סוכנים.
הגדירו אותו (Ubuntu 24.04, Docker)
# docker-compose.yml — PostgreSQL 16 (+ pgvector via the pgvector image)
services:
db:
image: pgvector/pgvector:pg16
restart: always
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: change-me-strong
POSTGRES_DB: app
command: ["postgres", "-c", "shared_buffers=512MB", "-c", "work_mem=32MB"]
volumes: ["/srv/pg:/var/lib/postgresql/data"]
ports: ["127.0.0.1:5432:5432"] # localhost only; see below to expose safely
docker compose up -d
docker compose exec db psql -U app -c "CREATE EXTENSION IF NOT EXISTS vector;"
קשור ל-127.0.0.1, הוא משרת אפליקציה על אותו ארגז בלי ששום דבר חשוף. כדי לתת לשרתים אחרים להיכנס, זה הסעיף הבא.
לתת לשרתים אחרים להתחבר — בבטחה
ברגע שמכונה אחרת צריכה את מסד הנתונים, שני דברים משתנים:
- כתובת יציבה ונתבת — תוכנית עם IPv4 ייעודי (Small-IP $16, Medium-IP $20). תוכניות NAT חולקות IP יוצא, בסדר ליוצא אבל לא להיות מסד נתונים שאחרים מחייגים אליו.
- חסמו אותו חזק בחומת אש. פתחו את 5432 רק ל-IP-ים הספציפיים של הלקוחות, אף פעם לא
0.0.0.0/0, ודרשו TLS. פורט Postgres פתוח באינטרנט הציבורי נמצא תוך דקות — נעלו אותו עם חומת אש UFW.
גיבויים הם העבודה שלכם
אחסון-עצמי אומר שהגיבויים עליכם, והכלל הוא: עשו אותם לפני שאתם צריכים אותם. pg_dump ב-cron לגיבויים לוגיים, או ארכוב WAL לשחזור נקודה-בזמן על כל דבר שאכפת לכם ממנו. שלחו את ה-dumps מחוץ לארגז, ובדקו שחזור לפחות פעם אחת — גיבוי שמעולם לא שחזרתם הוא תקווה, לא גיבוי. add-on של גיבויים מנוהלים זמין אם אתם מעדיפים לא להריץ אותו בעצמכם.
למה EQVPS ל-PostgreSQL
- root מלא, superuser, ההגדרה שלכם — החל מ-$8/חודש, NVMe (RAID1) שחשוב ברגע שמסד נתונים וה-WAL שלו כותבים בבת אחת.
- ללא KYC, תשלום בקריפטו. אימייל להרשמה, USDC/USDT לתשלום.
- האיחוד האירופי (גרמניה, פינלנד), root תוך ~60 שניות. הביאו את ה-schema שלכם ותצאו לדרך.
מקרה-שימוש כללי של מסד נתונים (סקירת Postgres/Redis) → · RAG בקנה-מידה באחסון-עצמי →
תגובות
אין עדיין תגובות. היו הראשונים.