开发者社区> 问答> 正文

自建数据库如何通过RDS MySQL备份按时间点恢复数据?

自建数据库如何通过RDS MySQL备份按时间点恢复数据?

展开
收起
雪哥哥 2022-01-07 14:39:43 1512 0
1 条回答
写回答
取消 提交回答
  • 本地实例恢复 本地实例恢复请参见RDS备份文件恢复到自建数据库。

    增量恢复 准备恢复环境: MySQL 5.6: 重置root用户的密码,详情请参见官方文档。 MySQL 5.7或8.0: 如果您是MySQL 5.7或8.0版本,需要通过skip-grant-tables参数关闭MySQL的认证,再进行授权。 登录自建数据库,依次执行以下SQL语句,创建并授权可以远程登录的root用户。 flush privileges; grant all privileges on . to root@'%' identified by '[$Password]'; flush privileges; 说明:[$Password]为root用户的密码。 执行以下命令,确定需要开始增量的Binlog位置点。 说明:xtrabackup_binlog_info文件目录请以实际环境为准,可以使用find命令查看。 cat xtrabackup_binlog_info 系统显示类似如下。 mysql-bin.000688  531167  66ef5f51-94f3-11e5-98cf-40a8f034c4d0:1-405320, 72fb7cf6-94f3-11e5-98cf-a0d3c1f98c98:1-3082798, 79f98899-5d2d-11e4-a7c9-ecf4bbc08418:1-365786, 7e88493e-5d2d-11e4-a7c9-ecf4bbc06cb8:1, a9285f36-9d56-11e4-8a2c-d89d672a9530:1-29549875, ac2d9725-9d56-11e4-8a2c-d89d672af420:1-4838217 说明:mysql-bin.000688是应用的起始Binlog文件,531167是开始位置点(start position)。 从控制台下载备份所在实例编号一致的Binlog文件。本文以mysql-bin.000688和mysql-bin.000689文件为例。 依次执行以下命令,使用tar命令解压下载的备份文件。 tar xvpf mysql-bin.000688.tar tar xvpf mysql-bin.000689.tar 通过mysqlbinlog命令分析文件内容,确定增量恢复到的时间点。 mysqlbinlog -v --base64-output=decode-rows mysql-bin.0006XX > 689.log 执行以下命令,查看689.log文件,确认想要恢复的时间点。 vi 689.log 执行以下命令,进行增量恢复,待命令执行完毕后,增量恢复完成。 mysqlbinlog mysql-bin.000688 mysql-bin.000689 --start-position=531167 --stop-datetime="16-05-16 18:05:03" | mysql -uroot -p[$Password] -P[$Port] -h[$Host_IP] 说明: -p参数和[$Password]间不要有空格,[$Password]请自行替换为实际密码。 [$Host_IP]参数请指定非127.0.0.1的主机IP。 [$Port]为数据库端口。 mysqlbinlog命令格式如下所示。 mysqlbinlog binlog_file1 binlog_file2 ... binlog_filen --start-position=xxxx  --stop-datetime="YY-mm-dd hh:mm:ss" | mysql -uroot -pyour_password -Pmysql_port -hyour_host_ip mysqlbinlog其他可以使用的参数如下: --database db_name指定仅增量恢复指定数据库db_name的数据。 --start-position指定开始恢复的Binlog位置点,该位置点应存在于指定的第一个binlog文件。 --stop-position指定恢复到的Binlog位置点,该位置点应存在于指定的最后一个binlog文件。 --start-datetime指定开始恢复的时间点(从第一个等于或大于该时间点的Binlog事件开始)。 以本地时间时区为准,格式为MySQL可以接受的时间格式,比如"2016-05-16 08:01:05"或"16-05-16 08:01:05"。 --stop-datetime指定停止恢复的时间点(在第一个等于或大于该时间点的Binlog事件停止)。 以本地时间时区为准,格式为 MySQL 可以接受的时间格式,比如"2016-05-16 08:01:05" 或 "16-05-16 08:01:05"。

    2022-01-07 17:36:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像