Copia de seguridad programada de MySQL en el entorno de producción

Utilice la función de tarea de sincronización crontab propia de Linux para ejecutar scripts que respaldan la base de datos con regularidad

Lista de funciones de implementación

  • Apoyo
  • Copia de seguridad programada
  • Comprimir el archivo de respaldo
  • Eliminar archivos de respaldo caducados
  • Restaurar archivos de respaldo

Volcado de copia de seguridad de datos

La base de datos tiene un comando para exportar los datos y la estructura en la base de datos, que es una copia de seguridad.
La restauración de los datos respaldados eliminará la tabla de los datos originales y la reconstruirá, y luego insertará los datos en la copia de respaldo.
Este punto debe tenerse en cuenta: si hay más datos antes de la restauración que la copia de seguridad, no habrá más datos después de la restauración.

Copia de seguridad y mysqldump -h -u [用户名] -p [库名] > [导出的.sql 文件]
restauración mysql -u [用户名] -p [库名] < [导出的.sql 文件]

script de shell

Para completar un programa de respaldo completamente funcional, se necesitan scripts de shell.
Queremos que se haga una copia de seguridad de este script en la ruta especificada y se comprima y almacene, hasta 30, más de 30 elimine el más antiguo y registre el registro de operaciones.
No se dice nada, las palabras están en el guión, ¡hazlo!

#用户名
username=root
#密码
password=nicai
#将要备份的数据库
database_name=l_love_you

#保存备份文件最多个数
count=30
#备份保存路径
backup_path=/app/mysql_backup
#日期
date_time=`date +%Y-%m-%d-%H-%M`

#如果文件夹不存在则创建
if [ ! -d $backup_path ]; 
then     
    mkdir -p $backup_path; 
fi
#开始备份
mysqldump -u $username -p$password $database_name > $backup_path/$database_name-$date_time.sql
#开始压缩
cd $backup_path
tar -zcvf $database_name-$date_time.tar.gz $database_name-$date_time.sql
#删除源文件
rm -rf $backup_path/$database_name-$date_time.sql
#更新备份日志
echo "create $backup_path/$database_name-$date_time.tar.gz" >> $backup_path/dump.log

#找出需要删除的备份
delfile=`ls -l -crt  $backup_path/*.tar.gz | awk '{print $9 }' | head -1`

#判断现在的备份数量是否大于阈值
number=`ls -l -crt  $backup_path/*.tar.gz | awk '{print $9 }' | wc -l`

if [ $number -gt $count ]
then
  #删除最早生成的备份,只保留count数量的备份
  rm $delfile
  #更新删除文件日志
  echo "delete $delfile" >> $backup_path/dump.log
fi

Como el nombre sugiere al script, desde un hermoso nombre dump_mysql.sh
hasta el script con permiso de ejecución chmod +x dump_mysql.sh, después de ejecutar el archivo de script hay un
método de ejecución verde viable : ./ más el nombre del script

chmod命令参数含义--
+ 代表添加某些权限
x 代表可执行权限

Crontab

Crontab es una función de tarea cronometrada que viene con Linux y podemos usarla para ejecutar un dump_mysql.shscript cada mañana .

Uso de Crontab:
  • crontab -l Ver la lista de tareas programadas
  • crontab -e editar (agregar / eliminar) tareas de tiempo

Ejecute el comando crontab -e para abrir un texto editable, ingrese la 00 01 * * * /app/dump_mysql.sh
preservación y salga para completar la adición.

Explicación del contenido:

00 01 * * * /app/dump_mysql.shMírelo en dos partes: la
primera parte 00 01 * * *es el período de la tarea cronometrada y la segunda parte es /app/dump_mysql.shel momento de hacer las cosas.
La expresión de período consta de cinco marcadores de posición, que representan: minuto, hora, día, mes, semana

Los marcadores de posición se utilizan para *indicar que se utilizan en el primer dígito cada minuto, el segundo dígito es cada hora, etc. Los
marcadores de posición se utilizan para 具体数字indicar 具体时间que 10 se utiliza en el primer dígito para significar 10 puntos, y cuando se utiliza en el tercer dígito, significa 10. tales
marcadores de posición de empuje -representan 区间, por 5-7 en los primeros 5 se asigna a siete puntos con un quinto lugar en la semana representa 5 al domingo, y así sucesivamente los
marcadores de posición /representan 间隔, 5-10 / 2 con En primer lugar, es de 5 minutos a 10 minutos, y el intervalo es de 2 minutos. En segundo lugar, se usa para indicar el intervalo de 2 horas de 5 a 10, y así sucesivamente.
Se usan marcadores de posición para ,indicar 列表. 5,10 en primer lugar es de 5 minutos y 10 puntos, usados ​​en el cuarto lugar para indicar mayo y octubre, y así sucesivamente

Se mejorará y optimizará más adelante.
Referencia:
https://segmentfault.com/a/1190000023285648

Supongo que te gusta

Origin blog.csdn.net/abu935009066/article/details/112334195
Recomendado
Clasificación