ZKX's LAB

如何有效的跟踪线上 MySQL 实例表和权限的变 mysql数据变更跟踪

2021-04-23知识2

mysql数据被修改了怎么查看 update 表名set 字段名1='值1',字段名2='值2',where 条件中文的部分换成具体表名,字段名即可。

如何有效的跟踪线上 MySQL 实例表和权限的变 有很多种方式可以实现,比如通过 migrate 等工具强制所有的操作都以统一的方式执行,这需要开发人员做更多的配合,所以这类工具在非规模话的业务场景中较难实现;另外管理员或 DBA 也可以通过知识库比如 redmine 等类似的方式记录变更,不过不可控因素很多,特别依赖上线的流程,也容易出现纰漏.这就引申出本文要介绍的如何跟踪线上库表的变更,下文以 MySQL 数据库介绍说明.跟踪的方式在 Postgresql 中,由于触发器对各种操作都有很好的支持,我们完全可以通过触发器的形式来记录所有 DDL 语句的变更.与此相比,MySQL 则显得较为弱小,我们只能以其它方式实现类似的目标.下面以中间件,log,binlog,slave,mysqldiff 五种方式进行介绍.1.中间件现有的中间件 atlas,kingshard,mycat 等,都以 proxy 的角色部署于程序和 MySQL 之间,所有发往 MySQL 的 sql 都通过 proxy 进行转发.如下图所示,我们可以在 proxy 层面增加一些 DDL,DML 相关语句的记录,达到跟踪变更的目的.app|->;|proxy|->;|MySQL|这种方式自由度较高,大家都可以随意定制.不过需要一些开发能力,另外 sql 的过滤也会影响到查询的性能,通过中间件来直接修改表结构等操作也是有风险较大的方式.2.log这种方式很。

PHP 如何实现mysql数据库表资料改变时(例如加入新数据、变更数据)通过phpmailer或其他方法自动发送电邮 m层里,手动写一个方法就行了。或者,在mysql里加一个监听器,记录相应变更后,存入指定表,然后php读表,并发送邮件。

#mysql数据变更跟踪

随机阅读

qrcode
访问手机版