在my.cnf文件中添加
[mysqldump]
user=system
password=123456
[client]
user=system
password=123456
库级备份
[mysql@mysql1 scripts]$ more /data/mysqldata/scripts/mysql_full_backup.sh
#!/bin/bash
#create by allen
source /data/mysqldata/scripts/mysql_env.ini
DATA_PATH=/data/mysqldata/backup/mysql_full
DATA_FILE=${DATA_PATH}/dbfullbak_`date +%F`.sql.gz
LOG_FILE=${DATA_PATH}/dbfullbak_`date +%F`.log
MYSQL_PATH=/usr/local/mysql/bin
MYSQL_DUMP="${MYSQL_PATH}/mysqldump -S /data/mysqldata/${HOST_PORT}/mysql.sock -A -R -x --default-character-set=utf8"
#A导出所有数据库,R导出存储过程、函数等定义好的MySQL程序,x在导出任务执行期间锁定所有表
echo > ${LOG_FILE}
echo -e "=== Jobs started at `date +%F' '%T' '%w` ===\n" >> ${LOG_FILE}
echo -e "*** Executed command:${MYSQL_DUMP} | gzip > ${DATA_FILE}" >> ${LOG_FILE}
${MYSQL_DUMP} | gzip > ${DATA_FILE}
echo -e "*** Executed finished at `date +%F' '%T' '%w` ===" >> ${LOG_FILE}
echo -e "*** Backup file size:`du -sh ${DATA_FILE}` ===\n" >> ${LOG_FILE}
echo -e "--- Find expired backup and delete those files ---" >> ${LOG_FILE}
for tfile in $(/usr/bin/find $DATA_PATH -mtime +6)
do
if [ -d $tfile ] ; then
rmdir $tfile
elif [ -f $tfile ] ; then
rm -f $tfile
fi
echo -e "--- Delete file:$tfile ---" >> ${LOG_FILE}
done
echo -e "\n=== Jobs ended at `date +%F' '%T' '%w` ===\n" >> ${LOG_FILE}
分表备份
备份时,直接按表为单位进行备份
[mysql@mysql1 scripts]$ more mysql_full_backup_by_table.sh
#!/bin/bash
#create by allen
source /data/mysqldata/scripts/mysql_env.ini
DATA_PATH=/data/mysqldata/backup/mysql_full_bytables
DATA_FILE=${DATA_PATH}/dbfullbak_by_tables_`date +%F`.sql.gz
LOG_FILE=${DATA_PATH}/dbfullbak_by_tables_`date +%F`.log
MYSQL_PATH=/usr/local/mysql/bin
MYSQL_CMD="${MYSQL_PATH}/mysql -u${MYSQL_USER} -p${MYSQL_PASS} -S /data/mysqldata/${HOST_PORT}/mysql.sock"
MYSQL_DUMP="${MYSQL_PATH}/mysqldump -S /data/mysqldata/${HOST_PORT}/mysql.sock --single-transaction -l"
# single-transaction -l对于支持多版本的存储引擎InnoDB,在导出时会建立一致性的快照
echo > ${LOG_FILE}
echo -e "=== Jobs started at `date +%F' '%T' '%w` ===\n" >> ${LOG_FILE}
for dbs in `${MYSQL_CMD} -e "show databases" | sed '1d' | egrep -v "information_schema|mysql|performance_schema"`
do
mkdir -p ${DATA_PATH}/${dbs}
echo -e "*** Database:${dbs} Backup Start_Time:`date +%F' '%T' '%w` ***\n" >> ${LOG_FILE}
for tbls in `${MYSQL_CMD} -D ${dbs} -e "show tables" | sed '1d'`
do
echo -e " ### Begin ${dbs}.${tbls} Dump! Start_Time:`date +%F' '%T`" >> ${LOG_FILE}
echo -e " Execute Command:${MYSQL_DUMP} --tables ${dbs} ${tbls} | gzip > ${DATA_PATH}/${dbs}/${db
s}_${tbls}.sql.gz" >> ${LOG_FILE}
${MYSQL_DUMP} --tables ${dbs} ${tbls} | gzip > ${DATA_PATH}/${dbs}/${dbs}_${tbls}.sql.gz
echo -e " ### End ${dbs}.${tbls} Dump! Stop_Time:`date +%F' '%T` \n" >> ${LOG_FILE}
echo >> ${LOG_FILE}
done
echo -e "*** Database:${dbs} Backup Stop_Time:`date +%F' '%T' '%w` ***\n" >> ${LOG_FILE}
echo -e "*** Backup file size:`du -sh ${DATA_PATH}/${dbs}` ***\n" >> ${LOG_FILE}
done
echo -e "--- Find expired backup and delete those files ---" >> ${LOG_FILE}
for tfile in $(/usr/bin/find $DATA_PATH -mtime +6)
do
if [ -d $tfile ] ; then
rmdir $tfile
elif [ -f $tfile ] ; then
rm -f $tfile
fi
echo -e "--- Delete file:$tfile ---" >> ${LOG_FILE}
done
echo -e "\n=== Jobs ended at `date +%F' '%T' '%w` ===\n" >> ${LOG_FILE}
脚本目前设定了自动过滤mysql、information_shema、performance_schema三个库中的表对象,这3个库都属于系统库,其中的对象通常不需要单独处理。可根据实际情况,对脚本进行调整,更好地支持自己的备份和恢复策略。
相关推荐
pyxtraxtrabackup 备份还原自动化脚本使用说明:chmod a+x pyxtra.py使用root用户执行,否则请确保对相关目录有读写执行权限将备份还原到远程,需开启服务免密登录需安装 rsynceg:全量备份./pyxtra.py backup --type...
支持完整备份、增量备份,且能非常简单的集成在shell脚本中,执行自动化备份,也可以通过管道方便的传递到另一台服务器,实为Mysql数据库备份,重放的首选利器。 文章主要讲解MySQL利用xtrabackup进行增量备份的详细...
8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...
05-mysql单多表的备份实战及脚本批量备份讲解.avi 06-只备份MySQL表结构及只备份MySQL数据.avi 07-企业生产场景不同引擎备份命令参数详解.avi 08-利用source恢复mysql数据讲解及实战.avi 09-分库备份后mysql如何分库...
8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释...
8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...
MySQL的安装 27 2.1 MYSQL系统的安装布局 28 2.1.1 二进制安装 28...化授权表 33 2.3.3 测试服务器是否工作 34 2.3.4 自动运行和停止MySQL 36 2.3.5 更改root用户的密码 38 2.3.6 修改选项文件 38...
MySQL的安装 27 2.1 MYSQL系统的安装布局 28 2.1.1 二进制安装 28...化授权表 33 2.3.3 测试服务器是否工作 34 2.3.4 自动运行和停止MySQL 36 2.3.5 更改root用户的密码 38 2.3.6 修改选项文件 38...
8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...
8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...
8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释...
8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释...
8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...
8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...
4.2.5 获得本地化时间戳的函数mktime 64 4.2.6 输出控制函数flush 65 4.2.7 变量检测函数isset与变量释放 4.2.7 函数unset 66 4.2.8 随机函数rand与srand 66 4.3 关于引用的解释 67 4.3.1 对变量的引用 67 4.3.2 对...
mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror...
start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令 mem 查看cpu使用情况 attrib 文件名(目录名) 查看某文件(目录)的属性 attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉...