PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PGLogical 1.1 пакети за PostgreSQL 9.6beta1

Ние направихме pglogical 1.1 пакети достъпни за PostgreSQL 9.6beta1 както за rpm, така и за deb базирани дистрибуции. Те са достъпни за инсталиране от нашето стандартно хранилище на pglogical пакети.

Може да попитате защо пускаме пакети за бета версията на Postgres? Е, една от причините е, че можете да използвате pglogical, за да репликирате съществуващата си PostgreSQL 9.5 или 9.4 база данни към 9.6beta1 в реално време и да провеждате тестове върху нея, за да помогнете да премахнете всички останали грешки в бета версията. Ето кратък урок за това как да направите това.

Първата стъпка е да инсталирате PostgreSQL 9.6beta1, проверете съобщението за изданието за информация как да направите това. Втората стъпка е да инсталирате pglogical, както е обяснено на страницата с инструкции за инсталиране.

Сега за действителната настройка за репликация. Това е сравнително лесно. Започнете, като се уверите, че PostgreSQL е конфигуриран да позволява логическа репликация:

wal_level = 'logical'
max_worker_processes = 10   # one per database needed on provider node
                            # one per node needed on subscriber node
max_replication_slots = 10  # one per node needed on provider node
max_wal_senders = 10        # one per node needed on provider node
shared_preload_libraries = 'pglogical'

Промяната на горните настройки изисква рестартиране на сървъра.

Трябва също да разрешите входящи връзки за репликация в pg_hba.conf (точно както при настройка на репликация на физическо поточно предаване). Редът в pg_hba.conf трябва да изглежда така:

host    replication     postgres        10.0.0.2/32            md5

Вижте страницата с документацията на pg_hba за повече информация.

След това инсталирайте разширението pglogical в базата данни на доставчика и създайте pglogical възел там:

CREATE EXTENSION pglogical;
SELECT pglogical.create_node(
    node_name := 'provider1',
    dsn := 'host=providerhost port=5432 dbname=db'
);

След това направете същото с новата база данни 9.6:

CREATE EXTENSION pglogical;
SELECT pglogical.create_node(
    node_name := 'subscriber1',
    dsn := 'host=subscriberhost port=5432 dbname=db'
);

Имайте предвид, че низовете за връзка трябва да водят до базата данни, в която изпълнявате тези команди.

Върнете се в базата данни на доставчика, добавете таблиците, които искате да репликирате, към default набор за репликация. Лесният начин да направите това е да добавите всички таблици в public схема като тази:

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

И накрая, отново в базата данни за абонати, създайте абонамент, който се свързва с доставчика и започва да се репликира.

SELECT pglogical.create_subscription(
    subscription_name := 'subscription1',
    provider_dsn := 'host=providerhost port=5432 dbname=db',
    synchronize_structure := true
);

Тук низът за връзка трябва да бъде същият като този, използван при създаване на pglogical възел на доставчика. synchronize_structure := true означава, че pglogical ще копира всички структури на таблици от базата данни на доставчика в базата данни на абонатите (използвайки стандартен pg_dump ).

И това е всичко, вече имате работеща репликация между вашата съществуваща база данни PostgreSQL 9.5 или 9.4 и новата PostgreSQL 9.6beta1.

Проверете pglogical документацията и страниците на проекта за допълнителна информация относно функциите, използвани в тази публикация, и за това как да направите повече от просто репликация.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли оператор на postgre CLOSEST?

  2. Как да разберем ОБЯСНИТЕЛЕН АНАЛИЗ

  3. 2ndQuadrant Deutschland – специална сделка за откриване на обучение

  4. Показване на изображение в Ireports с помощта на PostgreSql

  5. Рефакториране на външния ключ към полета