اتصال به پایگاه‌داده PostgreSQL

برای اتصال به کلاستر پایگاه‌داده، ابتدا باید از یک ماشین مجازی در همان subnet مشخص‌شده در زمان ساخت کلاستر اقدام کنید. به صورت پیش‌فرض اتصال مستقیم از خارج subnet امکان‌پذیر نیست.

مشاهده اطلاعات اتصال

  1. وارد پنل اوشن شوید و از میان سرویس‌های ستون، روی پایگاه‌داده نسخه ۲ کلیک کنید.
  2. کلاستر مورد نظر خود را انتخاب کنید.
  3. در تب در یک نگاه، بخش وضعیت اتصال اطلاعات زیر را نمایش می‌دهد:
    • نام کاربری و گذرواژه
    • سابنت، پورت و پایگاه‌داده
    • Primary Endpoint: آدرس اتصال به نود Primary
    • Reader Endpoint: آردس اتصال با load-balancing بین نودها
  4. با کلیک روی دکمه کپی رشته اتصال کنار هر Endpoint، رشته اتصال آماده را دریافت کنید.

نکات مهم

  • اتصال به پایگاه‌داده تنها از VPC و subnet مشخص‌شده در زمان ساخت کلاستر امکان‌پذیر است.
  • درخواست‌های ارسال‌شده به Primary Endpoint همواره به نودی با نقش Primary هدایت می‌شوند. برای عملیات خواندن و نوشتن می‌توان از این Endpoint استفاده کرد.
  • درخواست‌های ارسال‌شده به Reader Endpoint بین تمامی نودهای کلاستر (از جمله نود Primary) با مکانیزم load-balancing توزیع می‌شوند و برای افزایش ظرفیت پاسخ‌دهی درخواست‌های خواندن مناسب هستند. برای عملیات فقط-خواندن می‌توان از این آدرس استفاده کرد.

اتصال با ابزار psql

برای اتصال به پایگاه‌داده، ابتدا از طریق ssh یا بخش ترمینال در پنل ماشین مجازی نسخه ۲ به یکی از ماشین‌های موجود در subnet دارای دسترسی به دیتابیس متصل شوید. سپس یکی از روش‌های زیر را استفاده کنید.

استفاده از Flags:

psql -h <host> -p <port> -U <username> -d <database>

مثال:

psql -h 10.0.10.227 -p 5432 -U sdb_admin -d postgres

استفاده از رشته اتصال (Connection String):

psql "postgresql://<username>:<password>@<host>:<port>/<database>"

مثال:

psql "postgresql://sdb_admin:your_password@10.0.10.227:5432/postgres"

پس از اتصال موفق، پرامپت psql نمایش داده می‌شود (مثلا postgres=>) و می‌توانید دستورات SQL و مدیریتی را اجرا کنید.

دستورات پرکاربرد psql

دستورتوضیح
\lنمایش فهرست پایگاه‌داده‌ها
\c <database>اتصال به پایگاه‌داده دیگر
\duنمایش فهرست کاربران
\dtنمایش جداول پایگاه‌داده فعلی
\dxنمایش افزونه‌های نصب‌شده
\qخروج از psql

اتصال از اپلیکیشن

برای اتصال از زبان‌های برنامه‌نویسی، از رشته اتصال (Connection String) استفاده کنید:

postgresql://<username>:<password>@<host>:<port>/<database>

مثال برای عملیات نوشتن (Primary Endpoint):

postgresql://sdb_admin:your_password@10.0.10.227:5432/postgres

مثال برای عملیات خواندن (Reader Endpoint):

postgresql://sdb_admin:your_password@10.0.10.219:5432/postgres

عیب‌یابی اتصال

خطاعلت محتملراه‌حل
Connection timed outماشین مبدأ در subnet مجاز نیستاز ماشینی در همان subnet کلاستر اتصال برقرار کنید
Connection refusedرشته اتصال اشتباه یا Readonly شدن کلاستراطلاعات Primary Endpoint را از بخش وضعیت اتصال بررسی کنید. در صورت Readonly شدن فضای دیسک را افزایش دهید.