您的位置:首页 > 文旅 > 旅游 > 网页设计指什么_兰州网络推广执行_aso优化方案_短视频推广

网页设计指什么_兰州网络推广执行_aso优化方案_短视频推广

2024/12/23 1:25:34 来源:https://blog.csdn.net/yuzheh521/article/details/143966639  浏览:    关键词:网页设计指什么_兰州网络推广执行_aso优化方案_短视频推广
网页设计指什么_兰州网络推广执行_aso优化方案_短视频推广

 查看记录二进制日志详细信息

SHOW VARIABLES LIKE '%log_bin%'

 

log_bin 为 ON说明这个参数是开启的,就是说系统是记录了bin log的

log_bin_basename 配置了bin log的文件路径及文件前缀名

log_bin_index  配置了bin log索引文件的路径

查看当前使用日志列表

show master status

 

根据log_bin_basename的路径查看binlog具体文件

 

 使用binlog日志恢复数据

原理:当数据库发生变化时,binlog会记录数据库中的所有变化;需要恢复的时候可以根据binlog中的开始位置和结束位置还原本部分操作;结束位置一般是数据被破坏或删除之前的位置。

注意:一切操作在本地测试库进行

最好把日志文件拷贝出来,到本地库恢复,因为这个文件记录当前数据库连接下所有库的操作,防止影响其他库的正常数据,所以最好将数据恢复到本地,然后同步回生产库

 

恢复时需要在binlog中找到两个位置:

  • 数据恢复的起始位置
  • 数据恢复的结束位置

 

 

通过mysqlbinlog将binlog转为sql,以方便查询具体位置 

 如果没有配置Mysql环境变量 需要进入mysql的安装路径bin目录下 执行命令

将binlog转为sql

mysqlbinlog --set-charset=utf-8 /Users/yuzhenhua/Desktop/iZ8vb9b97xf7mvZ-bin.000003 >data.sql

导出某段时间

mysqlbinlog --start-datetime="2022-09-09 09:00:00" --stop-datetime="2022-09-09 11:00:00" --base64-output=decode-rows -vv /Users/yuzhenhua/Desktop/iZ8vb9b97xf7mvZ-bin.000003 >data.sql

 

 

通过mysqlbinlog执行恢复操作

 通过偏移量数据修复

mysqlbinlog /Users/yuzhenhua/Desktop/iZ8vb9b97xf7mvZ-bin.000003  --start-position=59571111  --stop-position=93031069  | mysql -f -u 账号 -p密码

/Users/yuzhenhua/Desktop/iZ8vb9b97xf7mvZ-bin.000003     要操作binlog文件
--start-position=59571111                                                              数据恢复的起始位置
--stop-position=93031069                                                            数据恢复的结束位置

-f                                                                                                       遇到错误时强制执行
mysql -uroot -p123456                                                                  数据恢复需要登录数据库

  1. mysqlbinlog命令中使用--database选项(部分情况适用)

    • 基本原理
      • 当你的二进制日志格式是基于语句(Statement - based)或者混合模式(Mixed - based)时,--database选项可以帮助你筛选出只与指定数据库相关的操作。例如,如果你想恢复数据库test_db,可以使用命令
      • mysqlbinlog --database = 数据库名 /Users/yuzhenhua/Desktop/iZ8vb9b97xf7mvZ - bin.000003 --start - position=59571111 --stop - position=93031069 | mysql - f - u 账号 - p密码
    • 局限性
      • 对于基于行(Row - based)的二进制日志格式,--database选项可能不会按照你期望的方式工作。因为在基于行的格式中,日志记录的是每行数据的变化,可能不会明确区分是哪个数据库的操作,所以这种情况下可能无法精准地只恢复指定数据库的内容。
  2. 通过解析二进制日志内容手动筛选(更灵活但复杂)
    • 查看日志内容
      • 首先使用mysqlbinlog工具查看二进制日志内容,例如mysqlbinlog /Users/yuzhenhua/Desktop/iZ8vb9b97xf7mvZ - bin.000003。在日志内容中,你可以找到与数据库操作相关的记录,如Query事件中会包含执行的 SQL 语句,其中会有数据库名称相关的信息。
    • 手动提取相关操作
      • 根据数据库名称来手动提取与要恢复的数据库相关的操作。例如,如果要恢复数据库test_db,你需要在日志中找到所有涉及test_dbINSERTUPDATEDELETE等操作的记录。这可能需要一些脚本或者文本处理工具来辅助完成。比如,在 Linux 环境下可以使用grep命令来筛选包含test_db的行,如mysqlbinlog /Users/yuzhenhua/Desktop/iZ8vb9b97xf7mvZ - bin.000003 | grep test_db,然后再对筛选后的内容进行进一步分析,确定哪些是需要恢复的操作,并将这些操作重新应用到数据库中。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com