mysql不锁表备份
背景:医院客户反馈,凌晨录入患者信息时,会提示录不进去,经排查该时段是mysqldump备份时间,由于录入时间与备份时间冲突,所以觉得修改备份参数,在备份是不锁表。
原备份脚本:
#!/bin/bash date=`date +%Y%m%d-%H%M%S` mysqldump --opt -P 3306 -h localhost
-uroot -S /data/mysql/data/mysql.sock -p'Pass@W0rd' --all-databases 2>/dev/null
|gzip > /data/backup/mysql_fullback-${date}.sql.gz if [ $? -eq 0 ];then echo "$(
date +%Y%m%d-%H%M%S) :backup complete !" >> /data/backup/backup.log else echo "
$(date +%Y%m%d-%H%M%S) :backup failed !" >> /data/backup/backup.log fi cd
/data/backup#tar -zcvf mysql_fullback-${date}.sql.tgz
mysql_fullback-${date}.sql --remove-files find /data/backup/ -type f -mtime +15
|xargs rm -f
修改后的备份脚本
#!/bin/bash date=`date +%Y%m%d-%H%M%S` mysqldump --skip-opt
--single-transaction -P3306 -h localhost -uroot -S /data/mysql/data/mysql.sock
-p'Pass@W0rd' --all-databases 2>/dev/null |gzip > /data/backup/mysql_fullback-
${date}.sql.gz if [ $? -eq 0 ];then echo "$(date +%Y%m%d-%H%M%S) :backup
complete !" >> /data/backup/backup.log else echo "$(date +%Y%m%d-%H%M%S)
:backup failed !" >> /data/backup/backup.log fi cd /data/backup #tar -zcvf
mysql_fullback-${date}.sql.tgz mysql_fullback-${date}.sql --remove-files find
/data/backup/ -type f -mtime +15|xargs rm -f
其他命令
mysql mysqldump 只导出表结构 不导出数据
mysqldump --opt -d 数据库名 -u root -p > xxx.sql
备份数据库
mysqldump 数据库名 >数据库备份名 mysqldump -A -u用户名 -p密码 数据库名>数据库备份名 mysqldump -d -A
--add-drop-table -uroot -p >xxx.sql
* 导出结构不导出数据 mysqldump --opt -d 数据库名 -u root -p > xxx.sql
* 导出数据不导出结构 mysqldump -t 数据库名 -uroot -p > xxx.sql
* 导出数据和表结构 mysqldump 数据库名 -uroot -p > xxx.sql
* 导出特定表的结构 mysqldump -uroot -p -B 数据库名 --table 表名 > xxx.sql