Size: a a a

pgsql – PostgreSQL

2021 February 21

VY

Victor Yegorov in pgsql – PostgreSQL
Alexander Nikitin
В соседней сессии начал транзакцию и удалил этот индекс. После чего выполнил такой же запрос - выдал Seq Scan и пока не закрывал транзакцию вернулся в первую сессию и повторил explain analyze select * from test where ticket_no = '0005432000892'; - и этот запрос повис до тех пор пока я не откатил транзакцию во второй сессии.
ну я полагаю, что это предлагалось сделать для того, чтобы заставить базу использовать другой существующий индекс
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
Не совсем, человек, который рассказывал доклад говорил, что ему в постгресе не хватает невидимых индексов, которые есть в оракле. И как аналог он предложил использовать такой механизм.
источник

NZ

Nazar Zakap in pgsql – PostgreSQL
А если нет резервной копии, то можно как-то восстановить базу данных Postgresql?
источник

SG

Sergey Gerasimov in pgsql – PostgreSQL
Nazar Zakap
А если нет резервной копии, то можно как-то восстановить базу данных Postgresql?
Помолиться?
источник

R

Roman in pgsql – PostgreSQL
Конечно. Заново залить всё что там было))
А вот если БД просто повреждена, то есть варианты
источник

NZ

Nazar Zakap in pgsql – PostgreSQL
Ок
источник

N

Nurlan in pgsql – PostgreSQL
Nazar Zakap
А если нет резервной копии, то можно как-то восстановить базу данных Postgresql?
Как вариант глянуть может не средствами бд бэкап делали... А того же гипервизора
источник
2021 February 22

R

Radist in pgsql – PostgreSQL
Alexander Nikitin
Не совсем, человек, который рассказывал доклад говорил, что ему в постгресе не хватает невидимых индексов, которые есть в оракле. И как аналог он предложил использовать такой механизм.
На 9.6 делал апдейт pg_catalog.pg_index.indisvalid как раз чтобы сделать индекс инвалидным и построить план без использования этого индекса. На более новых версиях не проверял. Плюс, на проде я бы такое не стал использовать.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Radist
На 9.6 делал апдейт pg_catalog.pg_index.indisvalid как раз чтобы сделать индекс инвалидным и построить план без использования этого индекса. На более новых версиях не проверял. Плюс, на проде я бы такое не стал использовать.
после того, как вы сделали такой апдейт, индекс не получает изменения от DML и становится действительно инвалидным, т.е. его надо перестраивать.
источник

R

Radist in pgsql – PostgreSQL
Victor Yegorov
после того, как вы сделали такой апдейт, индекс не получает изменения от DML и становится действительно инвалидным, т.е. его надо перестраивать.
Так после построения плана, я rollback выполнял. Или она не транзакционна?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Radist
Так после построения плана, я rollback выполнял. Или она не транзакционна?
синхронизация состояния сессий в плане видения системного каталога — сложная штука. когда вы руками лезете в каталог с апдейтами с большой долей вероятности можно сказать, что какая-то сессия может не увидеть, или увидеть не так.
как минимум надо брать блокировку на таблицу, чтобы запретить параллельные DML-ы ( LOCK TABLE IN SHARE MODE; )
источник

SA

Sherzod Akhmedov in pgsql – PostgreSQL
Всем привет

Я получаю все даты в GMT + 3, но часовой пояс сервера и часовой пояс postgresql-a и часовой пояс PHP (+ проекта) установлены как «Asia/Tashkent» (GMT + 5)

Что я могу сделать, чтобы все дата и время сохранились в GMT + 5?

P.S Сервер находиться в Москве
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Дата и время в форме timestamptz хранятся одинаково, а все эти +6:45 по факту просто варианты отображения в пользовательской сессии.
Лично я эти преобразования в голове делаю со скрипом и подсматриваю в документацию.
Смотреть надо ( по памяти, не точно! )
select my_time at timezone;
set session timezone ...
источник

dd

dgj dfsh in pgsql – PostgreSQL
Sherzod Akhmedov
Всем привет

Я получаю все даты в GMT + 3, но часовой пояс сервера и часовой пояс postgresql-a и часовой пояс PHP (+ проекта) установлены как «Asia/Tashkent» (GMT + 5)

Что я могу сделать, чтобы все дата и время сохранились в GMT + 5?

P.S Сервер находиться в Москве
В бд вроде правильно хранить в utc0
источник

SA

Sherzod Akhmedov in pgsql – PostgreSQL
Понял, спасибо за ответы 👍
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
dgj dfsh
В бд вроде правильно хранить в utc0
источник

V

Victooor in pgsql – PostgreSQL
Есть крошечная таблица на 2 строки, куда иногда записывается ключи для шифрования.

CREATE TABLE "encrypt" (
   "name" text NOT NULL,
   "value" text
);

INSERT INTO "encrypt" ("name", "value") VALUES
('key1',  NULL),
('key2',  NULL);

Ключи используются для некоторых операций, по их окончании которых указанный ключ требуется удалить. Как я понимаю, простой UPDATE encrypt SET value = NULL WHERE name = "key1" просто создаст копию строки с пустым полем, а старая строка останется на диске на какое-то время. Что лучше будет в данном случае использовать, VACUUM encrypt или VACUUM FULL encrypt? В документации сказано что в первом случае просто высвобождается пространство для повторного использования (непонятно как именно). Во втором случае таблица переписывается в новый файл, и место отдаётся системе. Получается, старый файл физически на диске будет присутствовать?
источник

DO

Do c Tor O r` Ry in pgsql – PostgreSQL
Victooor
Есть крошечная таблица на 2 строки, куда иногда записывается ключи для шифрования.

CREATE TABLE "encrypt" (
   "name" text NOT NULL,
   "value" text
);

INSERT INTO "encrypt" ("name", "value") VALUES
('key1',  NULL),
('key2',  NULL);

Ключи используются для некоторых операций, по их окончании которых указанный ключ требуется удалить. Как я понимаю, простой UPDATE encrypt SET value = NULL WHERE name = "key1" просто создаст копию строки с пустым полем, а старая строка останется на диске на какое-то время. Что лучше будет в данном случае использовать, VACUUM encrypt или VACUUM FULL encrypt? В документации сказано что в первом случае просто высвобождается пространство для повторного использования (непонятно как именно). Во втором случае таблица переписывается в новый файл, и место отдаётся системе. Получается, старый файл физически на диске будет присутствовать?
так как там 2 строки, скорей всего и переписывания никакого не будет. и так все умещается
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Старый файл будет удалён. А сколько его блоки будут валяться на диске - это вопрос к ФС.
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
В PgPro есть специальная "защищённая" версия, которая явно зачищает все освобождаемые данные в памяти и на диске.
Ноя не очень понимаю, почему вас так беспокоит сохранность старых ключей шифрования, а не новых...
источник