Upload
amanda-nunes-portela
View
75
Download
0
Embed Size (px)
Citation preview
Backup para Mysql
Criando rotinas utilizando a tasks do Windows e Cron do Linux
Amanda Portela Graduada em Sistemas de Informação
Administradora de Banco de Dados
Trabalha na UOLDIVEO
Ja foi analista de Backup
Backup Mysql Criando Rotina de Backup - Windows Criando Rotina de Backup - Linux Restaurar
BACKUP Formas Tipos
Formas de backup existente: FITA
Tabe LibraryTabe Library
Fita LTO
Formas de backup existente: DISCO
Disk
Storage
Backup Full x Backup Incremental
TIPOS DE BACKUP
A retenção é o tempo que o dado ficará disponível para acesso/restore.
Quando o tempo aplicado expira, o dado é descartado.
RETENÇÃO
MYSQL1. Sobre o Mysql
2. Mysqldump
Sistema Gerenciador de Banco de Dados
Relacional
Tabelas: Linhas e Colunas
Linguagem SQL
Atualmente Versao 5.7
Mysql
Mysqldump
É um utilitário do mytilizado para copiar os bancos de dados dos SGBDs para arquivo de
texto.Pode exportar uma tabela ou mais, um banco de dados ou todos os bancos de dados do servidor.
Criando Rotina de Backup para o Mysql
1. Windows• Criando Script• Agendador de Tarefas (Tasks)• Configurando Rotina de Backup
Script de backup: backup_diario.cmd@echo off set dbUser=root set dbPassword=sql!@# set backupDir="D:\mysql_daily_backups" set mysqldump="C:\Program Files\MySQL\MySQL Workbench 6.3 CE\mysqldump.exe" set mysqlDataDir="C:\ProgramData\MySQL\MySQL Server 5.7\Data" set mysql="C:\Program Files\MySQL\MySQL Server 5.7\bin"
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set dt=%%c%%a-%%b)For /f "tokens=1-4 delims=:." %%a in ('echo %time%') do (set tm=%%a%%b%)set dirName="%1 %dt% %tm%"
pushd %mysqlDataDir%
for /d %%f in (*) do (
if not exist %backupDir%\%dirName%\ ( mkdir %backupDir%\%dirName% )
%mysqldump% -opt -u%dbUser% -p%dbPassword% --databases %%f > %backupDir%\%dirName%\%%f.txt )
forfiles -p "%backupDir%" /s /m *.* -d -3 -c "cmd /c del @path"popd
AGENDADOR DE TAREFAS
CONFIGURANDO ROTINA DE BACKUP
CONFIGURANDO ROTINA DE BACKUP
CONFIGURANDO ROTINA DE BACKUP
CONFIGURANDO ROTINA DE BACKUP
CONFIGURANDO ROTINA DE BACKUP
Criando Rotina de Backup para o Mysql
1. LINUX• Criando Script• Comandos Úteis• Crontab• Configurando Rotina de Backup
root@debian:/home/anunes/backup# mysql -uroot -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 175Server version: 5.5.52-0+deb8u1 (Debian)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;+--------------------------------+| Database |+--------------------------------+| information_schema || anunes || mysql || performance_schema || teste |+-------------------------------+5 rows in set (0.00 sec)
Script de backup: backup_semanal.sh#!/bin/sh
TIMESTAMP=$(date +"%F-%H-%M")BACKUP_DIR="/home/anunes/backup"MYSQL_USER="root"MYSQL=/usr/bin/mysqlMYSQL_PASSWORD="sql!@#"MYSQLDUMP=/usr/bin/mysqldumpRETENTION="+2"LOG="/home/anunes/backup/$TIMESTAMP.log"LOG_DLT="/home/anunes/backup/$TIMESTAMP_deleted.log"
mkdir -p "$BACKUP_DIR/$TIMESTAMP"
databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
for db in $databases; do $MYSQLDUMP --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db > "$BACKUP_DIR/$TIMESTAMP/$db.dmp"
sed -n '3p' $BACKUP_DIR/$TIMESTAMP/$db.dmp >> $LOGtail -1 $BACKUP_DIR/$TIMESTAMP/$db.dmp >> $LOGecho "==================================" >> $LOG
done
find $BACKUP_DIR* -mtime $RETENTION -exec rm -rf {} /; >> $LOG_DLT
• mkdir = Permite criar diretório• > = Permite criar arquivo ex.: > arquivo.sh• >> = Insere uma linha no arquivo• vi /etc/crontab ou crontab -e = permite editar a crontab• crontab -l = Lista o que está configurado na crontab• esc + i = Permite inserir informaçoes ao arquivo - VI• :q! = Permite sair do arquivo sem salvar - VI• :wq! = Permite sair do arquivo e salvar as informações escritas - VI• chmod - Altera permissão de arquivo/diretório
COMANDOS ÚTEIS DO LINUX
CRONTABCrontab é a tabela (arquivo) que contém as tarefas agendadas.Este arquivo é consultado pelo serviço CRON do sistema operacional, para iniciar as tarefas conforme agendamento
root@debian:/home/anunes/backup# crontab -l
55 23 * * 0 /home/anunes/backup_semanal.sh07 22 * * 1-6 /home/anunes/backup_diario.sh
root@debian:/home/anunes/backup# ls -ltrdrwxr-xr-x 2 root root 4096 Oct 3 22:08 2016-10-03-22-08-rw-r--r-- 1 root root 415 Oct 3 22:08 2016-10-03-22-08.log
root@debian:/home/anunes/backup# cat 2016-10-03-22-07.log-- Host: localhost Database: anunes-- Dump completed on 2016-10-03 22:07:01==========================================================-- Host: localhost Database: mysql-- Dump completed on 2016-10-03 22:07:01==========================================================-- Host: localhost Database: teste-- Dump completed on 2016-10-03 22:07:01==========================================================
root@debian:/home/anunes/backup# cd 2016-10-03-22-08root@debian:/home/anunes/backup/2016-10-03-22-08# ls -ltrtotal 548-rw-r--r-- 1 root root 1412 Oct 3 22:08 anunes.dmp-rw-r--r-- 1 root root 550963 Oct 3 22:08 mysql.dmp-rw-r--r-- 1 root root 1408 Oct 3 22:08 teste.dmp
RESTAURAR
mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.dmp]
mysql -uroot -p teste < D:\mysql_daily_backups\10-2016 1900\teste.txt
mysql -uroot -p teste < /home/anunes/backup/2016-10-03-22-08/teste.dmp
*Para o import é mysql mesmo pessoal, desculpe a confusão*
TEM BACKUP!!!
REFERÊNCIAS
Mysqldump• http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
Mysql Download• http://www.mysql.com/downloads/
Linux• https://www.vivaolinux.com.br/
Windows Commands• http://www.computerhope.com/sethlp.htm
backup_mysql_linux.sh.txt
backup_mysql_windows.cmd.txt
ANEXOS
CONTATO Email
LinkedIn• https://br.linkedin.com/in/amandanportela
Pagina .NetCoders - Facebook• https://www.facebook.com/DotNetCoders/
MeetUp .NetCoders• http://www.meetup.com/pt-BR/NetCoders/
Apresentação disponível em: http://pt.slideshare.net/AmandaNunesPortela