标签: binlog

mysql中的binlog是什么?

我已经设置了 mysql 参数 innodb_flush_log_at_trx_commit=0。这意味着 mysql 每秒将事务刷新到 HDD 1 次。如果 mysql 因此刷新而失败(由于断电),我是否会丢失这些事务中的数据。或者 mysql 会在每次事务后将它们保存在数据文件 (ibdata1) 中,而不管 binlog 刷新如何?

谢谢。

mysql binlog

14
推荐指数
2
解决办法
2万
查看次数

MySQL二进制日志复制:可以设置为忽略错误吗?

我正在运行一个主从MySQL二进制日志复制系统(p!),对于某些数据,它不同步(意味着,主机拥有的数据多于从机).但是奴隶经常在最轻微的MySQL错误上停止,这可以被禁用吗?(也许是复制奴隶的my.cnf设置ignore-replicating-errors或者某种类型;))

这就是发生的事情,当奴隶试图复制一个不存在的物品时,奴隶就会死亡.快速查看SHOW SLAVE STATUS\G;

       Slave-IO-Running: Yes
      Slave-SQL-Running: No
        Replicate-Do-DB: 
             Last-Errno: 1062
             Last-Error: Error 'Duplicate entry '15218' for key 1' on query. Default database: 'db'. Query: 'INSERT INTO db.table ( FIELDS ) VALUES ( VALUES )'
Run Code Online (Sandbox Code Playgroud)

我通过执行以下操作立即修复(一旦我意识到奴隶已经停止):

STOP SLAVE;
RESET SLAVE;
START SLAVE;
Run Code Online (Sandbox Code Playgroud)

... ...最近这已经变得有点烦人了,在我吐出某种PHP为我做这个之前,我想知道是否有一些my.cnf条目在第一次错误时不会杀死奴隶.

干杯,

/ MP

mysql replication binlog mysql-error-1062

11
推荐指数
2
解决办法
2万
查看次数

想为mongodb做一个增量备份.日记?OPLOG?

我想每天备份一个mongodb数据库,可能是mongodump.为了不丢失任何数据,我希望这是渐进式的,所以如果在一天中间出现问题,我需要能够重播当天的更改直到完成mongorestore之后的故障点.

我是否正确理解我需要使用oplog?还是记录答案?我尝试过以下操作:

  1. 将我的mongo数据库转换为只有一个的副本集,以便创建一个oplog.(这感觉非常hacky)
  2. 使用--oplog选项重新启动mongod
  3. 执行应记录在oplog中的更改

但是,没有任何东西存储在oplog中.进行此类增量备份的最佳方法是什么?我基本上都在寻找类似的方法来重放mysql binlog.

谢谢

backup binlog journaling mongodb

8
推荐指数
1
解决办法
1万
查看次数

搜索MySQL Bin日志以查询

是否可以在mysql bin日志中查询特定查询?例如,假设我想知道在过去一小时内是否有人做了特定的查询(比如'更新tableX,其中userName ='bob'").我只是想查看最近是否运行了某个特定查询.....

mysql binlog mysqlbinlog

7
推荐指数
2
解决办法
1万
查看次数

Binlog MySQL Replication是一个"伤害之袋".有什么好的选择吗?

我诚实地尝试 这个 ,仍然发现我的镜像服务器,设置为复制从服务器仍然落后.我的应用程序的用户群不断增长,现在我已经达到了无法"关闭"到"重新同步"数据库的程度(甚至在周末都没有).

无论如何,我的问题是:是否有任何合理的,负担得起的替代binlog复制?我有两个服务器,所以不会考虑购买第三个用于负载平衡,除非它是唯一的选择.

干杯,

/ MP

mysql replication binlog

6
推荐指数
1
解决办法
1319
查看次数

在mysql期间缓慢插入和更新命令以进行红移复制

我正在尝试将复制服务器从MySQL转换为redshift,为此,我正在解析MySQL binlog.对于初始复制,我正在进行mysql表的转储,将其转换为CSV文件并将其上传到S3,然后使用redshift copy命令.为此,性能是有效的.

在初始复制之后,对于我在读取binlog时的连续同步,必须按顺序运行插入和更新,这非常慢.

有什么可以提高性能吗?

我能想到的一个可能的解决方案是将语句包装在事务中,然后立即发送事务,以避免多个网络调用.但这并不能解决redshift中单个更新和插入语句运行速度非常慢的问题.单个更新语句需要6秒.知道redshift的局限性(它是一个柱状数据库和单行插入会很慢)可以做些什么来解决这些限制?


编辑1:关于DMS:我想用红移作为仓库解决方案,其中只是复制我们的MySQL不断,我不想denormalise数据,因为我有在MySQL 170+表.在进行复制期间,DMS在一天内多次显示许多错误,并在一两天后完全失败,并且很难解密DMS错误日志.此外,当我删除并重新加载表时,它会删除redshift上的现有表并创建新表,然后开始插入导致我的情况下停机的数据.我想要的是创建一个新表,然后用新表切换旧表并删除旧表

binlog amazon-redshift

6
推荐指数
1
解决办法
416
查看次数

阅读mongoDB Binlogs

在MySQL中,我通过执行调试如何更改记录

mysqlbinlog bin-88.log | grep“ record-id” --before = 2 --after = 2

我如何对mongo做类似的事情?

谢谢!

binlog mongodb

5
推荐指数
2
解决办法
3830
查看次数

MySQL - 有没有办法在没有脚本的情况下将bin日志位置包含在转储文件中

有没有办法在没有脚本的情况下将复制bin日志位置包含在转储文件中?

我知道有一些方法可以通过脚本编写,在转储文件中附加一行等等.但是我记得曾经读过它可能通过mysqldump中的一个简单参数,是真的,如果是的话语法是什么?

非常感谢

mysql replication binlog dump

5
推荐指数
1
解决办法
5964
查看次数

如何使用 Node.js 或 PHP 实时监听 MySQL 数据库的变化

我需要创建一个包含多个数据库的系统,其中一个是主数据库,该数据库只需将结构更改复制到其他数据库,例如:

当我在系统中注册新用户时,系统会自动创建主数据库的结构副本,但该数据库不会将插入的寄存器或更新发送到主数据库,只有主数据库在更新时将所有结构更改发送到从数据库,因此我需要创建一个脚本或实现工具来捕获数据库更新,以便在所有从站上实时执行更新。

我向 AWS 支持人员发送了一个问题,他们建议我实施 phyton 脚本或集成另一个允许进行 binlog 流式传输以将这些更改复制到从属数据库的库。


AWS支持答案:

您可以在此处遵循本指南[1],您可以跳过 Kinesis(AWS 服务)部分并直接编写代码,而不是将其放入 Kinesis 流中。您需要在数据库集群上启用 binlog 并监听日志。根据事件,您可以添加逻辑以在子数据库上执行数据库更新。为了复制主数据库架构,我建议在任何子数据库需要配置和导入该架构之前使用 mysqldump CLI 工具导出主数据库的架构。然后根据您编写的逻辑,使用 binlog 脚本将更改推送到您的子数据库。

[1] https://aws.amazon.com/blogs/database/streaming-changes-in-a-database-with-amazon-kinesis/

php mysql binlog amazon-web-services node.js

1
推荐指数
1
解决办法
6175
查看次数