ademosh

BD example

Feb 21st, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.09 KB | None | 0 0
  1. CREATE DATABASE goods_sales
  2. WITH ENCODING='UTF8'
  3. CONNECTION LIMIT=-1;
  4. Создание таблицы Торгующие предприятия:
  5. CREATE TABLE public.trade_enterprise
  6. (
  7. company_id integer NOT NULL,
  8. company_name text,
  9. director text,
  10. phone integer,
  11. CONSTRAINT trade_enterprise_pkey PRIMARY KEY (company_id)
  12. )
  13. WITH (
  14. OIDS=FALSE
  15. );
  16. ALTER TABLE public.trade_enterprise
  17. OWNER TO postgres;
  18. 8
  19. Создание таблицы Товары:
  20. CREATE TABLE public.goods
  21. (
  22. goods_id integer NOT NULL,
  23. goods_name text,
  24. goods_type_name text,
  25. CONSTRAINT goods_pkey PRIMARY KEY (goods_id)
  26. )
  27. WITH (
  28. OIDS=FALSE
  29. );
  30. ALTER TABLE public.goods
  31. OWNER TO postgres;
  32. Создание таблицы Типы товаров:
  33. CREATE TABLE public.types_of_goods
  34. (
  35. type_id integer NOT NULL,
  36. type_name text,
  37. CONSTRAINT types_of_goods_pkey PRIMARY KEY (type_id)
  38. )
  39. WITH (
  40. OIDS=FALSE
  41. );
  42. ALTER TABLE public.types_of_goods
  43. OWNER TO postgres;
  44. Создание таблицы Продажа товаров:
  45. CREATE TABLE public.goods_sale
  46. (
  47. company_id integer NOT NULL,
  48. 9
  49. goods_id integer,
  50. cost_of_goods_sold double precision,
  51. sale_date date,
  52. CONSTRAINT goods_sale_pkey PRIMARY KEY (company_id),
  53. CONSTRAINT goods_sale_company_id_fkey FOREIGN KEY (company_id)
  54. REFERENCES public.trade_enterprise (company_id) MATCH SIMPLE
  55. ON UPDATE NO ACTION ON DELETE NO ACTION,
  56. CONSTRAINT goods_sale_goods_id_fkey FOREIGN KEY (goods_id)
  57. REFERENCES public.goods (goods_id) MATCH SIMPLE
  58. ON UPDATE NO ACTION ON DELETE NO ACTION
  59. )
  60. WITH (
  61. OIDS=FALSE
  62. );
  63. ALTER TABLE public.goods_sale
  64. OWNER TO postgres;
  65. Данные БД и таблицы необходимо создать с одинаковыми параметрами
  66. как на main, так и на backup кластерах для успешной репликации.
  67. 10
  68. 3 Настройка репликации
  69. Настраиваем listen && pg_hba.conf. Для этого в postgresql.conf
  70. прописываем:
  71. listen_addresses = 'localhost'
  72. В pg_hba.conf на мастере будет такая запись:
  73. host replication postgres localhost trust
  74. Выставляем ведение журнала таким образом, чтобы слейв мог
  75. использоваться для чтения:
  76. wal_level = hot_standby
  77. Перезапускаем мастер.
  78. Отправляем базу с мастера на слейв. Для этого на мастере выполняем:
  79. psql -c "SELECT pg_start_backup('label', true)"
  80. rsync -a /var/lib/postgresql/9.5/main/
  81. slave:/var/lib/postgresql/9.5/main/ --exclude postmaster.pid
  82. psql -c "SELECT pg_stop_backup()"
  83. Включаем hot_standby на слейве. Добавляем в postgresql.conf:
  84. hot_standby = on
  85. Создаем конфиг репликации на слейве. Для этого создаем файл
  86. recovery.conf в /var/lib/postgresql/9.0/main и пишем:
  87. standby_mode = 'on'
  88. primary_conninfo = 'host=192.168.0.1 port=5432 user=postgres'
  89. trigger_file = '/var/lib/postgresql/9.0/main/trigger'
  90. restore_command = 'cp /var/lib/postgresql/9.0/main/archive/%f "%p"'
  91. Заполняем данные на кластере main:
  92. 11
  93. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  94. ('1', 'toothbrush', 'hygiene');
  95. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  96. ('2', 'soap', 'hygiene');
  97. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  98. ('3', 'sunscreen', 'rest');
  99. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  100. ('4', 'washcloth', 'hygiene');
  101. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  102. ('5', 'running_track', 'sport');
  103. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  104. ('6', 'bike', 'sport');
  105. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  106. ('7', 'milk', 'food');
  107. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  108. ('8', 'cookies', 'food');
  109. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  110. ('9', 'spoon', 'kitchen');
  111. INSERT INTO goods (goods_id, goods_name, goods_type_name) VALUES
  112. ('10', 'speakers', 'music');
Add Comment
Please, Sign In to add comment