逻辑备份一般用于数据迁移或者数据量很小时,采用数据导出的方法。
一、备份过程
1、导出所有的数据库
mysqldump -uroot -p -q --single-transaction -A > all.sql
2、导出其中的test库
mysqldump -uroot -p -q --single-transaction test >test.sql
3、导出其中的test库的个别表
mysqldump -uroot -p -q --single-transaction test table1 table2 >test_table1_table2.sql
二、恢复过程
mysql -uroot -p <all.sql 或者登陆到mysql命令行,执行 source all.sql
三、逻辑备份全量,增量备份脚本
全量备份:
-
#!/bin/bash
-
#MySQL全量备份脚本
-
cd /backup
-
dateDIR=`date +"%y-%m-%d"`
-
mkdir -p $dateDIR/data
-
path=/mysql/data
-
for i in `mysql -uroot -pmysql -e "show databases"|grep -v "Database"`
-
do
-
mysqldump -uroot -pmysql --default-character-set=utf8 -q --lock-all-tables --flush-logs -R -E --triggers -B $i |gzip > /backup/$dateDIR/data/${i}_${dateDIR}.sql.gz
-
done
-
-
binlog_rm=`tail -n 1 $path/mysql-bin-3306.index | awk -F"/" '{print $4}'`
-
mysql -uroot -pmysql -e "purge binary logs to '$binlog_rm'"
增量备份:
-
#!/bin/bash
-
#MySQL全量备份脚本
-
cd /backup
-
dateDIR=`date +"%y-%m-%d"`
-
mkdir -p $dateDIR/data
-
path=/mysql/data
-
mysqladmin -uroot -pmysql flush-logs
-
binlog_cp=`head -n -1 $path/mysql-bin-3306.index | awk -F"/" '{print $4}'`
-
-
for i in $binlog_cp
-
do
-
mysql -uroot -pmysql -e "system cp -p $path/$i /backup/$dateDIR/data;"
-
done
-
-
binlog_rm=`tail -n 1 $path/mysql-bin-3306.index | awk -F"/" '{print $4}'`
-
mysql -uroot -pmysql -e "purge binary logs to '$binlog_rm'"
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30135314/viewspace-2145211/
,如需转载,请注明出处,否则将追究法律责任。