检查binlog是否开启
show global variables like 'log_bin';
image.png
如果返回的是 log_bin | OFF 那么就是没有开启,ON 则是已经开启;
在 [mysqld] 下写入如下内容:
# 开启 Binlog 并写明存放日志的位置
log_bin = /usr/local/mysql/log/bin-log
该路径记得授权给mysql用户
chown -R mysql:mysql xxxx
# 指定索引文件的位置
log_bin_index = /usr/local/mysql/log/mysql-bin.index
#删除超出这个变量保留期之前的全部日志被删除
expire_logs_days = 7
# 指定一个集群内的 MySQL 服务器 ID,如果做数据库集群那么必须全局唯一,一般来说不推荐 指定 server_id 等于 1。
server_id = 1
# 设置方面提到过的三种 Binlog 的日志模式
binlog_format = ROW
#控制对哪些数据库进行收集
binlog_do_db=xxxDbName
一、完整备份mysql数据库
mysqldump -uroot -proot321 --all-databases > /opt/20220629_mysql.sql
二、导出指定时间的binlog并观察是否有2-10点的操作
mysqlbinlog --no-defaults --start-datetime="2022-06-28 02:00:00" --stop-datetime="2022-06-28 10:00:00" /home/mysql/data/master-bin.000009 > /opt/master000009.sql
三、通过binlog恢复(二选一)
mysqlbinlog /home/mysql/data/master-bin.000009 --start-position=起始点 --stop-position=结束点 | mysql -uroot -proot321
mysqlbinlog --start-datetime="2022-06-28 02:00:00" --stop-datetime="2022-06-28 10:00:00" --database=库名 /var/lib/mysql/mysql-bin.000009 | mysql -uroot -proot321 -v
四、进CRM观察是否导入成功
网友评论