Algumas vezes precisamos limpar um conjunto de caracteres para ficarmos somente com o que interessa, ou, trocar um caracter por outro correspondente. Um exemplo disto, e o CNPJ ou CPF, onde, dependendo de onde se pega a informacao, vem com os caracteres '/'(barra), '.'(ponto) e ou '-'(hifen).Exemplo1: Trocar na ordem os pontos e hifens por nullSelect translate('999.999.999-72', '.-',''); Aqui eu mando pegar o numero e tirar os pontos e hifens caso tenha.Exemplo2: Trocar na ordem os pontos por sinal de + e hifens por *Select translate('999.999.999-72', '.-','+*'); Aqui eu mando pegar o numero e tirar os pontos e hifens caso tenha.Decompondo o comandoNome: TranslateParametro1: Conjunto de caracteres a serem analisadosParametro2: Caracteres dos quais substituiram na mesma ordem. O comando translate utilizado acima, e do postgresql, por sua vez, e possivel que tenham em linguagens de programacao ou banco de dados o mesmo nome com a mesma funcao. Uma informacao interessante e relevante sobre atualizacao de sistemas operacionais. Nao facam se nao souberem fazer! Isto e claro, se o suporte tecnico ja nao deixou configurado para fazer sempre.Foi bem isto que aconteceu com um dos nossos clientes, ele tem um servidor windows server 2008, onde, ontem pela madrugada, se atualizou e mexeu na memoria compartilhada do sistema operacional. Com o postgresql, usa parte desta memoria, ao tentar startar seu servico nao conseguiu. Bom, deixei o arquivos postgresql.conf original no lugar do que alteramos. Isto fez voltar o banco, mas nao ficou com a nossa configuracao.Eu ainda nao achei o lugar no windows para corrigir este problema. Assim que encontrar posto aqui. Gente, novamente venho a contribuir um pouquinho, com algum pouco conhecimento que tenho sobre Linux e PostgreSQL. Neste script(Linux), do qual dou o nome de "backup.postgres.sh", faco o backup do banco pg, levando em conta:1o A existencia da pasta para receber o arquivo(mkdir -p);2o Uma analise, e ao mesmo tempo, a exclusao dos arquivos a mais de 3 dias(find);3o O backup propriamente dito(pg_dump);4o Por final, o vacuum para limpar e organizar e com isto agilizar o banco para o dia seguinte(vacuum).#Scritp responsavel pela copia do banco de dados PostgreSQL#Autor: Marcos Andre G.A#Data1: 02/04/2012#1o Mensagem que mostra na tela a data e hora de inicio do backup.DATA=`date +%Y%m%d`HORA=`date +%H%M`echo "+++ ."echo "+++ Data/Hora do inicio da copia. "$DATA $HORAecho "+++ ."#2o Criando, caso nao exista, "mkdir -p" a pasta para receber o banco.mkdir -p /opt/backups/base_de_dados/#3o Procedimento de limpeza dos backups com data a mais de 3 dias.echo "+++ Executando limpeza das copias dos bancos de dados a mais de 3 dias"find /opt/backups/base_de_dados/ -name 'Trabin*' -ctime +3 -exec rm -fv {} \;#4o Procedimento que gera copia do bando de dados.echo "+++ Gerando copia do banco. Aguarde..."pg_dump -Fc -Z9 -U postgres -h localhost -f /opt/backups/base_de_dados//Nome_do_Banco_$DATA$HORA.bkp "Nome_do_Banco"echo "+++ Nome_do_Banco copiado!"#5o Neste ponto, gero um vacuum. Abaixo, a lista dos parametros possiveis.echo " "echo "+++ Gerando o vacuum do banco, Aguarde..."#-a : passa em todos bancos de dados;#-d base : para escolher o banco de dados;#-f : vacuum full;#-z - vacuum analyze;#-v : verbose;#-h : servidor remoto postgres;#-U : login do usuarioo do banco.vacuumdb -d "Nome_do_Banco" -U