Para fazer backup automático direto do banco de dados é necessário de encontre o comando que é dado para lhe fazer o backup pelo CMD ... Ao encontrar chamará esse comando pelo GeneXus.
Daí vem a pergunta, como colocar esse comando?
Bem, é simples o GeneXus tem um comando que se chama Shell() !!!
Dica!
Pesquise no site do postgresql, MySQL, ou qualquer outro banco de dados como fazer o backup por comando de linha, ou vá no pgadmin e faça o backup pelo modo visual que você consegue pegar o comando de linha! Então agregue esse comando dentro da função Shell()
// Exemplo Gx de Função
&ret = Shell('program.exe', [Modal])
Click no link abaixo para ver comandos MySQl.
Exemplos de comando MySQL ( Exemplo 1)
Exemplos de comando MySQL ( Exemplo 2)
Fonte: Fórum (extração)
Bate papo sobre configuração de caracteres ao fazer e restaurar o Backup
DICA PARA DUMP EM MySQL
Estou utilizando este recurso, mas quando as informações chegam ao backup,
Nas palavras com Ç ou acento chegam desconfiguradas!
Talvez seja problema no mapa de caracteres.
Tenta forçar o charset na hora de fazer o dump:
OBS: CONFIGURAÇÃO NO COMANDO DE LINHA NO QUAL É COLOCADO NO CMD, OU SEJA, O TESTE PODE SER FEITO EM CMD .. OU MELHOR EM BANCO SEPARADO !!!!
mysqldump --set-charset=latin1 --default-character-set=latin1
-> Na hora do dump ele carregou as informações desconfiguradas, mas ao restaurar apliquei a propriedade da mesma forma,E deu certo!
*********** EXEMPLO EM PostgreSQL - Fórum (bate-papo) - Consulta rápida (JAVA)
(Português)
Oi,
estão começando a trabalhar com o PostgreSQL para que nos interessava o assunto,
Eu vos envio a um programa de teste que eu fiz.
Inclui
Programa de testes PTSTPGBackup. (Linha de comando principal.) Leitura
Faça backup PPGBackup. (Main interno) Extração
Parm(&BKPath,&PGSrv,&PGPort, &PGDB,&PGUsr,&PGPwd,&ErrCod,&ErrDsc);
&ErrCod = 0
&ErrDsc = Nullvalue(&ErrDsc)
java try {
java ProcessBuilder pb;
java Process p;
/**
*
*/
java pb = new ProcessBuilder("C:\\Program Files\\PostgreSQL\\8.2\\bin\\pg dump.exe", "-i", "-h", [!&PGSrv!], "-p", [!&PGPort!],"-U", [!&PGUsr!], "-F", "c", "-b", "-v" ,"-f", [!&BKPath!], [!&PGDB!]);
java pb.environment().put("PGPASSWORD", [!&PGPwd!]);
java pb.redirectErrorStream(true);
java p = pb.start();
java } catch (Exception e) {
&ErrCod = 1
java [!&ErrDsc!] = e.getMessage();
java }
Você usa o PD PostgreSQL despejo utilitário para fazer backup de
arquivo de base.
O comando backup console tomou PostgreSQL pgAdmin III
quando faz um backup do banco de dados.
A exportação é Genexus 8 MODELO WIN e instalação do PostgreSQL é Win.
Ele foi testado nesta instalação.
Ele usa Java 5, que tem equivalente ProcessBuilder apoio a
Runtime.exec.
Variáveis
PGSrv = Nome da instância do servidor PostgreSQL
PGPORT = Porta exemplo PostgreSQL
Usuário PGUsr = conexão PostgreSQL
Usuário = Senha PGPwd
BKPath = Arquivo onde será o Backup
PGDB = Nome do BD
(Fonte: mbegerez)
mbegerez
07/15/08 03:16 PM
Hola,
estamos empezando a trabajar con PostgreSQL asi que nos interesó el tema, por lo que te envío un programa de pruebas que hice.
Incluye
PTSTPGBackup Programa de testeo. (Main de línea de comando.)
PPGBackup Realiza backup . (Main internal)
El código que hace todo el trabajo es:
Parm(&BKPath,&PGSrv,&PGPort, &PGDB,&PGUsr,&PGPwd,&ErrCod,&ErrDsc);
&ErrCod = 0
&ErrDsc = Nullvalue(&ErrDsc)
java try {
java ProcessBuilder pb;
java Process p;
/**
* Ejecucion del proceso de respaldo
*/
java pb = new ProcessBuilder("C:\\Program Files\\PostgreSQL\\8.2\\bin\\pg dump.exe", "-i", "-h", [!&PGSrv!], "-p", [!&PGPort!],"-U", [!&PGUsr!], "-F", "c", "-b", "-v" ,"-f", [!&BKPath!], [!&PGDB!]);
java pb.environment().put("PGPASSWORD", [!&PGPwd!]);
java pb.redirectErrorStream(true);
java p = pb.start();
java } catch (Exception e) {
&ErrCod = 1
java [!&ErrDsc!] = e.getMessage();
java }
Se utiliza la utilidad de PostgreSQL pd dump para realizar el backup a archivo de una base.
El comando de backup se tomó de la consola de PostgreSQL PgAdmin III cuando se hace backup de la base.
El export es Genexus 8 modelo WIN y la instalación de PostgreSQL es Win.
Se probó en esta instalación.
Se utiliza java 5 que tiene soporte de ProcessBuilder, equivalente a Runtime.exec.
Variables
PGSrv = Nombre del servidor de la instancia PostgreSQL
PGPort = Puerto de la instancia de PostgreSQL
PGUsr = Usuario de conexión a PostgreSQL
PGPwd = Password del usuario
BKPath = Archivo donde va a quedar el Backup
PGDB = Nombre de la BD
Suerte
Marcos.
0 comentários:
Postar um comentário