@pgsql

Страница 245 из 1062
Alexey
16.02.2017
11:04:17
Технически — видео скачанное с ютаба и положенное локально тоже с ютаба. ;) Но это я так, придраться.

А что — получился фейл? :)

Google
Alexey
16.02.2017
11:05:06
Хоть в шутку ушло? :)

Pavel
16.02.2017
11:05:07
Публика отнеслась с пониманием

raksita
16.02.2017
11:59:59
чат, кто-нибудь сталкивался с такой ошибкой Slony: на реплике появились данные, отсутствующие на мастере. гуглёж пока ничего не даёт

Robert
16.02.2017
12:01:30
Вообще то и анимация считается не очень хорошим тоном. Но это при корпоративной презентации

Wom
16.02.2017
12:02:57
иногда видео таки нужно в презентации

Anatoliy
16.02.2017
12:11:15
чат, кто-нибудь сталкивался с такой ошибкой Slony: на реплике появились данные, отсутствующие на мастере. гуглёж пока ничего не даёт
Такое возможно, только если на реплике эти данные вставили, кмк. Можно переналить табличку, что-ли

Mike Chuguniy
16.02.2017
12:12:56
Такое возможно, только если на реплике эти данные вставили, кмк. Можно переналить табличку, что-ли
Вставить? На слонячью реплику? Я бы оченно хотел посмотреть на такое...

Anatoliy
16.02.2017
12:13:29
Ну вторая база же не read-only, это не реплика постгреса

Anatoliy
16.02.2017
12:14:23
Еще я бы проверил триггеры на слоновой реплике

raksita
16.02.2017
12:15:46
вот да, хочу понять сценарий такой ошибки

триггеры сейчас проверю

Mike Chuguniy
16.02.2017
12:16:30
Ну вторая база же не read-only, это не реплика постгреса
В том-то и дело, что таблички в слонячьей реплике на ведомом узле - оне ридонли. У меня, по крайней мере, всегда так было.

Google
raksita
16.02.2017
12:34:36
отключены logtrigger, truncatetrigger, включены denyaccess, truncatedeny; видимо придётся переналивать

Не смогли удалить с реплики?
вот тоже странно, на мастере есть полный аудит по этой таблице, но конкретно этих данных с реплики даже в аудите нет

Pavel
16.02.2017
12:47:57
иногда видео таки нужно в презентации
Да, например чтобы софт не падал при показе. Или чтобы глупости не нажимать в прямом эфире

Ryzhikov
16.02.2017
13:10:50
@regorov начинали с EHR (МИС) - сейчас немого с гос реестрами столкнулись и public health

Nikita
16.02.2017
15:29:36
Помогите пожалуйста, делаю тестовое задание и столкнулся с вопросом. 1)  Write SQL query for list of top 10 customers who have total amount of invoices in August 2013 greater than $20 000.  Data source: table CUSTOMER (CUSTID primary key, NAME), table INVOICE (CUSTID foreign key, DATE, AMOUNT) 2) Write SQL query to create one list of people from two independent tables -  CUSTOMER and EMPLOYEE, who have birthday on Monday or Friday and their name begins on "b", both small and capital.  Please take you time and write best query (shortest execution time on large datasets) you can, do not use subqueries. Describe also indexes needed to achieve highest performance.  Выглядит легко, но мои варианты не устроили. Может кто подскажет как лучше. SELECT     name,     total_amount FROM  (     SELECT         custid,         SUM (amount) total_amount     FROM         invoice     WHERE         date BETWEEN '2013-08-01'                              AND '2013-08-31'     GROUP BY custid     --HAVING SUM (amount) > 20000 ) t_amount INNER JOIN customer C     ON t_amount.custid = C .custid WHERE total_amount > 20000 ORDER BY t_amount.total_amount DESC  FETCH FIRST 10 ROWS ONLY ) CREATE INDEX date_idx ON invoice ((date::DATE));  SELECT     name FROM customer1 WHERE EXTRACT(ISODOW FROM birthday) IN (1,5)       AND UPPER(name) like 'B%' UNION  SELECT     name FROM employee WHERE EXTRACT(ISODOW FROM birthday) IN (1,5)       AND UPPER(name) like 'B%' Давно не работал с базами, хочу снова начать...

Aleksandr
16.02.2017
15:32:18
Вот по первой задаче как на мой взгляд как-то навороченно

Dashok
16.02.2017
15:37:03
Помогите пожалуйста, делаю тестовое задание и столкнулся с вопросом. 1)  Write SQL query for list of top 10 customers who have total amount of invoices in August 2013 greater than $20 000.  Data source: table CUSTOMER (CUSTID primary key, NAME), table INVOICE (CUSTID foreign key, DATE, AMOUNT) 2) Write SQL query to create one list of people from two independent tables -  CUSTOMER and EMPLOYEE, who have birthday on Monday or Friday and their name begins on "b", both small and capital.  Please take you time and write best query (shortest execution time on large datasets) you can, do not use subqueries. Describe also indexes needed to achieve highest performance.  Выглядит легко, но мои варианты не устроили. Может кто подскажет как лучше. SELECT     name,     total_amount FROM  (     SELECT         custid,         SUM (amount) total_amount     FROM         invoice     WHERE         date BETWEEN '2013-08-01'                              AND '2013-08-31'     GROUP BY custid     --HAVING SUM (amount) > 20000 ) t_amount INNER JOIN customer C     ON t_amount.custid = C .custid WHERE total_amount > 20000 ORDER BY t_amount.total_amount DESC  FETCH FIRST 10 ROWS ONLY ) CREATE INDEX date_idx ON invoice ((date::DATE));  SELECT     name FROM customer1 WHERE EXTRACT(ISODOW FROM birthday) IN (1,5)       AND UPPER(name) like 'B%' UNION  SELECT     name FROM employee WHERE EXTRACT(ISODOW FROM birthday) IN (1,5)       AND UPPER(name) like 'B%' Давно не работал с базами, хочу снова начать...
тебе ж написали: do not use subqueries

Nikita
16.02.2017
15:38:25
Да я сейчас делаю это, меня больше по второму вопросу интересно, как написать наиболее оптимальный запрос.

Aleksandr
16.02.2017
15:40:18
По второму тут видимо особо лучше не придумаешь

Видимо ждут рекомендаций по тому какие индексы надо для таблиц создать

Nikita
16.02.2017
15:42:32
По второму написал 2) Is it optimized for execution time? I can write query which is about 1000 (probably more) times faster. 

Anton
16.02.2017
15:42:57
Коллеги, подскажите, а есть ли какая нибудь переменная которая показывает кл-во строк которые обновили ? хочу логирование в процедуру добавить

Kirill
16.02.2017
15:48:24
По второму написал 2) Is it optimized for execution time? I can write query which is about 1000 (probably more) times faster. 
можно создать индекс примерно так : create index idx_part on table (id) where EXTRACT(ISODOW FROM birthday) IN (1,5) and upper(left(name, 1)) = 'B' select * from table where EXTRACT(ISODOW FROM birthday) IN (1,5) and upper(left(name, 1)) = 'B'

Alexander
16.02.2017
15:50:49
если выбирается name, то лучше и индекс по нему

Kirill
16.02.2017
15:55:01
у постгреса "достаточно ограниченно" работают покрывающие индексы, заодно и об этом можно написать )

Anton
16.02.2017
15:59:06
Table 41-1. Available Diagnostics Items ROW_COUNT Павел, спасибо !

lemi
16.02.2017
16:38:18
можно returning сделать в update

Google
Denis
16.02.2017
17:09:58
PostgreSQL 9.4.2



как лечить?

Zhenia
16.02.2017
17:10:46
в логе что?

Denis
16.02.2017
17:12:23
2017-02-16 17:07:12 GMT LOG: database system was interrupted; last known up at 2017-02-16 16:12:47 GMT 2017-02-16 17:07:13 GMT FATAL: the database system is starting up 2017-02-16 17:07:14 GMT FATAL: the database system is starting up 2017-02-16 17:07:15 GMT FATAL: the database system is starting up 2017-02-16 17:07:16 GMT FATAL: the database system is starting up 2017-02-16 17:07:17 GMT FATAL: the database system is starting up 2017-02-16 17:07:19 GMT FATAL: the database system is starting up 2017-02-16 17:07:20 GMT FATAL: the database system is starting up 2017-02-16 17:07:21 GMT FATAL: the database system is starting up 2017-02-16 17:07:22 GMT FATAL: the database system is starting up 2017-02-16 17:07:23 GMT FATAL: the database system is starting up 2017-02-16 17:07:23 GMT LOG: invalid primary checkpoint record 2017-02-16 17:07:23 GMT LOG: invalid secondary checkpoint record 2017-02-16 17:07:23 GMT PANIC: could not locate a valid checkpoint record 2017-02-16 17:07:23 GMT LOG: startup process (PID 7768) exited with exit code 3 2017-02-16 17:07:23 GMT LOG: aborting startup due to startup process failure

Evgeniy
16.02.2017
17:14:04
мякотка

Zhenia
16.02.2017
17:14:22
pg_resetxlog DATA_DIR

если ошибка в некоректной остановке, запусти с флагом -f

прада можешь проебать данные в этой тразакции

Алексей
16.02.2017
17:16:33
а он точно остановлен? не пытаетесь ли вы запустить вторую копию?

could not create any TCP/IP sockets по-моему как раз об этом и свитетельствует.

Denis
16.02.2017
17:17:29
C:\Users\Shadow>"C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\pg_ctl.exe" start -w -N "pgsql-9.4.2-1.1C-x64" -D "C:\Program Files\PostgreSQL\9.4.2-1.1C\data\"

то есть грубо говоря сюда поставить флаг -f

Алексей
16.02.2017
17:17:51
То есть какой-то процесс уже вероятно слушает 5432

Zhenia
16.02.2017
17:17:57
нет

проверь вначале что Алексей сказал

Alexey
16.02.2017
17:18:42
Это вместо нестата / сокстата.

Алексей
16.02.2017
17:18:54
Если можно - покажите вывод netstat -ant или netstat -antb

Zhenia
16.02.2017
17:19:21
потом "C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\pg_resetxlog.exe" "C:\Program Files\PostgreSQL\9.4.2-1.1C\data\"

Alexey
16.02.2017
17:19:22
А, ой, нетстат же есть в Windows тоже.

Google
Zhenia
16.02.2017
17:19:26
по идее так

Алексей
16.02.2017
17:20:00
Ну там в зависимости от версии флаги могут быть разные. И грипа нет. Но посмотреть все равно можно.

Ну или в самом крайнем случае - посмотрите в диспетчере задач на предмет запущенных процессов pg*

Там же в ошибке практически отрытым текстом "is another postmaster already running on port"

Zhenia
16.02.2017
17:22:59
как тяжело без инитов то

Denis
16.02.2017
17:26:21
вывод команд

в утилите порта 5432, нет, в диспечере вроде процесов postgres тоже

Zhenia
16.02.2017
17:27:01
netstat -a -b

Denis
16.02.2017
17:29:37
вроже и тут нет

порта

далее "C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\pg_resetxlog.exe" "C:\Program Files\PostgreSQL\9.4.2-1.1C\data\"

?

или еще чего

2017-02-16 17:34:40 GMT LOG: database system was shut down at 2017-02-16 17:34:25 GMT 2017-02-16 17:34:40 GMT LOG: database system is ready to accept connections 2017-02-16 17:34:40 GMT LOG: autovacuum launcher started 2017-02-16 17:34:40 GMT WARNING: corrupted statistics file "pg_stat_tmp/global.stat" 2017-02-16 17:34:40 GMT WARNING: corrupted statistics file "pg_stat_tmp/global.stat" 2017-02-16 17:34:50 GMT ERROR: tuple concurrently updated 2017-02-16 17:34:50 GMT STATEMENT: CREATE OR REPLACE FUNCTION public.VASSN(boolean) RETURNS int4 AS ' DECLARE bexpr alias for $1; BEGIN if bexpr then return 0; else return 2000000000; end if; END ' LANGUAGE 'plpgsql' VOLATILE 2017-02-16 17:34:50 GMT WARNING: there is no transaction in progress

служба не стартовала, выдала такой лог

так может кто чего подсказать, чего дальше делать?

получается реиндексирует, какая то часть служб появляется в процессах, но сам сервер не стартует

судя по 2017-02-16 17:48:42 GMT FATAL: the database system is starting up 2017-02-16 17:48:43 GMT LOG: database system was not properly shut down; automatic recovery in progress 2017-02-16 17:48:43 GMT LOG: redo starts at 5/EB137F78 2017-02-16 17:48:43 GMT LOG: record with zero length at 5/EB1621F0 2017-02-16 17:48:43 GMT LOG: redo done at 5/EB1621C0 2017-02-16 17:48:43 GMT LOG: last completed transaction was at log time 2017-02-16 17:48:01.8+00 2017-02-16 17:48:43 GMT FATAL: the database system is starting up 2017-02-16 17:48:43 GMT LOG: database system is ready to accept connections 2017-02-16 17:48:43 GMT LOG: autovacuum launcher started 2017-02-16 17:50:08 GMT LOG: autovacuum: found orphan temp table "pg_temp_3"."tt1" in database "Unified_Bonus_System" 2017-02-16 17:50:08 GMT LOG: autovacuum: found orphan temp table "pg_temp_3"."tt2" in database "Unified_Bonus_System" я так понимаю начат процесс восстановления

кто нит ьв курсе сколько по времени он идет?

на небольшой базе до 20 гб

Google
Петр
16.02.2017
18:06:42
у тебя же в логах четко написано, что redo done

Denis
16.02.2017
18:08:29
2017-02-16 18:04:08 GMT LOG: autovacuum: found orphan temp table "pg_temp_3"."tt5" in database "Unified_Bonus_System" 2017-02-16 18:04:08 GMT LOG: autovacuum: found orphan temp table "pg_temp_3"."tt6" in database "Unified_Bonus_System" 2017-02-16 18:04:08 GMT LOG: autovacuum: found orphan temp table "pg_temp_3"."tt7" in database "Unified_Bonus_System"

я просто вижу в логе

автовакуум, он же не только делает обновление статистики

у меня есть только некоторые представления по postgreSQl, потому я могу задавать глупые вопросы

у меня появилась часть процессов в диспетчере задач, но слуба сама не стартовала,

потому я и интересуюсь

о порядке действий дальше

Петр
16.02.2017
18:13:10
какие процессы у тебя появились и какие не появились? судя по логам бд у тебя открылась и готова принимать подключения

Denis
16.02.2017
18:17:26
сейчас грохнул поцессы, запустил службу..все стартовало... всем спасибо)

Петр
16.02.2017
18:18:52
видно, что как-то криво ты процессы грохаешь, по остаткам pid-файлов и кораптнутой статистике

Denis
16.02.2017
18:19:09
а как правильно?

Петр
16.02.2017
18:19:31
pg_terminate_backend, например

Страница 245 из 1062