2013/4/29 Filho Arrais <[email protected]> > > > Em 27 de abril de 2013 09:29, Matheus de Oliveira < > [email protected]> escreveu: > >> >> >> 2013/4/26 Filho Arrais <[email protected]> >> >>> >>> Em 26 de abril de 2013 19:17, Osvaldo Kussama <[email protected] >>> > escreveu: >>> >>> Em 26/04/13, Filho Arrais<[email protected]> escreveu: >>>> > Percebi agora que gerou um erro, como o monitor não estava ajustado, a >>>> > mensagem ficou escondida (mico). >>>> > >>>> > WARNING: erros ignored on restore: 17761 >>>> > >>>> > Além das *Functions, *os *Login Rules* também não subiram no restore. >>>> > >>>> >>>> >>>> Para o caso das roles é normal. O pg_dump não trata as roles. >>>> >>>> Se necessário utilize o pg_dumpall [1] com a opção --roles-only (ou -r). >>>> >>>> >>> Tenho varias bases nesse mesmo banco, fazer o pg_dumpall seria >>> complicado, vai demorar demais, juntando as duas maiores bases, passa de >>> 100 GB. >>> >>> Teria uma parâmetro que eu podesse passar no pg_dump pra levar todos os >>> dados? >>> >>> >> >> Passando o parâmetro "-s" ao pg_dumpall ele vai gerar um dump apenas dos >> objetos globais, daí é só restaurá-lo antes de executar o pg_restore. >> >> > Fiz esse processo, porém não especifiquei o encoding. > > Cara, mil desculpas, é o "-g" que deve passar ao pg_dumpall para gerar um dump apenas dos objetos globais (roles, tablespaces, etc.).
> Demonstração do arquivo (188 usuário), coloquei o inicio e o fim do > arquivo. > > (...) > > A não ser que use o banco de dados "postgres" (realmente não devia), não há com o que se preocupar. O "pg_dumpall O ideal é você remover o banco e usar o "-C" no pg_restore para que ele "recrie" o banco igual ao anterior, evitando dores de cabeça. No postgresql.conf , contem a seguinte configuração. ( ambas as máquinas > estão com os arquivos de configurações idênticos). > > client_encoding = LATIN1 > > > Quando conecto via PgAdmin, a informação da base é essa [1]. > > Pode o postgresql.conf ta com client_encoding = LATIN1 e minha base com > UTF8? > > Quando fiz o dump da base de dados, especifiquei o encoding. > > pg_dump –U postgres –Fc –v –f nome_do_backup.dump nomedobanco –E UTF8 > > > O client_encodinng é o encoding usado na conexão (como o cliente verá os dados), já o encoding do banco é como os dados serão armazenados. Se você deixar client_encoding=latin1, tudo bem, desde que seja o que sua aplicação espera. Eu, particularmente, recomendo você deixar como no ambiente anterior, já que é uma aplicação de terceiros (certo?). > Poderiam me dizer como exporta as schemas (estrutura das tabelas, login > roles, etc) e depois só dos dados ? Isso é viável? Tem como exportar tudo > de uma vez? Qual o procedimento correto? > > Também, como restaurar essas informações em uma nova máquina, levando em > consideração que o postgres está recém instalado. > > Como eu disse, não é viável exportar um-a-um, pois o pg_restore já faz uma otimização bem bacana quando exporta tudo de uma vez (de fato ele faz: 1. schemas das tabelas sem constraints e índices; 2. dados; 3. índices e constraints). Então, no geral seria o seguinte (ajuste os parâmetros de conexão): Na máquina antiga, gere os dumps: 1. global: pg_dumpall -g -f global.sql 2. do banco: pg_dump -Fc <banco> -f <banco>.dump Na nova máquina, restaure: 1. global: psql -f global.sql 2. banco (não o crie antes): pg_restore -C -j <num cores> -d postgres -f <banco>.dump Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
