mysqldump 和 基于快照的备份
Table of Contents
- mysqldump: 仅适用于数据集较小
- lvm-snapshot: 基于 LVM 快照的备份
- 相关阅读
mysqldump: 仅适用于数据集较小
mysqldump DB_NAME [tbname1] [tbname2]
# mysqldump -uroot -pYOUR_PASSWORD DB_NAME > test.sql mysql> create database test2; mysqldump -uroot -pYOUR_PASSWORD test2 < test.sql
备份所有的库
mysqldump --all-databases > test.sql
备份指定的多个库
--databases tb1 tb2 .....
恢复
mysql < test.mysql mysql database_name < test.sql
备份前要加锁
mysqldump --lock-all-tables: 请求锁定所有表之后在备份, 对 MyISAM, InnoDB, Aria 做温备 mysqldump --lock-tables tables_name [table1] [table2]
如果是 innodb
mysqldump --single-transaction: 能够对 InnoDB 存储引擎实现热备, 这时候就不用 lock-all-tables
备份代码
--events: 备份事件调度器代码 --routines: 备份存储过程和存储函数 --triggers: 备份触发器
备份时滚动日志:
--flush-logs: 备份前, 请求到锁之后滚动日志
复制时的同步位置标记
--master-data={0|1|2} 0 表示不记录 (默认) 1 表示记录为 change master 语句 2 表示记录为注释的 change master 语句 dump a master replication server to produce a dump file that can be used to set up another server as a slave of the master. It causes the dump output to include a CHANGE MASTER TO statement that indicates the binary log coordinates (file name and position) of the dumped server. These are the master server coordinates from which the slave should start replicating after you load the dump file into the slave
使用 mysqldump 备份
请求锁: –lock-all-tables 或使用–single-transaction 进行 innodb 热备
滚动日志: –flush-logs
选定要备份的库 –databases
记录二进制文件及位置 –master-data
手动请求全局锁
> flush tables with read lock > flush logs; (shell 下: mysqladmin flush-logs) > unlock tables
恢复:
建议: 关闭二进制日志, 关闭其他用户的写操作 set sql_bin_log = 0;
应该用 source test.sql
备份策略: 基于 mysqldump
备份:
mysqldump+二进制日志文件
周日做一次完全备份, 备份的同时滚动日志
周一至周六: 备份二进制日志
恢复: 完全备份+各二进制文件至此刻的事件
对于 MySQL 配置文件, 以及与 MySQL 相关的 OS 配置文件在每次修改后都应该直接进行备份
lvm-snapshot: 基于 LVM 快照的备份
- 事务日志跟数据文件必须在同一个卷上 (还要注意没 commit 的事务)
- 创建快照卷之前, 要请求 mysql 的全局锁
- 在请求全局锁完成之后, 做一次日志滚动;做二进制日志文件及位置标记 (手动进行)
- 释放锁
步骤:
- 请求全局锁, 并滚动日志
flush tables with read lock;
flush logs; - 做二进制日志文件及位置标记 (手动进行)
mysql -e ‘show master status‘ > /path/to/somefile (之后在 slave 机器上执行对应的相应的操作) - 创建快照卷
lvcreate -L SIZE -s -n data_back -p r /dev/data/mysqldata - 释放全局锁
unlock tables - 挂载快照并备份
cp - 备份完成之后, 删除快照卷
lvremove
相关阅读
时间: 2024-10-11 15:24:21