Open taraso opened 3 years ago
https://github.com/google/mysql-ripple/issues/25 the files produced by Ripple are a different format.
@pushrax is correct, Ripple produces binlog files of a slightly different format than Percona Server/MySQL/MariaDB. Thus you cannot read them using mysqlbinlog CLI. And Ripple will not be able to read binlog files produced by MySQL as well, so you can't just put MySQL binlog files into Ripple data directory. Ripple has to download the binlogs from the master itself.
And yes, Ripple requires GTID mode to be on in order for it to be able to replicate from the master.
Ok, understood. This is kinda a bummer tho...
So my understanding is that the only use case for ripple would be to act as a middleman and proxy binlogs. Out of curiosity (I'm not a C/C++ dev here for sure), why not use the library/code from vanilla MySQL? I assume ripple has to provide a proper interface to clients anyway and as it reads from an upstream server it has to understand the binlogs served by those servers. But using the part of MySQL server and basically stripping off storage engine functionality + maybe adding some extra features for binlogs specifically would be an easier path? Again, an awesome work done here, I'm just finding the tool a bit limited to certain use cases, and that'd be super cool to use it for feeding binlog backups taken somehow else, for instance, or use it as a merging point of multiple source binlog backups, etc.
Any updates/roadmap on 2022?
I got the same error from MariaDB 10.5.12 mysqlbinlog
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#700101 8:00:00 server id 112211 end_log_pos 244 Start: binlog v 4, server v 5.6.0-ripple created 700101 8:00:00
BINLOG '
AAAAAA9TtgEA8AAAAPQAAAAAAAQANS42LjAtcmlwcGxlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAAAAACAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEEwQA
'/*!*/;
# at 244
#700101 8:00:00 server id 1 end_log_pos 492 ? 0x000a0a0a Start: binlog v 4, server v 10.5.12-MariaDB-1:10.5.12+maria~focal-log created 700101 8:00:00 at startup
ROLLBACK/*!*/;
BINLOG '
AAAAAA8BAAAA+AAAAOwBAAAAAAQAMTAuNS4xMi1NYXJpYURCLTE6MTAuNS4xMittYXJpYX5mb2Nh
bC1sb2cAAAAAAAAAAADZCdRhEzgNAAgAEgAEBAQEEgAA5AAEGggAAAAICAgCAAAACgoKAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEEwQADQgICAoKCgA=
'/*!*/;
ERROR: Error in Log_event::read_log_event(): 'Found invalid event in binary log', data_len: 43, event_type: 150
ERROR: Could not read entry at offset 492: Error in log format or read error.
Hello,
I tried setting up ripple and making it read binlogs from PS 5.7.29. I had the issues:
1) it doesn't seem to be working when GTID mode is off on the master 2) When I turned on GTID mode, Ripple was able to connect, but the binlog file it produced seems to be corrupt:
Binlog from master:
on master:
Ripple log:
My goal was to use MySQL binlogs by placing them in the ripple data dir, so that it would pick up and serve them to clients. I didn't have much luck with that though. Also, there is side a effect when Ripple wipes out binlogs it thinks are impossible to read. Any thoughts on this one?