mysqldump --help
#备份 -F 表示生产一个新的日志文件
mysqldump -uroot -p -S /home/mysql/mysql.sock --single-transaction -F test > test.dmp
注意:为了保证数据备份的一致性,MyIAM 存储引擎在备份时需要加上 -l 参数,表示将所有表加上读锁;
对于事务存储引擎(InnoDB)可以采用 --single-transaction 选项。此参数将使得 InnoDB 存储引擎得到一个快照(Snapshot),保证备份的数据能够一致
1)安装
#安装依赖包
yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel
#安装
cmake .
make
参考链接
https://github.com/maxbube/mydumper
2)使用
mydumper --help
mydumper -u root -p hadoop -S '/home/mysql/mysql.sock' -B test
mydumper --user=root --password=hadoop --socket='/home/mysql/mysql.sock' --database=test
参数选项:
# -s,--statement-size 按照 insert 语句插入的数据大小拆分,单位 bytes,默认值 1000000
# -r,-rows 按照行数对结果文件进行拆分
# -F,--chunk-filesize 按照导出文件大小进行拆分,单位为 MB
参考链接
https://www.cnblogs.com/EikiXu/p/9811051.html
#1、导入数据库
mysql -uroot -p -S /home/mysql/mysql.sock < test-schema-create.sql
#1、导入表结构
mysql -uroot -p -S /home/mysql/mysql.sock test < test.t2-schema.sql
#3、导入表数据
mysql -uroot -p -S /home/mysql/mysql.sock test < test.t2.sql
#1、备份 -F 表示生产一个新的日志文件
mysqldump -uroot -p -S /home/mysql/mysql.sock --single-transaction -F test > test.dmp
#2、完全恢复
mysql -uroot -p -S /home/mysql/mysql.sock test < test.dmp
mysqlbinlog /home/mysql/mysqllog/binlog/mysql-binlog.000015 | mysql -uroot -p -S /home/mysql/mysql.sock test
1、恢复全备份
mysql -uroot -p -S /home/mysql/mysql.sock test < test.dmp
2、基于时间点恢复(跳过误操作时间点)
#恢复误操作前时间点
mysqlbinlog /home/mysql/mysqllog/binlog/mysql-binlog.000018 --stop-datetime="2020-01-20 20:40:26" | mysql -uroot -p -S /home/mysql/mysql.sock test
#恢复误操作后时间点
mysqlbinlog /home/mysql/mysqllog/binlog/mysql-binlog.000018 --start-datetime="2020-01-20 19:58:15" --stop-datetime="2020-01-20 20:00:53" | mysql -uroot -p -S /home/mysql/mysql.sock test
mysqlbinlog /home/mysql/mysqllog/binlog/mysql-binlog.000018 --start-datetime="2020-01-20 19:58:15" | mysql -uroot -p -S /home/mysql/mysql.sock test
3、基于位置恢复
#在误操作时间范围中找出误操作语句前后的位置号
mysqlbinlog /home/mysql/mysqllog/binlog/mysql-binlog.000022 -v --start-datetime="2020-01-20 22:00:28" --stop-datetime="2020-01-20 22:07:28" > mysql_restore.sql
#恢复误操作前的位置号
mysqlbinlog /home/mysql/mysqllog/binlog/mysql-binlog.000022 --stop-position="1154" | mysql -uroot -p -S /home/mysql/mysql.sock test
#恢复误操作后的位置号
mysqlbinlog /home/mysql/mysqllog/binlog/mysql-binlog.000022 --start-position="1262" | mysql -uroot -p -S /home/mysql/mysql.sock test
4、并行恢复
myloader --help
myloader -u root -p hadoop -S '/home/mysql/mysql.sock' -d '/home/mysql/tmp/tmpSql/export-20200121-040403' -B test -t 3 -o
参数说明
# -d,--directory 备份文件所在的目录
# -o,--overwrite-table 是否覆盖已有表
# -B,--database 执行需要恢复的数据库
# -e,--enable-binlog 是否记录 BINLOG 。如果在主库导入数据,开启此选项,才能把数据同步到从库
# -t,--threads 线程并行数,默认为 4 个线程