Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE DATABASE goods_sales
- WITH ENCODING='UTF8'
- CONNECTION LIMIT=-1;
- Создание таблицы Торгующие предприятия:
- CREATE TABLE public.trade_enterprise
- (
- company_id integer NOT NULL,
- company_name text,
- director text,
- phone integer,
- CONSTRAINT trade_enterprise_pkey PRIMARY KEY (company_id)
- )
- WITH (
- OIDS=FALSE
- );
- ALTER TABLE public.trade_enterprise
- OWNER TO postgres;
- 8
- Создание таблицы Товары:
- CREATE TABLE public.goods
- (
- goods_id integer NOT NULL,
- goods_name text,
- goods_type_name text,
- CONSTRAINT goods_pkey PRIMARY KEY (goods_id)
- )
- WITH (
- OIDS=FALSE
- );
- ALTER TABLE public.goods
- OWNER TO postgres;
- Создание таблицы Типы товаров:
- CREATE TABLE public.types_of_goods
- (
- type_id integer NOT NULL,
- type_name text,
- CONSTRAINT types_of_goods_pkey PRIMARY KEY (type_id)
- )
- WITH (
- OIDS=FALSE
- );
- ALTER TABLE public.types_of_goods
- OWNER TO postgres;
- Создание таблицы Продажа товаров:
- CREATE TABLE public.goods_sale
- (
- company_id integer NOT NULL,
- 9
- goods_id integer,
- cost_of_goods_sold double precision,
- sale_date date,
- CONSTRAINT goods_sale_pkey PRIMARY KEY (company_id),
- CONSTRAINT goods_sale_company_id_fkey FOREIGN KEY (company_id)
- REFERENCES public.trade_enterprise (company_id) MATCH SIMPLE
- ON UPDATE NO ACTION ON DELETE NO ACTION,
- CONSTRAINT goods_sale_goods_id_fkey FOREIGN KEY (goods_id)
- REFERENCES public.goods (goods_id) MATCH SIMPLE
- ON UPDATE NO ACTION ON DELETE NO ACTION
- )
- WITH (
- OIDS=FALSE
- );
- ALTER TABLE public.goods_sale
- OWNER TO postgres;
- Данные БД и таблицы необходимо создать с одинаковыми параметрами
- как на main, так и на backup кластерах для успешной репликации.
- 10
- 3 Настройка репликации
- Настраиваем listen && pg_hba.conf. Для этого в postgresql.conf
- прописываем:
- listen_addresses = 'localhost'
- В pg_hba.conf на мастере будет такая запись:
- host replication postgres localhost trust
- Выставляем ведение журнала таким образом, чтобы слейв мог
- использоваться для чтения:
- wal_level = hot_standby
- Перезапускаем мастер.
- Отправляем базу с мастера на слейв. Для этого на мастере выполняем:
- psql -c "SELECT pg_start_backup('label', true)"
- rsync -a /var/lib/postgresql/9.5/main/
- slave:/var/lib/postgresql/9.5/main/ --exclude postmaster.pid
- psql -c "SELECT pg_stop_backup()"
- Включаем hot_standby на слейве. Добавляем в postgresql.conf:
- hot_standby = on
- Создаем конфиг репликации на слейве. Для этого создаем файл
- recovery.conf в /var/lib/postgresql/9.0/main и пишем:
- standby_mode = 'on'
- primary_conninfo = 'host=192.168.0.1 port=5432 user=postgres'
- trigger_file = '/var/lib/postgresql/9.0/main/trigger'
- restore_command = 'cp /var/lib/postgresql/9.0/main/archive/%f "%p"'
- Заполняем данные на кластере main:
- 11
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('1', 'toothbrush', 'hygiene');
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('2', 'soap', 'hygiene');
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('3', 'sunscreen', 'rest');
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('4', 'washcloth', 'hygiene');
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('5', 'running_track', 'sport');
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('6', 'bike', 'sport');
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('7', 'milk', 'food');
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('8', 'cookies', 'food');
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('9', 'spoon', 'kitchen');
- INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
- ('10', 'speakers', 'music');
Add Comment
Please, Sign In to add comment