确保数据库突然断电不丢数据的方法

确保数据库突然断电不丢数据的方法,第1张

双一原则

innodb_flush_log_at_trx_commit 和 sync_binlog 都为 1

就能确保 MySQL 机器断电重启后,数据不丢失。

建议在比较重要的库,比如涉及到钱的库,设置为双一,而你的测试环境或者正式业务不那么重要的库(比如日志库)可以将 innodb_flush_log_at_trx_commit 设置为0,sync_binlog 设置成大于100 的数值,提高更新效率。

mysql不是双一模式导致数据不一致异常断电原因,模式不同,对数据的处理不一样。典型的STRICT_TRANS_TABLES严谨模式,进行数据的严格校验,错误数据不能插入。当模式不一样下数据会被截断,最终就会存在不一致问题。mysql云数据库MySQL-安全可靠,d性伸缩,轻量运维,开箱即用的数据库服务,支持业界主流MySQL数据库引擎,提供管理,备份,恢复,监控等全套解决方案。

第一种:在master上删除一条记录,而slave上找不到。

Last_SQL_Error: Could not execute Delete_rows event on table hcy.t1

Can't find record in 't1',

Error_code: 1032handler error HA_ERR_KEY_NOT_FOUND

the event's master log mysql-bin.000006, end_log_pos 254

第二种:主键重复。在slave已经有该记录,又在master上插入了同一条记录。

Last_SQL_Error: Could not execute Write_rows event on table hcy.t1

Duplicate entry '2' for key 'PRIMARY',

Error_code: 1062

handler error HA_ERR_FOUND_DUPP_KEYthe event's master log mysql-bin.000006, end_log_pos 924

第三种:在master上更新一条记录,而slave上找不到,丢失了数据。

Last_SQL_Error: Could not execute Update_rows event on table hcy.t1

Can't find record in 't1',

Error_code: 1032

handler error HA_ERR_KEY_NOT_FOUNDthe event's master log mysql-bin.000010, end_log_pos 263

异步半同步区别


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8624594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存