当前位置: 首页 > news >正文

快速搭建网站服务器c h5网站开发

快速搭建网站服务器,c h5网站开发,查营业执照用什么软件,江苏建设监理网站一、 使用二进制日志的时间点恢复 注意 本节和下一节中的许多示例都使用mysql客户端来处理mysqlbinlog生成的二进制日志输出。如果您的二进制日志包含\0#xff08;null#xff09;字符#xff0c;那么mysql将无法解析该输出#xff0c;除非您使用--binary模式选项调用它。…一、 使用二进制日志的时间点恢复 注意 本节和下一节中的许多示例都使用mysql客户端来处理mysqlbinlog生成的二进制日志输出。如果您的二进制日志包含\0null字符那么mysql将无法解析该输出除非您使用--binary模式选项调用它。 时间点恢复的信息源是在完全备份操作之后生成的一组二进制日志文件。因此为了允许服务器恢复到某个时间点必须在其上启用二进制日志记录这是MySQL 8.0的默认设置 要从二进制日志中恢复数据您必须知道当前二进制日志文件的名称和位置。默认情况下服务器在数据目录中创建二进制日志文件但可以使用--log-bin选项指定路径名以将文件放置在不同的位置。要查看所有二进制日志文件的列表请使用以下语句 mysql SHOW BINARY LOGS; 要确定当前二进制日志文件的名称请发出 以下声明 mysql SHOW MASTER STATUS; mysqlbinlog实用程序将二进制日志文件中的事件从二进制格式转换为文本以便可以查看或应用它们。mysqlbinlog具有根据事件时间或事件在日志中的位置选择二进制日志部分的选项。 应用二进制日志中的事件会导致重新执行它们所表示的数据修改。这样可以在给定的时间段内恢复数据更改。要应用二进制日志中的事件请使用mysql客户端处理mysqlbinlog输出 $ mysqlbinlog binlog_files | mysql -u root -p 如果二进制日志文件已经加密可以从MySQL 8.0.14开始则mysqlbinlog不能像上面的示例那样直接读取它们而是可以使用--read from remote server-R选项从服务器读取它们。例如 $ mysqlbinlog --read-from-remote-server --hosthost_name --port3306 --userroot --password --ssl-moderequired binlog_files | mysql -u root -p 这里选项--ssl moderequired用于确保二进制日志文件中的数据在传输过程中受到保护因为它是以未加密的格式发送到mysqlbinlog的。 重要 对于SSL模式VERIFY_CA和VERIFY_IDENTITY是比REQUIRED更好的选择因为它们有助于防止中间人攻击。若要实现其中一个设置必须首先确保服务器的CA证书对环境中使用它的所有客户端都可靠可用否则将导致可用性问题。 当您需要确定事件时间或位置以在执行事件之前选择部分日志内容时查看日志内容非常有用。要查看日志中的事件请将mysqlbinlog输出发送到一个分页程序中 $ mysqlbinlog binlog_files | more 或者将输出保存在文件中然后在 文本编辑器 $ mysqlbinlog binlog_files tmpfile $ ... edit tmpfile ... 编辑文件后按如下方式应用内容 $ mysql -u root -p tmpfile 如果在MySQL服务器上有多个二进制日志要应用请使用单个连接来应用要处理的所有二进制日志文件的内容。以下是一种方法 $ mysqlbinlog binlog.000001 binlog.000002 | mysql -u root -p 另一种方法是将整个日志写入单个文件然后处理该文件 $ mysqlbinlog binlog.000001 /tmp/statements.sql $ mysqlbinlog binlog.000002 /tmp/statements.sql $ mysql -u root -p -e source /tmp/statements.sql 二、使用事件位置的时间点恢复 例如假设在2020年3月11日20:06:00左右执行了一条SQL语句删除了一个表。您可以执行时间点恢复将服务器恢复到删除表之前的状态。以下是实现这一目标的一些示例步骤 恢复在感兴趣的时间点之前创建的最后一个完整备份称为tp在我们的示例中为2020年3月11日20:06:00。完成后请记下已将服务器还原到的二进制日志位置以便以后使用然后重新启动服务器。 注意 虽然恢复的最后一个二进制日志位置也会在恢复和服务器重启后由InnoDB显示但这不是获取恢复的结束日志位置的可靠方法因为在显示位置反映的时间之后可能会发生DDL事件和非InnoDB更改。您的备份和恢复工具应该为您的恢复提供最后一个二进制日志位置例如如果您正在使用mysqlbinlog执行任务请检查二进制日志回放的停止位置如果您使用的是MySQL Enterprise Backup则最后一个二进制日志位置已保存在备份中。 查找与要恢复数据库的时间点对应的精确二进制日志事件位置。在我们的例子中假设我们知道表删除发生的大致时间tp我们可以通过使用mysqlbinlog实用程序检查该时间前后的日志内容来找到日志位置。使用--start-datetime和--stop-datetime选项指定tp附近的短时间段然后在输出中查找事件。例如 $ mysqlbinlog --start-datetime2020-03-11 20:05:00 \--stop-datetime2020-03-11 20:08:00 --verbose \/var/lib/mysql/bin.123456 | grep -C 15 DROP TABLE/*!80014 SET session.original_server_version80019*//*!*/; /*!80014 SET session.immediate_server_version80019*//*!*/; SET SESSION.GTID_NEXT ANONYMOUS/*!*/; # at 232 #200311 20:06:20 server id 1 end_log_pos 355 CRC32 0x2fc1e5ea Query thread_id16 exec_time0 error_code0 SET TIMESTAMP1583971580/*!*/; SET session.pseudo_thread_id16/*!*/; SET session.foreign_key_checks1, session.sql_auto_is_null0, session.unique_checks1, session.autocommit1/*!*/; SET session.sql_mode1168113696/*!*/; SET session.auto_increment_increment1, session.auto_increment_offset1/*!*/; /*!\C utf8mb4 *//*!*/; SET session.character_set_client255,session.collation_connection255,session.collation_server255/*!*/; SET session.lc_time_names0/*!*/; SET session.collation_databaseDEFAULT/*!*/; /*!80011 SET session.default_collation_for_utf8mb4255*//*!*/; DROP TABLE pets.cats /* generated by server */ /*!*/; # at 355 #200311 20:07:48 server id 1 end_log_pos 434 CRC32 0x123d65df Anonymous_GTID last_committed1 sequence_number2 rbr_onlyno original_committed_timestamp1583971668462467 immediate_commit_timestamp1583971668462467 transaction_length473 # original_commit_timestamp1583971668462467 (2020-03-11 20:07:48.462467 EDT) # immediate_commit_timestamp1583971668462467 (2020-03-11 20:07:48.462467 EDT) /*!80001 SET session.original_commit_timestamp1583971668462467*//*!*/; /*!80014 SET session.original_server_version80019*//*!*/; /*!80014 SET session.immediate_server_version80019*//*!*/; SET SESSION.GTID_NEXT ANONYMOUS/*!*/; # at 434 #200311 20:07:48 server id 1 end_log_pos 828 CRC32 0x57fac9ac Query thread_id16 exec_time0 error_code0 Xid 217 use pets/*!*/; SET TIMESTAMP1583971668/*!*/; /*!80013 SET session.sql_require_primary_key0*//*!*/; CREATE TABLE dogs 从mysqlbinlog的输出中DROP TABLE为“pets”cats语句可以在二进制日志的232行#和355行#之间的段中找到这意味着该语句发生在日志位置232之后并且该日志位于DROP TABLE语句之后的位置355。 注意 仅使用 --开始日期时间和 --停止日期时间选项来帮助您找到 利息。使用这两个选项指定 不建议应用二进制日志段有一个 使用 选项。改用 --start-position 和 --stop-position。 将二进制日志文件中的事件应用于服务器从您在步骤1中找到的日志位置开始假设为155到您在步骤2中找到的位于感兴趣时间点之前的位置结束即232 $ mysqlbinlog --start-position155 --stop-position232 /var/lib/mysql/bin.123456 \| mysql -u root -p 该命令将所有事务从起始位置恢复到停止位置之前。由于mysqlbinlog的输出在记录每条SQL语句之前都包含SET TIMESTAMP语句因此恢复的数据和相关的MySQL日志反映了事务执行的原始时间。 您的数据库现在已经恢复到感兴趣的时间点tp就在表pets.cats被删除之前。 除了已经完成的时间点恢复之外如果您还想在感兴趣的时间点之后重新执行所有语句请再次使用mysqlbinlog将tp之后的所有事件应用到服务器。我们在步骤2中注意到在我们想要跳过的语句之后日志位于355位置我们可以将其用于--start-position选项以便包含该位置之后的任何语句 $ mysqlbinlog --start-position355 /var/lib/mysql/bin.123456 \| mysql -u root -p 您的数据库已还原为二进制日志文件中记录的最新语句但跳过了所选事件。
http://www.pierceye.com/news/453608/

相关文章:

  • 自己做网站新手入门淮北论坛招聘网
  • 建网站的意义大学跳蚤市场网站建设
  • 平阳做网站成都网站优化公司哪家好
  • 庆阳北京网站建设广东省建设工程执业中心网站
  • 佛山哪里有做网站的大学生文创产品设计
  • 电商网站建设运城网站图片链接怎么做的
  • 服务器建网站教程宁波网络营销推广制作
  • 微信公众号属于网站建设网站云解析域名解析
  • 网站的建设及推广在哪找可以做网站的
  • 网站经常修改好不好北京互联网公司50强
  • 知识网站有哪些h5用什么制作
  • 广州网站制作联系方式上海共有多少家企业
  • 自己建一个网站需要什么网站关键词分析工具
  • 建三江建设局网站四川省建设厅官方网站电话
  • 福建志佳建设工程发展有限公司网站vi品牌包装
  • 专业门户网站开发公司龙岩正规全网品牌营销招商
  • 网站怎么做qq微信登陆政务网站的建设时期的概述
  • 购物网站的目的和意义西安做网站xamokj
  • 厦门市建设局网站网站开发周记30篇
  • 工业园区门户网站建设方案塘沽网站开发
  • 郑州网站设计 公司驻马店市可以做网站的公司
  • 推荐盐城网站开发安陆网站开发
  • wordpress中文网站模板软件开发者路线图
  • 福清市建设局网站深圳网站制作品牌祥奔科技
  • 工程建设采购有哪些网站做网络销售怎么样
  • wordpress数据库和网站文件下载商业网站成功的原因
  • 30岁转行做网站设计百度秒收网站
  • 网页设计与制作心得体会1000福州网站seo公司
  • 学校网站定位手机网站建设怎么样
  • 苏州科技网站建设模板网站 seo