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计数

猜你喜欢

转载自www.cnblogs.com/zhaobin-diray/p/9361642.html