当前位置:网站首页>MySQL data (Linux Environment) scheduled backup

MySQL data (Linux Environment) scheduled backup

2022-06-24 09:00:00 Q z1997

One . mysqldump Command backup data

#MySQLdump Commonly used 
mysqldump -u root -p --databases  database 1  database 2 > xxx.sql

Two . mysqldump Common operation examples

Back up the data and structure of all databases

mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql

Back up the structure of all databases ( Add -d Parameters )

mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql

Back up all database data ( Add -t Parameters )

mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql

Back up the data and structure of a single database (, Database name mydb)

mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql

Backing up the structure of a single database

mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql

Backing up data from a single database

mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql

Backing up data and structure of multiple tables ( data , The separate backup method of the structure is the same as above )

mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql

Backing up multiple databases at a time

mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql

3、 ... and . Restore MySQL Backup content

mysql -uroot -p123456 < /data/mysqlDump/mydb.sql

Four . Use scripts + cron Scheduled backup

Preparation script mysql_backup_script.sh

#!/bin/bash

# Save the number of backup , Backup 31 Day data 
number=31
# Backup save path 
backup_dir=/usr/local/mysql/dupm
# date 
dd=`date +%Y-%m-%d-%H-%M-%S`
# Backup tools   own mysql Installation path 
tool=/usr/local/mysql/bin/mysqldump
# user name 
username=root
# password 
password=root0101
# The database to be backed up 
database_name=test

# If the folder does not exist, create 
if [ ! -d $backup_dir ];
then
    mkdir -p $backup_dir;
fi

echo "$tool -u$username -p$password $database_name > $backup_dir/$database_name-$dd.sql" >> $backup_dir/log.txt
# Simple writing  mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
$tool -u$username -p$password $database_name > $backup_dir/$database_name-$dd.sql

# Write create backup log 
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt

# Find the backup that needs to be deleted 
delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1` # Determine whether the current number of backups is greater than $number count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l` if [ $count -gt $number ] then # Delete the earliest generated backup , Only keep number Number of backups  rm $delfile # Write delete file log  echo "delete $delfile" >> $backup_dir/log.txt fi 

To write cron Script mysqlRollback.cron

*/1 * * * * /usr/local/mysql/sh/mysql_dump_script.sh
crontab mysqlRollback.cron

Execution effect :

 Insert picture description here

原网站

版权声明
本文为[Q z1997]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/175/202206240625360450.html