quarta-feira, 10 de junho de 2015

POSTGRES - Quais os bancos que ocupam mais espaço em disco?

 
SELECT d.datname AS Name,  pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
        ELSE 'No Access'
    END AS Size
FROM pg_catalog.pg_database d
    ORDER BY
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(d.datname)
        ELSE NULL
    END DESC -- nulls first
    LIMIT 20
 
 
Fonte: https://wiki.postgresql.org/wiki/Disk_Usage 

POSTGRES - Quais os SQLs que estão demorando mais tempo para serem executados neste momento?


SELECT datname, usename, now()-query_start as tempo_execucao, waiting, client_addr, current_query FROM pg_stat_activity WHERE current_query <> ''order by 3 desc;


Versões de Postgres 9:
SELECT datname, usename, now()-query_start as tempo_execucao, waiting, client_addr, query FROM pg_stat_activity WHERE query <> ''order by 3 desc;

sexta-feira, 23 de janeiro de 2015

Como gerar os comandos GRANT de SELECT para Postgres anterior ao 9

1. Conectar no banco de dados

2. Executar: GRANT CONNECT ON DATABASE "nomeDoBanco" TO nomeDaRole;

3. Executar: GRANT USAGE ON SCHEMA public TO nomeDaRole;

4. Executar o comando ALTER DEFAULT PRIVILEGES IN SCHEMA public
   GRANT SELECT ON TABLES TO nomeDaRole;

5. Executar: GRANT SELECT ON ALL TABLES IN SCHEMA public TO nomeDaRole;


6. Se o PostgreSQL for anterior a versão 9 executar os comandos gerados por:


SELECT 'GRANT SELECT ON ' || relname || ' TO nomeDaRole;'
FROM pg_class JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
WHERE nspname = 'public' AND relkind IN ('r', 'v', 'S');


Fonte: http://stackoverflow.com/questions/760210/how-do-you-create-a-read-only-user-in-postgresql

segunda-feira, 8 de setembro de 2014

Repositório de RPMs do PostgreSQL 9.3.5 !

Como instalar o PostgreSQL 9.3 no Red Hat?!?

Siga os passos abaixo!

Repositório do PostgreSQL para o YUM do Red Hat !

http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/

Para instalar o PostgreSQL 9.3.5, por exemplo:

yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/postgresql93-9.3.5-1PGDG.rhel6.x86_64.rpm

yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/postgresql93-server-9.3.5-1PGDG.rhel6.x86_64.rpm

yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/postgresql93-server-9.3.5-1PGDG.rhel6.x86_64.rpm



terça-feira, 26 de agosto de 2014

Configurando o Proxy para o WGET

Editar as linhas abaixo no arquivo /etc/wgetrc

# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
https_proxy = http://usuario:senha@proxy.com:porta/
http_proxy = http://usuario:senha@proxy.com:porta/
ftp_proxy = http://usuario:senha@proxy.com:porta/

# If you do not want to use proxy at all, set this to off.
use_proxy = on

Solução para os problemas na instalação do PostgreSQL 9.3 no RedHat EL 6

 O PROBLEMA:

yum install postgresql93
...
Error: Package: postgresql93-9.3.5-1PGDG.rhel6.x86_64 (pgdg93)
           Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: postgresql93-server-9.3.5-1PGDG.rhel6.x86_64 (pgdg93)
           Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: postgresql93-libs-9.3.5-1PGDG.rhel6.x86_64 (pgdg93)
           Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: postgresql93-server-9.3.5-1PGDG.rhel6.x86_64 (pgdg93)
           Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: postgresql93-libs-9.3.5-1PGDG.rhel6.x86_64 (pgdg93)
           Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest



A SOLUCAO:

Baixei uma versão mais nova do OpenSSL

wget http://mirror.centos.org/centos/6/updates/x86_64/Packages/openssl-1.0.1e-16.el6_5.x86_64.rpm

Removi o openssl instalado usando o parâmetro --nodeps para evitar verificações de dependências.
rpm -e --nodeps openssl


E instalei o OpenSSL mais novo que foi baixado.
rpm -ivh openssl-1.0.1e-16.el6_5.x86_64.rpm

segunda-feira, 16 de junho de 2014

Shell command FIND + CUT + REV - Como recuperar o último campo usando o comando CUT !

O comando CUT possui argumentos como o -d (delemitador) e o -f que indica qual campo recuperar.

Por exemplo

/pasta/arquivo1.ini
/pasta/pasta2/arquivo2.ini

Para recuperar apenas os nomes dos arquivos teríamos que indicar o delimitador "/" e o número do campo no comando  CUT. Porém o número do campo iria varia pois no primeiro exemplo seria 2 e no segundo seria 3.

Como então recuperar o último campo?

Segue o comando:

find / -iname *.ini | rev | cut -d/ -f1 | rev

Recomando testarem da seguinte forma para entender o que o comando REV faz...

find / -iname *.ini | rev

find / -iname *.ini | rev | cut -d/ -f1

find / -iname *.ini | rev | cut -d/ -f1 | rev

Como eu queria apenas saber que nomes de arquivos .ini eu teria ainda adicionei um sort -u ao final  para trazer apenas nomes de arquivos distintos!

find / -iname *.ini | rev | cut -d/ -f1 | rev | sort -u

=)