mysql备份

1. mysqldump备份命令

# egrep -v "#|\*|--|^$"  /opt/mysql_bak.sql  # 查看备份的内容

# mysqldump -u 用户名 -p  数据库名 > 备份的文件名  # 备份命令

# mysqldump -u 用户名 -p -B 数据库名 > 备份的文件名  # 备份命令,-B会把创建切换库的语句也备份

# mysqldump -u 用户名 -p -B 数据库名 | gzip>备份的文件名  # 备份命令,-B会把创建切换库的语句也备份,gzip压缩

# mysqldump -u 用户名 -p -B 数据库名1 数据库名2 | gzip>备份的文件名  # 备份多个库命令,-B表示接多个库,并且增加use db和create db的信息,gzip压缩

# mysqldump -u 用户名 -p 数据库名1 表名  # 备份单个表命令

# mysqldump -u 用户名 -p -d 数据库名  表名  # 备份单个表结构的命令

# mysqldump -u 用户名 -p -A -B --events | gzip>备份的文件名  #备份所有数据库命令

# mysqldump -u 用户名 -p -A -B -F --events | gzip>备份的文件名  #备份整个数据库命令,刷新binlog日志(F参数,切割binlog)

分库备份

mysql -uroot -p'oldboy' -e "show databases;" | grep -Evi "database|info|perfor" | sed -r 's#^([a-z].*$'#msyqldump -uroot -p'oldboy' --events -B \1 | gzip >/opt/bak/\1.sql.gz#g' | bash


2. mysqldump关键参数:

1. -B 制定备份多个库,增加建库语句和use切换语句

2. --compact 去掉注释,适合调试,生产环境不用

3. -A 备份时,制定所有库

4. -F 刷新binlog日志或者用下边的--master-data

5. --master-data 增加binlog日志名及对应的位置点 1,2的区别 1 不是注释,2是注释

6. -x,--lock-all-tables  锁表

7. -l,--lock-tables 只读锁表

8. -d 只备份表结构

9. -t 只备份数据

10. --single-transaction 适合innodb事务数据库的备份,保证备份的一致性

11. --master-data作用

--master-data=1  无注释  --为注释

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000020',MASTER_LOG_POS=1191;

--master-data=2  注释

--CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000020',MASTER_LOG_POS=1191;


3. myisam备份命令

# mysqldump -uroot -p'pass' -A -B -F --master-data=2 -x --events | gzip >/opt/data.sql.zip  常规备份(触发器和存储过程需要加其他的参数)

# mysqldump --user=root --all-databases --flush-privileges --lock-all-tables --master-data=1 --flush-logs \

--triggers --routines --events --hex-blob >$BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql


4. innodb备份命令

# mysql -uroot -p'pass' -A -B -F --master-data=2 --events --single-transaction | gzip >/opt/data.sql.zip #只是锁表的参数有区别

# mysqldump --user=root --all-databases --flush-privileges --single-transaction --master-data=1 --flush-logs \

--triggers --routines --events --hex-blob >$ BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql

如果既有myisam和innodb,以myisam的备份命令为主

--master-data  2的时候是注释的,1不是注释的从库常用的


5. mysql数据库的恢复

source命令恢复

在备份时未制定-B参数,必须在恢复的时候给定库名


6. mysql -uroot -p -e '' 参数

常用的参数:

show status  #查看当前的会话的数据库信息

show global status #查看整个数据库运行状态信息,很重要,要分析做好监控

show processlist  #查看正在执行的sql语句,看不全

show full processlist  #查看正在执行的sql语句全

set global key_buffer_size=32777218 #不重启数据库修改参数

show variables; #查看数据库的参数信息


mysqlbinlog 解析mysq的binlog日志文件

mysqldump -uroot -ptest110oldboy -B -F --single-transaction eshop_ett100 | gzip>$bakpath/eshop_ett100_$(date +%F).sql.gz

-B:跟着要备份的库,这里是eshop——ett100

你可能感兴趣的:(mysql备份)