Как сравнить журналы MySQL с журналами Postgresql?
MySQL имеет довольно много журналов:
- Журнал транзакций InnoDB
- Двоичный журнал
- Общий журнал запросов
- Журнал ошибок
- Медленный журнал запросов
Я знаю о WAL Postgresql, который эквивалентен журналу транзакций InnoDB (правильно?).
Как насчет других журналов MySQL, таких как журнал bin - есть ли в Postgresql их эквивалентность?
2 ответа
Поскольку MySQL реализует несколько механизмов хранения, существует необходимость в двоичном журнале для инкрементных резервных копий / репликации и журнале транзакций InnoDB для соответствия ACID (только с механизмом хранения InnoDB). В postgres WAL может использоваться как для репликации, так и для соответствия ACID, поэтому WAL объединяет двоичный файл журнал и журнал транзакций InnoDB.
Вы можете отправлять запросы журнала postgres в журнал syslog / separete с помощью log_statement и log_duration . Таким образом, вы получаете и журнал запросов, и с помощью директивы log_min_duration_statement вы можете реализовать медленный журнал запросов.
Возможно, я немного ошибся в некоторых деталях, но я считаю, что:
Как вы упоминаете, WAL похож на журнал транзакций innodb.
Все журналы обычно находятся в /var/log/postgresql/postgresql.log)
В стандартном PostgreSQL нет двоичного файла журнала, потому что он не выполняет репликацию, в отличие от MySQL. Вы можете использовать такие вещи, как Slony, чтобы добавить репликацию.
Журнал ошибок находится в postgresql.log
Журнал медленных запросов также попадает в этот файл.
Общий журнал запросов аналогичен заданию ограничения медленных запросов равным 0 мс.