PostgreSQL
ابرکلیک پایگاه داده بینظیر و قدرتمند PostgreSQL 16 را بهصورت کاملاً مدیریتشده و بدون نیاز به تخصص مدیریت سرور در اختیارتان قرار میدهد. با فشردن یک کلید یا اجرای یک دستور ساده در CLI، پایگاه دادهای بسیار سریع، پایدار و ایمن در نزدیکترین نقطه به اپلیکیشن خود در تهران آماده به کار خواهد بود.
ویژگیهای کلیدی پایگاه داده مدیریتشده 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) با پایداری حداکثری | دارد (خودکار) | اختصاصی بر بستر فیزیکی مجزا |
در پلنهای رعد به بالا، کلاستر پایگاه داده شما از ساختار 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 استفاده کنید.
جزئیات بیشتر در مستندات پشتیبانگیری موجود است.