Google Cloud SQL使用低级二进制日志事件将数据库还原到特定点。通过documentation,我发现必须找到确切的二进制日志位置并将其输入“创建克隆”表单。
为了“确定恢复位置”,我必须使用MySQL客户端连接到实例,并通过具有管理员权限的二进制日志条目进行搜索(所需的权限似乎是SUPER
,{{1} }。
从文档中:
- 显示实例的二进制日志文件:
REPLICATION CLIENT
- 在最新的日志文件中显示前100个事件:
您可以调整要显示的行数,但是除非知道文件的大小,否则不应该显示文件中的所有事件。显示大量事件会影响系统性能。SHOW BINARY LOGS;
- 如果未显示您要查找的事件,请使用显示的最后一个位置显示下一组事件:
SHOW BINLOG EVENTS IN '<BINARY_LOG_FILE>' LIMIT 100;
事实证明,在生产数据库中找到正确的事件非常困难。
是否有一种简便的方法将特定日期映射到二进制日志位置?
注意:在AWS上,您可以输入一个日期,数据库将恢复到该日期的状态(请参阅Instructions for the AWS Management Console)。我认为他们还将日期映射到最接近的事件,并且我们采用了类似的机制。