No PostgreSQL, qual é a diferença entre collations C
e C.UTF-8
?
Ambos aparecem em linhas de pg_collation
. Talvez C.UTF-8
seja o mesmo que C
com a codificação UTF-8
independentemente ou qual seja a codificação real de um banco de dados?
No PostgreSQL, qual é a diferença entre collations C
e C.UTF-8
?
Ambos aparecem em linhas de pg_collation
. Talvez C.UTF-8
seja o mesmo que C
com a codificação UTF-8
independentemente ou qual seja a codificação real de um banco de dados?
É possível "marcar" um banco de dados PostgreSQL com metadados?
Aqui está meu caso de uso pretendido: Eu tenho um banco de dados que passa por várias etapas de fluxo de trabalho e seria bom registrar em algum lugar em um banco de dados que uma etapa foi executada. É claro que pode haver uma tabela dentro do banco de dados para registrar isso, mas não devo alterar o esquema para a tarefa em questão.
Poderia/deveria, por exemplo, opções personalizadas (por exemplo ALTER DATABASE db SET a.b = 'c'
, ) servir a esse propósito?
É correto supor que o modo de desligamento smart
, ou seja,
pg_ctlcluster 9.6 main stop
não funcionará para servidores em espera PostgreSQL e que sempre terei que usar o modo de desligamento fast
(ou immediate
):
pg_ctlcluster 9.6 main stop -m fast
Estou assumindo isso por causa deste parágrafo em pg_ctl(1)
:
Três métodos de desligamento diferentes podem ser selecionados com a opção -m. O modo “inteligente” aguarda a desconexão de todos os clientes ativos e a conclusão de qualquer backup online. Se o servidor estiver em espera ativa, a recuperação e a replicação de streaming serão encerradas assim que todos os clientes forem desconectados. O modo “Rápido” (o padrão) não espera que os clientes se desconectem e encerrará um backup online em andamento. Todas as transações ativas são revertidas e os clientes são desconectados à força e, em seguida, o servidor é desligado. O modo “Imediato” abortará todos os processos do servidor imediatamente, sem um desligamento limpo. Isso levará a uma execução de recuperação de falhas na próxima reinicialização.
Estou hesitando um pouco, porque até agora estou acostumado a usar fast
(ou immediate
) apenas em casos de emergências relativas.
Eu configurei archive_timeout = 5
(ou seja, 5 segundos) para um banco de dados PostgreSQL 9.6 para realizar testes em torno da recuperação pontual. My archive_command
invoca cp
em um diretório de arquivo local.
Se eu verificar as datas de modificação do arquivo nesse diretório de arquivo local, vejo que os arquivos WAL são normalmente criados lá apenas aprox. a cada 20 segundos de intervalo, ou seja, muito mais do que os 5 segundos configurados. Isto é para o PostgreSQL 9.6 rodando dentro de um container Docker em um sistema levemente carregado.
O que poderia explicar essa grande discrepância?