Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Fazendo backup de databases MYSQL em ambiente LINUX

Colaboração: Marcelo Garcia

Data de Publicação: 05 de Fevereiro de 2005

Este é um assunto sempre em pauta - "Backup". Hoje vamos abordar uma maneira de fazer backup de bases Mysql, que estão muito em moda. Este é um assunto do tipo "existem 1000 maneiras de fazer neston". Bom inventei a minha ! O que vamos precisar para executar esta dica em casa :

  • utilitario MYSQLDUMP, que é instalado junto com o Mysql - A função básica dele é o de ser um facilitador para migrações de dados entre bancos diferentes. Como ele funciona em linha de comando é perfeito para ser usado como ferramenta de backup;

  • bash - que ja temos familiaridade ;

  • botão direito do mouse - para voce copiar o script e colar no seu servidor. Vamos ter um site com os scripts para downloads, quem estiver disposto a ajudar as dicas-m oferencendo um site para hospedagem gratuita, seja bem-vindo !

    Minha ideia é simples. Montei um script em Bash, usando o Mysqldump. Coloquei ele no cron, e exporto diariamente os DADOS & ESTRUTURAS DE DADOS dos bancos que administro. Voce pode roda-lo a cada 1h por exemplo, cada um adapte a sua necessidade. O script é simples e muito funcional. Exige como parametro ao menos o nome do database. O resto voce pode configurar como default. Sitaxe básica :

      ./mybackup.sh <database>
    

    podemos ainda passar os seguintes parametros (OPCIONAIS)

      ./mybackup.sh <database> [user] [password] [host]
    

    Abaixo anatomia do script. É um ótimo exemplo de tudo o que ja vimos aqui a nível de bash. Esta bem comentado, perca um tempinho analisando o script.

      #!/bin/bash
      # Exporta dados de uma base mysql para um txt
      # By Marcelo Garcia 06/11/2004
      
      if [ $# -lt "1" ] ; then                 # Teste se tem ao menos 1  parametro - database
       echo -e "\nSyntaxe : ./mybackup.sh database [user] [password] [host] \n"
       exit 1                                 # exibo sintaxe e saio com codigo de erro
      fi
      
      # Atribuo parametros para variaveis
      database=$1
      user=$2
      passwd=$3
      host=$4
      # Verifico as variaveis (parametros) opcionais e atribuo o default caso vazio
      let ${passwd:="backup"}
      let ${user:="backup"}
      let ${host:="localhost"}
      
      backup_file="$database``date +%d-%m-%Y``.BKP"  #Agrego a data ao nome do banco para
      
      #Exceta a exportacao de dados
      mysqldump --host=$host --user=$user --password=$passwd --databases $database > $backup_file
    

    O resultado gerado é bem completo, e extremamente UTIL para um RESTORE completo da base. Ele cria o DATABASE, as TABELAS e or fim INSERE os dados do ultimo backup. Voce so vai ter que roda-lo no seu mysql em caso de pane.

    Estas base foi um teste que criei para auxiliar um colega da lista de php. Aproveitei aqui para exporta-la como exemplo. A sintaxe que eu usei foi:

      ./mybackup.sh test
    

      -- MySQL dump 10.2
      --
      -- Host: localhost    Database: test
      ---------------------------------------------------------
      -- Server version 4.1.0-alpha-standard
      
      --
      -- Current Database: test
      --
      
      CREATE DATABASE /*!32312 IF NOT EXISTS*/ test;
      
      USE test;
      
      --
      -- Table structure for table 'fornecedores'
      --
      
      DROP TABLE IF EXISTS fornecedores;
      CREATE TABLE fornecedores (
       id_fornec int(2) NOT NULL auto_increment,
       nomefornec varchar(15) default NULL,
       PRIMARY KEY  (id_fornec)
      ) TYPE=MyISAM CHARSET=latin1;
      
      --
      -- Dumping data for table 'fornecedores'
      --
      
      /*!40000 ALTER TABLE fornecedores DISABLE KEYS */;
      LOCK TABLES fornecedores WRITE;
      INSERT INTO fornecedores VALUES (1,'AMD'),(2,'Intel');
      UNLOCK TABLES;
      /*!40000 ALTER TABLE fornecedores ENABLE KEYS */;
      
      --
      -- Table structure for table 'produtos'
      --
      
      DROP TABLE IF EXISTS produtos;
      CREATE TABLE produtos (
       id_product int(2) NOT NULL auto_increment,
       id_fornec int(2) NOT NULL default '0',
       produto varchar(15) default NULL,
       PRIMARY KEY  (id_product)
      ) TYPE=MyISAM CHARSET=latin1;
      
      --
      -- Dumping data for table 'produtos'
      --
      
      /*!40000 ALTER TABLE produtos DISABLE KEYS */;
      LOCK TABLES produtos WRITE;
      INSERT INTO produtos VALUES (1,1,'Duron 1.6'),(2,1,'Duron 1.8'),(3,1,'Athlon 1.8'),(4,1,'Athlon 2000+'),(5,1,'Athlon 2400+'),(6,2,'Pentium IV 2.2'),(7,2,'Pentium IV 2.4'),(8,2,'Pentium IV 2.6'),(9,2,'Celeron');
      UNLOCK TABLES;
      /*!40000 ALTER TABLE produtos ENABLE KEYS */;./mybackup.sh test
    

Veja a relação completa dos artigos de Marcelo Garcia

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.00/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1466 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis