
Sergey
13.04.2017
06:05:38
У PgPro есть функция WAITLSN - ждёт пока на слейве докатится определенный LSN https://postgrespro.ru/docs/postgrespro/9.6/sql-waitlsn.html После внесения изменений на primary можно получить текущий LSN с помощью pg_current_xlog_location() и дождаться его на slave

Denis
13.04.2017
06:24:56
flvyes_123

Centrino
13.04.2017
10:08:26
Привет.
Делаю дамп с базы тестовой.
Он получается 15гб.
Можно ли как-то порезать этот дамп, некоторые "лишние таблицы" почистить при дампе?
На рабочую машину не влазит

Fedor
13.04.2017
10:09:18
дампать только нужные таблицы

Google

Alexey
13.04.2017
10:09:45
вот правда... порой хочется ответить
man pg_dump

Centrino
13.04.2017
10:09:51
наверное не точно выразился

Айтуар
13.04.2017
10:09:53

Centrino
13.04.2017
10:10:10
мне нужно не исключить полностью, а оставить там 10% строк

Alexey
13.04.2017
10:10:26
сэмплинг

Fedor
13.04.2017
10:10:35
угу

Alexey
13.04.2017
10:10:38
и он, поди, должен быть согласованный?

Centrino
13.04.2017
10:10:38
если я исключу полностью, то остальное сломается(

Alexey
13.04.2017
10:10:54
в смысле, чтоб все целостности сохранились и т.д.
я таких автоматических/generic механизмов не знаю, скорее всего вам нужно пилить что-то свое

Centrino
13.04.2017
10:12:28
видимо придется пилить скрипт, который будет делать бэкап, удалять часть базы и делать дамп
спасибо

Alexey
13.04.2017
10:13:00
ну это может быть частью некого ETL (https://ru.wikipedia.org/wiki/ETL)

Google

Alexey
13.04.2017
10:13:14
т.е. не обязательно в какой-то БД удалять что-то
можно просто вытягивать из src (БД источник) небольшой согласованный набор данных

Centrino
13.04.2017
10:14:17
не знаю таких слов)

Alexey
13.04.2017
10:14:21
но все это делать надо с учетом понимания вашей схемы и домена

Артур
13.04.2017
10:15:09
А можно просто делатать копию базы, вызывать заранее написанную процедуру-удалялку,потом уже ее дамп делать
Ну как вариант

Сергей
13.04.2017
10:58:35
возможно у тебя есть таблицы с историей или логами в базе. вот их можно исключить. обычно после такого дамп сильно меньше
согласованный кусок данных ты в общем случае никак не выгрузишь. БД не располагает такой инфой(с учетом кастомных констрейнов, циклических ссылок через десяток таблиц и тд)

Артур
13.04.2017
10:59:48

Centrino
13.04.2017
11:00:32
в общем, решил написать скрипт, который чистит базу и после делает дамп. А потом восстанавливает базу из бэкапа

Артур
13.04.2017
11:00:35

Александр
13.04.2017
11:12:29
Они там охуели со своими комиссиями

Сергей
13.04.2017
11:32:32
еще кто-то не пользуется онлайн-банками?

Akzhan
13.04.2017
11:32:37
Не является проблемой, если первичными являются банковские счета. У меня часто наличности нет вообще.

Айтуар
13.04.2017
12:05:04
Здравствуйте.
Я знаю что здесь у же речь об этом поднималась.
Мне нужно быстро сделать партиционирование на таблице размером в почти 1 ТБ - что посоветуете?

Igor
13.04.2017
12:11:38
воспользоваться поиском? %)

Айтуар
13.04.2017
12:18:09
судя по поиску проблема с returning id при инсёрте не решена в pg-pathman

Igor
13.04.2017
12:20:01
а pg_partman не подходит?

Andrey
13.04.2017
12:20:29

Айтуар
13.04.2017
12:20:34

Google

Andrey
13.04.2017
12:20:48

Dmitry
13.04.2017
12:21:02

Айтуар
13.04.2017
12:21:10
а это в первой версии вроде?

Andrey
13.04.2017
12:21:17
Да.

Айтуар
13.04.2017
12:21:39
а вставка в род таблицу не происходит, а в партицию сразу
раньше так работало вроде

Dmitry
13.04.2017
12:22:24
и?

Айтуар
13.04.2017
12:22:34
и возращает 0

Dmitry
13.04.2017
12:23:02
я правильно понимаю, что речь идет о том, что на родителе висит default?

Айтуар
13.04.2017
12:23:36

Dmitry
13.04.2017
12:24:24

Сергей
13.04.2017
12:44:54
добавьте меня про джангу и парцирование
мне это тож надо

Yura
13.04.2017
16:03:27
Зря вы убежали партицировать в отдельный чат.
Тут бы инфа пригадилась многим
*пригодилась
Кто-то уже решает подобную проблему, кто-то читает и перенимает опыт. Все пригодится

Fedor
13.04.2017
16:05:03
это точно

Denis
13.04.2017
16:05:36
Перенаправите выжимки из чата сюда)

Google

Dmitry
13.04.2017
18:01:34
Если так подумать, то со стороны выглядело как попытка замять проблему :) На самом деле мы проблему воспроизвести не смогли, ни в psql, ни с Джанго. Если все-таки подтвердится - будем решать
Репост будет

Айтуар
13.04.2017
18:19:17

Admin
ERROR: S client not available

Pavel
14.04.2017
00:10:41
Я вот прям уверен, что можно select somefunc(123) превратить в команду в psql типа somefunc(123). Не подскажите, в какую сторону копать?

Denis
14.04.2017
02:43:05

Pavel
14.04.2017
05:30:21

Ildar
14.04.2017
06:51:57

Konstantin
14.04.2017
09:41:30

Pavel
14.04.2017
10:26:53

Алексей
14.04.2017
12:47:57
подскажите плиз. если исполнить запрос update table set column='-infinity'::timestamp with time zone
проставится -infinity в каждую строку? или высчитается дата

Akzhan
14.04.2017
12:48:44
эм, а выполнить запрос дольше, чем ждать ответа в чатике?)

Алексей
14.04.2017
12:48:59
проставляется -infinity
вопрос в том что есть два поля udt типа timestamp with time zone и по умолчанию new() и поле adt того же типа по умолчанию '-infinity'::timestamp with time zone
при инсерте в таблицу в поле udt проставляется дата все норм а в поле adt лезет NULL
чем должно заполнится поле при таком значении по умолчанию?

Denis
14.04.2017
12:56:20
Должно быть -infinity, если вы в качестве значения поля передаете default или не указываете поле

Akzhan
14.04.2017
12:57:09
dev@localhost:unisocial> create table ttt(adt timestamp with time zone default '-Infinity'::timestamp wi
........................ th time zone);
CREATE TABLE
Time: 0.003s
dev@localhost:unisocial> insert into ttt values(default);
INSERT 0 1
Time: 0.001s
dev@localhost:unisocial> select * from ttt;
+-----------+
| adt |
|-----------|
| -infinity |
+-----------+
SELECT 1
Time: 0.001s

Алексей
14.04.2017
12:58:25
ок. спс. значит у меня проблема в том что он не проставляет -infinity что должен делать т.к. я не указываю данное поле при инсерте

Google

Akzhan
14.04.2017
13:00:23
нет
dev@localhost:unisocial> alter table ttt add column id int default 1;
ALTER TABLE
Time: 0.253s
dev@localhost:unisocial> insert into ttt(id) values(1);
INSERT 0 1
Time: 0.001s
dev@localhost:unisocial> select * from ttt;
+-----------+------+
| adt | id |
|-----------+------|
| -infinity | 1 |
| -infinity | 1 |
+-----------+------+
SELECT 2
Time: 0.001s

Denis
14.04.2017
13:00:40
Вообще не так должно быть - даже если не писать поле в insert, то должно по умолчанию подставляться то, что написано в default

Akzhan
14.04.2017
13:01:02
скорее всего проблема в вашем ORM etc.

Denis
14.04.2017
13:01:13
Покажите \d имятаблицы

Akzhan
14.04.2017
13:02:06
просто посмотрите, что за INSERT ваше приложение присылает в Postgres
Я более чем уверен, что именно приложение зачем-то подставляет NULL

Алексей
14.04.2017
13:11:47
если я напишу инсерт руками не указав ничего для этого столбца почему то передается null

Anatoliy
14.04.2017
13:15:33
Ну либо не указывайте поле в инсерте, либо сделайте его not null

Denis
14.04.2017
13:15:57
А покажите запрос на вставку

Алексей
14.04.2017
13:23:06
В таком случае он ругается что передается null а поле стоит not null
Ну либо не указывайте поле в инсерте, либо сделайте его not null

Andrew
14.04.2017
13:30:05
всем добрый вечер
помогите разобраться
select category from catalog where category ilike any (array['%чехлы%','%сувенир%','%подарки%','%пленки%','%детские%','%часы%']); должен же выводить все где встречаются эти слова?
как сюда умудряется попасть слова вида "Смартфоны" "Телефоны и связь/Apple iPhone"