ایک لمحہ آتا ہے جب منظم PostgreSQL آسان ہونا بند کر دیتا ہے: آپ ایک ایسی ایکسٹینشن چاہتے ہیں جو درجہ پیش نہیں کرتا، آپ حقیقی کوئری پلان دیکھنا اور work_mem ٹیون کرنا چاہتے ہیں، آپ سپر یوزر چاہتے ہیں۔ جب آپ Postgres کو اپنانا چاہتے ہیں — کنفیگ، ورژن، ایکسٹینشنز، بیک اپ شیڈول — تو مکمل root والا ایک VPS ایماندار جواب ہے۔ یہ PostgreSQL کے لیے مخصوص سیٹ اپ ہے؛ وسیع تر «ڈیٹابیس خود میزبان کریں» تصویر (Postgres بمقابلہ Redis، کہاں مشترکہ مشین غلط ہے) کے لیے عام ڈیٹابیس یوز کیس دیکھیں۔
PostgreSQL خود میزبان کیوں کریں
اپنی مشین پر آپ کو وہ ملتا ہے جو منظم درجے راشن کرتے ہیں:
- پورا
postgresql.conf—shared_buffers،work_mem،max_connections، WAL ترتیبات، وینڈر ڈیفالٹ نہیں بلکہ آپ کے ورک لوڈ کے مطابق ٹیون۔ - کوئی بھی ایکسٹینشن۔ ایمبیڈنگ کے لیے
pgvector، جیو اسپیشل کے لیےPostGIS، ٹائم سیریز کے لیےTimescaleDB،pg_cron،pg_stat_statements— جو چاہیے انسٹال کریں۔ یہیں منظم درجہ سب سے زیادہ نہ کہتا ہے۔ - آپ کا میجر ورژن، فراہم کنندہ کے نہیں، آپ کے شیڈول پر اپ گریڈ۔
- سپر یوزر اور نیچے OS — ڈیٹا ڈائریکٹری منتقل کریں، کرنل ٹیون کریں، دوسری مشین پر اسٹریمنگ ریپلیکیشن چلائیں۔
اگر pgvector آپ کے یہاں آنے کی وجہ ہے، تو غور کریں کہ Postgres-جمع-pgvector ایک مشین پر ایک مکمل ویکٹر اسٹور ہے — خود میزبان 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 فائر وال سے بند کریں۔
بیک اپ آپ کا کام ہے
خود میزبانی کا مطلب ہے بیک اپ آپ پر ہیں، اور اصول یہ ہے: ضرورت پڑنے سے پہلے کریں۔ لاجیکل بیک اپ کے لیے cron پر pg_dump، یا جس چیز کی آپ پروا کرتے ہیں اس پر پوائنٹ-اِن-ٹائم ریکوری کے لیے WAL آرکائیونگ۔ ڈمپ مشین سے باہر بھیجیں، اور کم از کم ایک بار ریسٹور آزمائیں — ایک بیک اپ جسے آپ نے کبھی ریسٹور نہیں کیا وہ ایک امید ہے، بیک اپ نہیں۔ اگر آپ اسے خود نہ چلانا چاہیں تو ایک منظم-بیک اپ ایڈ آن دستیاب ہے۔
PostgreSQL کے لیے EQVPS کیوں
- مکمل root، سپر یوزر، آپ کا کنفیگ — $8/ماہ سے، NVMe (RAID1) جو اس وقت اہم ہوتا ہے جب ایک ڈیٹابیس اور اس کا WAL بیک وقت لکھتے ہیں۔
- کوئی KYC نہیں، کرپٹو ادائیگی۔ رجسٹریشن کے لیے ای میل، ادائیگی کے لیے USDC/USDT۔
- EU (جرمنی، فن لینڈ), ~60 سیکنڈ میں root۔ اپنی اسکیما لائیں اور چلیں۔
عام ڈیٹابیس یوز کیس (Postgres/Redis جائزہ) → · پیمانے پر خود میزبان RAG →
تبصرے
ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔