标签:文件 comm 信息 刷新 mysql-bin 一致性 bsp back 语句
1. 直接备份某个库或表 ,或多个库多个表
mysqldump -uroot -pPassword [database name] > [dump file]
mysqldump -uroot -pPassword --databases mydatabase1 mydatabase2 mydatabase3 > [dump file]
mysqldump --all-databases> test.dump
2. 备份并压缩
mysqldump -uroot -pPassword --events -B [database name] | gzip > ${date}_${dbname}.sql.gz
3. 跨主机备份
mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb
4. --opt
如果加上--opt参数则生成的dump文件中稍有不同:
建表语句包含drop table if exists tableName
insert之前包含一个锁表语句lock tables tableName write,insert之后包含unlock tables
5. 只备份表结构
mysqldump -uroot -pPassword --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump
6. 恢复表或者数据
mysql [database name] < [backup file name]
7. mysql 二进制 增量备份
mysql 开启二进制 [mysqld]log-bin=mysql-bin
优化
1. --all-databases 包含了 mysql 数据库,其中包含了权限的数据,所以我们应该加上 --flush-privileges,在恢复时,权限才能生效;
注意 --all-databases 包括了mysql数据库,但是不会包含 information_schema和performance_schema两个数据库。
2. --delete-master-logs(尽量不要用) 备份之后,会执行 purge logs to 语句。删除了备份之后的master上的binary log. 一般而言,我们不建议随便删除binary log.
我们应该将它们保存起来,而不是直接删除。以防万一,要留条退路。
3.
因为 mysqldump 默认启用了 --lock-tables,所以会导致在备份期间对所有表持有读锁: lock table tb read
local,所以所有的update,delete语句会被阻塞。但是select语句和insert语句不会被阻塞。
4. 如果要得到一致性的备份的话,需要使用 --lock-all-tables 或者使用 --single-transaction选项。前者使用了全局读锁,不允许任何修改操作。后者使用了事务的特性来得到一致性备份。
5.
--master-data 使用此选项dump a master
replicationserver到dump文件,可用于设立另一台服务器作为master的slave。它会使dump输出包含CHANGE
MASTER TO语句,标记dump源的二进制日志坐标(文件名和位置)
如果选项赋值为2,那么CHANGE MASTER TO 语句会被写成一个SQL comment(注释),从而只提供信息;
如果选项赋值为1,那么语句不会被写成注释并且在dump被载入时生效。如果没有指定,默认值为1。
mysqldump -uxxx -p --single-transaction --master-data=2 --routines --flush-logs --databases db1 db2 db3 > alldb.sql;
--flush-logs 在mysqldump之前 进行日志刷新一次
--routines 用来备份存储过程和函数,触发器默认会备份。
标签:文件 comm 信息 刷新 mysql-bin 一致性 bsp back 语句
原文地址:https://www.cnblogs.com/yxqnote/p/20180718_ms.html