
Alexey
16.02.2017
11:04:17
Технически — видео скачанное с ютаба и положенное локально тоже с ютаба. ;) Но это я так, придраться.
А что — получился фейл? :)

Pavel
16.02.2017
11:04:35

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

Mike Chuguniy
16.02.2017
12:12:56

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

Sergey
16.02.2017
12:14:21

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

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

Mike Chuguniy
16.02.2017
12:16:30

Google

Mike Chuguniy
16.02.2017
12:16:39

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

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

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

Петр
16.02.2017
15:55:04

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

Pavel
16.02.2017
16:11:18

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, например