برنامه نویسی

راه اندازی Logical Replication با pglogical در PostgreSQL در AWS

Summarize this content to 400 words in Persian Lang در دنیای امروزی مبتنی بر داده، توانایی تکثیر پایگاه‌های داده به طور کارآمد و یکپارچه در محیط‌های مختلف بسیار مهم است. یکی از ابزارهای قدرتمند برای دستیابی به این امر در PostgreSQL pglogical است، افزونه ای که قابلیت های تکرار منطقی را فراهم می کند. در این مقاله، مراحل راه‌اندازی تکرار منطقی بین دو پایگاه داده PostgreSQL که روی AWS با استفاده از pglogical میزبانی شده‌اند را طی می‌کنیم.

پیش نیازها

قبل از ورود به تنظیمات، مطمئن شوید که موارد زیر را دارید:

دو پایگاه داده PostgreSQL که روی AWS RDS اجرا می شوند (مثلاً dmitry_test_src و dmitry_test_dest).
سرویس گیرنده PostgreSQL برای اجرای دستورات روی ماشین محلی شما نصب شده است.
مجوزهای لازم برای ایجاد نقش ها، پایگاه های داده و پسوندها.
پارامترهای نمونه AWS RDS Source DB و Destination DB را تنظیم کنید:

rds.logical_replication=1 برای رسیدن به wal_level=منطقی
max_replication_slots=10
max_wal_senders=15
max_worker_processes=10

مرحله 1: ایجاد نقش ها و پایگاه های داده

راه اندازی پایگاه داده منبع

با ایجاد نقش و پایگاه داده برای منبع شروع کنید:

CREATE ROLE dmitry_test_src WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD ‘1234567’;
CREATE DATABASE dmitry_test_src;
GRANT CONNECT ON DATABASE dmitry_test_src TO dmitry_test_src;
GRANT ALL PRIVILEGES ON DATABASE dmitry_test_src TO dmitry_test_src;
GRANT dmitry_test_src TO root;
ALTER DATABASE dmitry_test_src OWNER TO dmitry_test_src;

راه اندازی پایگاه داده مقصد

سپس یک تنظیمات مشابه برای مقصد ایجاد کنید:

CREATE ROLE dmitry_test_dest WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD ‘1234567’;
CREATE DATABASE dmitry_test_dest;
GRANT CONNECT ON DATABASE dmitry_test_dest TO dmitry_test_dest;
GRANT ALL PRIVILEGES ON DATABASE dmitry_test_dest TO dmitry_test_dest;
GRANT dmitry_test_dest TO root;
ALTER DATABASE dmitry_test_dest OWNER TO dmitry_test_dest;

مرحله 2: برنامه افزودنی pglogical را نصب کنید

اکنون به هر دو پایگاه داده متصل شده و پسوند pglogical را ایجاد کنید.

در پایگاه داده منبع

psql -h localhost -p 5432 -U dmitry_test_src -d dmitry_test_src
CREATE EXTENSION pglogical;

در پایگاه داده مقصد

psql -h localhost -p 5432 -U dmitry_test_dest -d dmitry_test_dest
CREATE EXTENSION pglogical;

مرحله 3: گره منبع را پیکربندی کنید

در پایگاه داده منبع، گره pglogical را پیکربندی کنید:

SELECT pglogical.create_node(
node_name := ‘src’,
dsn := ‘host=dmitry-test-src.abcdeghijklmno.us-east-1.rds.amazonaws.com port=5432 user=root dbname=dmitry_test_src password=********’
);

سپس، تمام جداول عمومی را به مجموعه تکرار اضافه کنید:

SELECT pglogical.replication_set_add_all_tables(‘default’, ARRAY[‘public’]);

مرحله 4: گره مقصد را پیکربندی کنید

در پایگاه داده مقصد، گره pglogical را راه اندازی کنید:

SELECT pglogical.create_node(
node_name := ‘dest’,
dsn := ‘host=dmitry-test-dest.pqrstuvwxyz.us-east-1.rds.amazonaws.com port=5432 user=root dbname=dmitry_test_dest password=********’
);

مرحله 5: ایجاد اشتراک در مقصد

در نهایت، یک اشتراک در پایگاه داده مقصد ایجاد کنید تا داده ها را از منبع تکرار کنید:

SELECT pglogical.create_subscription(
subscription_name := ‘subscription1’,
provider_dsn := ‘host=dmitry-test-src.abcdeghijklmno.us-east-1.rds.amazonaws.com port=5432 user=root dbname=dmitry_test_src password=********’
);

مرحله 6: وضعیت اشتراک را نظارت کنید

با اجرای زیر می توانید وضعیت اشتراک خود را کنترل کنید:

SELECT subscription_name, status FROM pglogical.show_subscription_status();

مرحله 7: اشتراک را رها کنید (در صورت نیاز)

اگر نیاز به حذف اشتراک در هر نقطه ای دارید، می توانید موارد زیر را اجرا کنید:

SELECT pglogical.drop_subscription(‘subscription1’);

نتیجه گیری

راه اندازی تکرار منطقی با استفاده از pglogical در PostgreSQL در AWS می تواند دسترسی و مقیاس پذیری داده ها را تا حد زیادی افزایش دهد. با دنبال کردن مراحل ذکر شده در بالا، می توانید به طور موثر یک محیط تکراری را متناسب با نیازهای خود پیکربندی کنید. مثل همیشه، اطمینان حاصل کنید که عملکرد و وضعیت تنظیم تکرار خود را برای حفظ یکپارچگی داده ها در پایگاه های داده خود نظارت می کنید.

در دنیای امروزی مبتنی بر داده، توانایی تکثیر پایگاه‌های داده به طور کارآمد و یکپارچه در محیط‌های مختلف بسیار مهم است. یکی از ابزارهای قدرتمند برای دستیابی به این امر در PostgreSQL pglogical است، افزونه ای که قابلیت های تکرار منطقی را فراهم می کند. در این مقاله، مراحل راه‌اندازی تکرار منطقی بین دو پایگاه داده PostgreSQL که روی AWS با استفاده از pglogical میزبانی شده‌اند را طی می‌کنیم.

پیش نیازها

قبل از ورود به تنظیمات، مطمئن شوید که موارد زیر را دارید:

  • دو پایگاه داده PostgreSQL که روی AWS RDS اجرا می شوند (مثلاً dmitry_test_src و dmitry_test_dest).
  • سرویس گیرنده PostgreSQL برای اجرای دستورات روی ماشین محلی شما نصب شده است.
  • مجوزهای لازم برای ایجاد نقش ها، پایگاه های داده و پسوندها.
  • پارامترهای نمونه AWS RDS Source DB و Destination DB را تنظیم کنید:

rds.logical_replication=1 برای رسیدن به wal_level=منطقی
max_replication_slots=10
max_wal_senders=15
max_worker_processes=10

مرحله 1: ایجاد نقش ها و پایگاه های داده

راه اندازی پایگاه داده منبع

با ایجاد نقش و پایگاه داده برای منبع شروع کنید:

CREATE ROLE dmitry_test_src WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD '1234567';
CREATE DATABASE dmitry_test_src;
GRANT CONNECT ON DATABASE dmitry_test_src TO dmitry_test_src;
GRANT ALL PRIVILEGES ON DATABASE dmitry_test_src TO dmitry_test_src;
GRANT dmitry_test_src TO root;
ALTER DATABASE dmitry_test_src OWNER TO dmitry_test_src;

راه اندازی پایگاه داده مقصد

سپس یک تنظیمات مشابه برای مقصد ایجاد کنید:

CREATE ROLE dmitry_test_dest WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD '1234567';
CREATE DATABASE dmitry_test_dest;
GRANT CONNECT ON DATABASE dmitry_test_dest TO dmitry_test_dest;
GRANT ALL PRIVILEGES ON DATABASE dmitry_test_dest TO dmitry_test_dest;
GRANT dmitry_test_dest TO root;
ALTER DATABASE dmitry_test_dest OWNER TO dmitry_test_dest;

مرحله 2: برنامه افزودنی pglogical را نصب کنید

اکنون به هر دو پایگاه داده متصل شده و پسوند pglogical را ایجاد کنید.

در پایگاه داده منبع

psql -h localhost -p 5432 -U dmitry_test_src -d dmitry_test_src
CREATE EXTENSION pglogical;

در پایگاه داده مقصد

psql -h localhost -p 5432 -U dmitry_test_dest -d dmitry_test_dest
CREATE EXTENSION pglogical;

مرحله 3: گره منبع را پیکربندی کنید

در پایگاه داده منبع، گره pglogical را پیکربندی کنید:

SELECT pglogical.create_node(
  node_name := 'src',
  dsn := 'host=dmitry-test-src.abcdeghijklmno.us-east-1.rds.amazonaws.com port=5432 user=root dbname=dmitry_test_src password=********'
);

سپس، تمام جداول عمومی را به مجموعه تکرار اضافه کنید:

SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']);

مرحله 4: گره مقصد را پیکربندی کنید

در پایگاه داده مقصد، گره pglogical را راه اندازی کنید:

SELECT pglogical.create_node(
  node_name := 'dest',
  dsn := 'host=dmitry-test-dest.pqrstuvwxyz.us-east-1.rds.amazonaws.com port=5432 user=root dbname=dmitry_test_dest password=********'
);

مرحله 5: ایجاد اشتراک در مقصد

در نهایت، یک اشتراک در پایگاه داده مقصد ایجاد کنید تا داده ها را از منبع تکرار کنید:

SELECT pglogical.create_subscription(
  subscription_name := 'subscription1',
  provider_dsn := 'host=dmitry-test-src.abcdeghijklmno.us-east-1.rds.amazonaws.com port=5432 user=root dbname=dmitry_test_src password=********'
);

مرحله 6: وضعیت اشتراک را نظارت کنید

با اجرای زیر می توانید وضعیت اشتراک خود را کنترل کنید:

SELECT subscription_name, status FROM pglogical.show_subscription_status();

مرحله 7: اشتراک را رها کنید (در صورت نیاز)

اگر نیاز به حذف اشتراک در هر نقطه ای دارید، می توانید موارد زیر را اجرا کنید:

SELECT pglogical.drop_subscription('subscription1');

نتیجه گیری

راه اندازی تکرار منطقی با استفاده از pglogical در PostgreSQL در AWS می تواند دسترسی و مقیاس پذیری داده ها را تا حد زیادی افزایش دهد. با دنبال کردن مراحل ذکر شده در بالا، می توانید به طور موثر یک محیط تکراری را متناسب با نیازهای خود پیکربندی کنید. مثل همیشه، اطمینان حاصل کنید که عملکرد و وضعیت تنظیم تکرار خود را برای حفظ یکپارچگی داده ها در پایگاه های داده خود نظارت می کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا