پرش به مطلب اصلی

PostgreSQL

ابرکلیک پایگاه داده بی‌نظیر و قدرتمند PostgreSQL 16 را به‌صورت کاملاً مدیریت‌شده و بدون نیاز به تخصص مدیریت سرور در اختیارتان قرار می‌دهد. با فشردن یک کلید یا اجرای یک دستور ساده در CLI، پایگاه داده‌ای بسیار سریع، پایدار و ایمن در نزدیک‌ترین نقطه به اپلیکیشن خود در تهران آماده به کار خواهد بود.


ویدیو: ساخت و اتصال پایگاه داده PostgreSQLplaceholder — ویدیو را اینجا جایگزین کنید

ویژگی‌های کلیدی پایگاه داده مدیریت‌شده PostgreSQL

  • راه‌اندازی فوری: ایجاد و کانفیگ کامل بانک اطلاعاتی زیر ۲ دقیقه.
  • اتصال ایمن (TLS): تمامی ارتباطات درون و بیرون کلاستر به‌طور پیش‌فرض رمزنگاری می‌شوند.
  • استخر اتصال (Connection Pooling): استفاده از PgBouncer برای مدیریت اتصال‌ها و جلوگیری از اتمام ظرفیت حافظه در بار ترافیکی سنگین.
  • دسترسپذیری بالا (High Availability): فعال‌سازی ساختار Primary/Standby و همانندسازی خودکار در پلن‌های حرفه‌ای.
  • پشتیبان‌گیری منظم روزانه: بدون دخالت شما و با امکان بازگردانی سریع به نسخه‌های پیشین.

ایجاد پایگاه داده PostgreSQL

برای ساخت یک پایگاه داده جدید PostgreSQL در پروژه خود، دستور زیر را در CLI اجرا کنید:

abrclick db create --name my-db --type postgres

می‌توانید نسخه (پیش‌فرض ۱۶) و فضای دیسک (بر حسب گیگابایت) را نیز مشخص کنید:

abrclick db create --name my-db --type postgres --version 16 --storage 10

پس از اجرای دستور، خروجی فرآیند ساخت را نمایش می‌دهد:

✓ پایگاه داده در حال راه‌اندازی است...
نام: my-db
نوع: PostgreSQL 16
وضعیت: provisioning
شناسه: db_pg_98765

معمولاً ۱ تا ۲ دقیقه طول می‌کشد تا زیرساخت کانتینرها آماده به کار شود.

برای پیگیری وضعیت آماده‌سازی:

abrclick db info db_pg_98765

توپولوژی و ساختار بر اساس پلن

ساختار فیزیکی دیتابیس شما با توجه به پلن انتخابی تغییر می‌کند تا توازن بهینه‌ای میان هزینه و پایداری ایجاد شود:

پلنتوپولوژی ساختارسیستم اتصال مجدد (HA)نوع اتصال
ابر (رایگان)تک‌نود (Single-Node)ندارداشتراکی
بارانتک‌نود (Single-Node)ندارداشتراکی
برفتک‌نود (Single-Node)ندارداختصاصی
رعدکلاستر چندنود (Multi-Node HA Cluster)دارد (خودکار)اختصاصی
طوفانکلاستر چندنود (Multi-Node HA Cluster)دارد (خودکار)اختصاصی
سازمانیکلاستر چندنود (HA) با پایداری حداکثریدارد (خودکار)اختصاصی بر بستر فیزیکی مجزا
کلاستر تولید (HA)

در پلن‌های رعد به بالا، کلاستر پایگاه داده شما از ساختار Primary/Standby با پایش زنده بهره می‌برد. در صورت از کار افتادن نود اصلی، فرآیند Failover به‌طور خودکار در چند ثانیه انجام می‌شود و نود پشتیبان بدون وقفه و تغییر در کد برنامه شما، نقش اصلی را بر عهده می‌گیرد.


دریافت اطلاعات اتصال (Credentials)

برای مشاهده اطلاعات کاربری و آدرس‌های اتصال داخلی و خارجی پایگاه داده از دستور زیر استفاده کنید:

abrclick db credentials db_pg_98765

خروجی نمونه شامل اطلاعات دقیق به همراه رشته اتصال استاندارد (Connection String) است:

اطلاعات اتصال — my-db
──────────────────────────────────────────────
Host (خارجی): pg.abrclick.cloud
Host (داخلی): db-<id>-postgresql.tenant-myproj.svc.cluster.local
Port: 5432
Database: db_pg_98765
Username: app.db_pg_98765
Password: p@ssw0rd_gen_1234
URI خارجی: postgresql://app.db_pg_98765:p@ssw0rd_gen_1234@pg.abrclick.cloud:5432/db_pg_98765
URI داخلی: postgresql://app.db_pg_98765:p@ssw0rd_gen_1234@db-<id>-postgresql.tenant-myproj.svc.cluster.local:5432/db_pg_98765
امنیت اتصال عمومی

دسترسی عمومی به پورت ۵۴۳۲ از طریق pg.abrclick.cloud با احراز هویت قوی مبتنی بر PgBouncer کنترل می‌شود. همیشه از گذرواژه‌های قوی تولیدشده توسط پلتفرم استفاده کنید.


اتصال مستقیم و سریع با CLI

اگر مایلید مستقیماً به کنسول تعاملی پایگاه داده متصل شوید و دستورات SQL خود را اجرا کنید، نیازی به کپی کردن اطلاعات اتصال ندارید؛ کافی است دستور زیر را تایپ کنید تا ابزار رسمی psql بر روی سیستم شما به کار بیفتد:

abrclick db connect db_pg_98765

نمونه خروجی اجرای موفق:

psql (16.x, server 16.x)
Type "help" for help.

db_pg_98765=> \dt
No relations found.
db_pg_98765=> SELECT version();
version
--------------------------------------------------------------
PostgreSQL 16.3 on x86_64-pc-linux-gnu, compiled by GCC ...
(1 row)

اتصال دیتابیس به اپلیکیشن ابری

ساده‌ترین و اصولی‌ترین روش اتصال برنامه به پایگاه داده در ابرکلیک، لینک کردن آن‌ها به یکدیگر است. با این کار، متغیر محیطی DATABASE_URL به‌صورت خودکار و امن به کانتینر برنامه شما تزریق می‌شود:

# لینک کردن اپلیکیشن و دیتابیس در یک پروژه
abrclick apps link --app my-web-app --db db_pg_98765

پس از لینک شدن، در کد برنامه خود کافی است این متغیر محیطی را فراخوانی کنید:

نمونه اتصال در فریم‌ورک‌های محبوب

۱. Node.js (Prisma ORM)

در فایل prisma/schema.prisma آدرس منبع داده را به این صورت تنظیم کنید:

datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

۲. Python (SQLAlchemy)

import os
from sqlalchemy import create_engine

# خواندن خودکار رشته اتصال تزریق‌شده توسط ابرکلیک
DATABASE_URI = os.getenv('DATABASE_URL')

engine = create_engine(DATABASE_URI)

۳. PHP (PDO)

<?php
$dbUrl = getenv('DATABASE_URL');
// جداسازی متغیرها یا استفاده مستقیم در کتابخانه‌های منطبق
$db = new PDO($dbUrl);
?>

۴. Go (pgx)

package main

import (
"context"
"os"
"github.com/jackc/pgx/v5"
)

func main() {
conn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
if err != nil {
panic(err)
}
defer conn.Close(context.Background())
}

پشتیبان‌گیری و بازگردانی

پشتیبان‌گیری از داده‌های حیاتی شما اولویت اول است. سیستم DBaaS ابرکلیک به‌صورت خودکار هر شب از داده‌های شما پشتیبان کامل تهیه کرده و بر روی فضای ابری توزیع‌شده ذخیره می‌کند.

  • پلن‌های پایه: نگهداری پشتیبان‌ها تا ۳ روز گذشته.
  • پلن‌های استاندارد و حرفه‌ای: نگهداری پشتیبان‌ها تا ۱۴ روز و امکان بازیابی نقطه‌ای (Point-in-Time Recovery).
  • افزونه‌ها و تنظیم‌ها: می‌توانید از افزونه‌های pgvector و postgis استفاده کنید. برای تنظیم پارامترهای اجرایی (مانند max_connections یا shared_buffers)، از داشبورد یا API استفاده کنید.

جزئیات بیشتر در مستندات پشتیبان‌گیری موجود است.