Muito Obriagdo. Funcionou.
De: pgbr-geral [mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de Matheus de Oliveira Enviada em: terça-feira, 25 de agosto de 2015 09:17 Para: Comunidade PostgreSQL Brasileira Assunto: Re: [pgbr-geral] Matar Usuario Postgresql 8l.2 2015-08-24 18:10 GMT-03:00 Agape World Informática Ltda <ag...@agapeworld.com.br>: Como faço para parar todos os usuarios do banco postgresql 8.2 Em 2015 e você usando a versão 8.2? Tem gente que gosta de sofrer mesmo... xP Não estou achando. Tenho que fazer o seguinte. - drop no banco. - create - restaurar o banco. Ah... Mais uma coisa que esqueci de mencionar e vou deixar aqui como referência. O que passamos aqui vai funcionar para a grande maioria dos casos, mas tem uma situação bem específica (e bem chata) onde um usuário pode conectar entre o kill e o DROP DATABASE. Mesmo renomeando a base isso pode acontecer em versões mais recentes por causa do autovacuum. Uma forma de se resolver isso é desabilitar a possibilidade de conexão na base fazendo um UPDATE na pg_database: UPDATE pg_database SET datallowconn = false WHERE datname = 'nome_da_base'; -- Fazer o `kill -TERM <pid>` DROP DATABASE nome_da_base; ... faz o CREATE e a restauração aqui ... Quanto à parte do kill manual na 8.2, você pode fazer via shell: $ psql -c "UPDATE pg_database SET datallowconn = false WHERE datname = 'nome_da_base';" $ psql -AXtqc "SELECT procpid FROM pg_stat_activity WHERE datname = 'nome_da_base';" | xargs kill -TERM ATENÇÃO: em geral não é recomendado fazer atualização em tabelas de catálogo, mas sabe-se que as colunas datallowcon e datistemplate da pg_database são seguras de atualizar, tanto que na versão 9.5 criou-se as opções ALLOW_CONNECTIONS e IS_TEMPLATE no comando ALTER DATABASE para fazer essa operação, assim, na 9.5, ficaria: ALTER DATABASE nome_da_base WITH ALLOW_CONNECTIONS=false; SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'nome_da_base'; DROP DATABASE nome_da_base; Atenciosamente, -- Matheus de Oliveira --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral