mysql备份-增量备份级数据恢复
mysqldump -u 用户名 -p密码
mysqldump -h 127.0.0.1 -u root -P3003 --events -p mysql > /tmp/mysql.bak.sql ###因为mysqldump默认是不备份事件表的,只有加了--events 才会解决加上
egrep -v "#|\*|--|^$" /tmp/mysql.bak.sql ################查看导出的表信息
mysql -h 127.0.0.1 -uroot -p'123456' -P3003 -e "use mysql;drop table db;" ##通过命令删除mysql下的db表。
mysql -h 127.0.0.1 -uroot -p'123456' -P3003 mysql </tmp/mysql_B.sql ##通过备份还原mysql库的表
mysql -uroot -h10.10.0.37 -P3320 --default-character-set=utf8 -p hive_new < ./201806201512sql.sql 还可以指定字符集
###带参数大B的导出
mysqldump -h127.0.0.1 -uroot -poldboy -P3003 -B oldboy > /tmp/oldboy_B.sql ####这样就算删除了oldboy数据库 也能恢复。
####压缩方式倒出数据库
mysqldump -h127.0.0.1 -uroot -poldboy -P3003 -B oldboy|gzip > /tmp/oldboy_B.sql.gzip
mysqldump备份原理
利用mysqldunmp命令备份数据的过程,实际上就是把数据从mysql库里以逻辑的sql语句的形式直接输入或者生成备份文件的过程。
####mysql备份多个库
mysqldump -h 127.0.0.1 -uroot -poldboy -P3003 -B oldboy test_gbk test_utf8|gzip > /opt/3gku.sql.gz ##备份多个库
gunzip < /opt/3gku.sql.gz |mysql -h 127.0.0.1 -uroot -poldboy -P3003 ###恢复库
mysql -h127.0.0.1 -uroot -poldboy -P3003 -e "show databases;"|grep -Evi "database|infor|perfor"|sed 's#^#mysqldump -h 127.0.0.1 -uroot -poldboy -P3003 -B #g'|gzip > /tmp/haha.sql.gz ###可以查出来库以及在库前面加上参数
###分库备份 mysql -h127.0.0.1 -uroot -poldboy -P3003 -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -h 127.0.0.1 -uroot -poldboy -P3003 -B \1|gzip > /opt/\1.sql.gz#g'|bash
#!/bin/bash for dbname in `mysql -h127.0.0.1 -uroot -poldboy -P3003 -e "show databases;"|grep -Evi "database|infor|perfor"` do mysqldump -h 127.0.0.1 -uroot -poldboy -P3003 --events -B $dbname|gzip > /opt/${dbname}_bak.sql.gz done
###备份mysql表结构
mysqldump -h127.0.0.1 -uroot -poldboy -P3003 --compact -d oldboy > /opt/a.sql ###备份表结构 mysqldump -h127.0.0.1 -uroot -poldboy -P3003 --compact -t oldboy > /opt/a.sql ###备份数据
###mysql数据库全备,并且刷新bin-log
mysqldump -h127.0.0.1 -uroot -p -P3003 --events -A -B -F |gzip > /opt/b.sql.gz
-A 备份 所有库 -B 指定多个库,增加建库语句和use语句 --compact 去掉注释,适合调试输出,生产不用 -F 刷新binlog日志 --master-data增加binlog日志文件名级对应的位置点 -R备份存储过程等 -x锁表 -l --lock-tables 只读锁表 -d 只备份表结构 -t 只备份数据
--single-transaction 适合innodb事物数据库备份
myisam 备份命令
mysqldump -h127.0.0.1 -uroot -poldboy -A -B --master-data=2 -x --events |gzip > /opt/all.sql.gz
innodb 备份命令:推荐使用
mysqldump -h 127.0.0.1 -u root -poldboy -A -B --master-data=2 --events --single-transaction|gzip >/opt/all.sql.gz
mysql恢复方法
1.source /opt/mysql_bak_B.sql ##需要进入数据库里面操作然后指定指定数据路径 sysctem 查看目录
2.mysql -h 127.0.0.1 -uroot -poldboy -P3003 oldboy < /opt/mysql_bak.sql
mysql -h 127.0.0.1 -uroot -poldboy -P3003 < /opt/mysql_bak_B.sql
##查看链接数据库情况
mysql -h 127.0.0.1 -uroot -poldboy -P3003 -e "show full processlist;" 可以查到数据库链接情况以及操作命令来排查慢查询
mysql -h 127.0.0.1 -uroot -poldboy -P3003 -e "show global status;" 查看全局状态
mysql -h 127.0.0.1 -uroot -poldboy -P3003 -e "show global status;"|grep sel ###查看mysql计数
https://blog.csdn.net/jesseyoung/article/details/37106035 https://www.cnblogs.com/kevingrace/p/5907254.html
mysql -uroot -h127.0.0.1 -P3320 --default-character-set=utf8 -p hive_new -e "SELECT mac,sn FROM (SELECT mac,sn FROM mac_area WHERE area_code ='100') c
WHERE NOT EXISTS(SELECT mac FROM t_order_charging_detail o WHERE o.mac=c.mac AND o.failure_time>NOW());" > ./20200831.xls
mysql -uroot -h127.0.0.1 -P3320 --default-character-set=utf8 -p hive_new -e "SELECT mac,sn FROM (SELECT mac,sn FROM mac_area WHERE area_code ='100') c
WHERE NOT EXISTS(SELECT mac FROM t_order_charging_detail o WHERE o.mac=c.mac AND o.failure_time>NOW());" > ./20200831.xls