In this third installment in this series, I'll explain why the
smart solution I described in the previous post actually wasn't that good, and
then I go on to explain how to fix it, and why that fix wasn't
such a smart thing after all. So, this was the design we ended
with last time:
We have Oracle replicating to a Materialized
View, this to ensure that we can run triggers when the is a
commit, and then triggers on this Materialized View updates
MariaDB by sending a UDP message to a server that in turn is
connected to MariaDB.
The issue with the above thingy was that a Materialized View by
default is refreshed in it's entirety when there is a refresh, so
if the table has 10.000 rows and 1 …
The theme for this series of posts is, and indicated in the
previous post, "Try and try, again", and there
will be more of this now when I start to make this work by
playing with Oracle, with PL/SQL and with the restrictions of
Oracle Express (which is the version I have available).
So, what we have right now is a way of "sending" SQL statements
from Oracle to MariaDB, the question is when and how to send them
from Oracle. The idea for this was then to use triggers on the
Oracle tables to send the data to MariaDB, like this, assuming we
are trying to replicate the orders table from Oracle to
MariaDB:
In Oracle, and assuming that the
extproc I have that created to send UDP …
We are very happy to introduce a new MySQL utility named
'mysqlbinlogmove', which is used to relocate binary log files.
This utility is one of two new utilities included in MySQL
Utilities release-1.6.0 Alpha. The other utility is
'mysqlgrants', which is used to display the privileges (grants)
of database objects.
Note: I use "binary log" to refer to both "kinds" of binary log
files (binlog and relay log files) in general, and use "binlog"
to refer specifically to those that are not "relay log"
files.
The mysqlbinlogmove utility allows you to move binary log files
to a new location taking care of correctly updating the
respective index file for you. This utility can be very useful if
you want to change the location to store the binlog file and you
want to move all of the binary log files. It is also handy to
archive older binary log files to a new location thereby saving
disk space in the server's partition.
…
We are very happy to introduce a new MySQL utility named “mysqlbinlogmove“, which is used to relocate binary log files. This utility is one of two new utilities included in MySQL Utilities release-1.6.0 Alpha. The other utility is “mysqlgrants“, which is used to display the privileges (grants) of database objects.
Note: I use “binary log” to refer to both “kinds” of binary log files (binlog and relay log files) in general, and use “binlog” to refer specifically to those that are not “relay log” files.
The mysqlbinlogmove utility allows you to move binary log files to a new location taking care of correctly updating the respective index file for you. This utility can be very useful if you want to change the location to store the binlog file and you want to move all of the binary log files. It is also handy to archive older binary log files to a new location thereby saving disk …
[Read more]
The MySQL Utilities Team is pleased to announce the general
availability (GA) release of MySQL Utilities. This release
includes a number of improvements for useabilty, stability, and a
few enhancements. A complete list of all improvements can be
found in our release_notes.
New Enhancements! This release represents a stable release of the
product. Along with several defect patches, we also include the
following enhancements.
- The mysqlserverclone utility now checks diskspace as a prerequisite to cloning the server.
- The --force option was removed from the mysqlfailover utility to remove confusion on its purpose.
- A warning is issued if the mysqld --skip-innodb option is used because this option is ignored in MySQL 5.7 and later.
- Utilities can correctly parse and display the PROXY …
The MySQL Utilities Team is pleased to announce the alpha release
of MySQL Utilities. This release represents a new evolution of
the product including the following enhancements.
- The mysqlprocgrep utility now displays the processes and connections killed during a --kill operation. The displayed rows come from the appropriate SHOW PROCESSLIST entries.
- The mysqlbinlogmove utility was added. It relocates binary log files, and moves files based on their sequence number or modified date.
- The mysqlgrants utility was added. It displays grants per object, and produces reports by user, user with grants, and GRANT statement.
- Health reports can now be generated for a list of slaves without a master specified. In this case, "No master specified" appears for connection status for each slave, instead of an error.
How Can I Download MySQL Utilities? You can download MySQL …
Are you attending Oracle Open World? Would you like to know more
about Oracle DevOps products for managing your MySQL servers? If
so, stop by Tuesday, September 30 at 10:15 in the Hotel
Nikko - Bay View and join us for a hands on lab (HOL9234) for
MySQL Utilities and Connector/Python.
We will present the basics for getting started using Python to
manage your MySQL servers. MySQL Utilities includes utilities for
a wide variety of operations from displaying GRANT statements to
setting up automatic failover for replication.
Check out the abstract for the HOL here.
There are a lot of nice goodies in MySQL 5.7.5 already, but there are also some additional features that we are working on and would like to share with you right now as well. For that we have done a couple of labs releases. In this post we will be referring to the labs release that contains enhanced multi-threaded slave applier and a refreshed version of multi-source replication.
We put these previews out there, among other things, to get early feedback from you. This makes you a very relevant part of MySQL development, since you are in an unique position to influence our work by trying them out and commenting how good or bad was your experience or even just by pointing out things that you would like to improve.
Enhanced Timestamp-based Multi-Threaded Slave Applier.
A lot of time and …
[Read more]The latest and greatest MySQL 5.7 development milestone release (DMR) is out (changelog). It is great to see such a strong and steady cadence of development releases. The latest one, 5.7.5, is packed with awesome features. Let me highlight a few ones related to replication.
Storing Global Transaction Identifiers History in a system table.
MySQL 5.7.5 introduces a new replication system table that is used by the server to save global transaction identifiers (GTIDs) execution history. This means that the user can setup slaves without binary logs and still use GTIDs. Such slaves may not be candidates to replace the master in the event a fail-over needs to be done – they do not have the binary log enabled – but since they save GTID history means that they can auto position themselves in the replication …
[Read more]
Yes, there is a simple way to do this. Although it might not be
so simple unless you know how to do it, so let me show you how
this can be done. It's actually pretty cool. But I'll do this
over a number of blog posts, and this is just an introductory
blog, covering some of the core concepts and components.
But getting this to work wasn't easy, I had to try several things
before I got it right, and it's not really obvious how you make
it work at first, so this is a story along the lines of "If at
first you don't succeed mr Kidd" "Try and try again, mr
Wint" from my favorite villains in the Bond movie "Diamonds
are forever":
So, I had an idea of how to achieve replication from Oracle to
MySQL and I had an idea on how to implement it, and it was rather
simple, so why not try it.
So, part 1 then. Oracle has the ability to let you add a
UDF (User Defined Procedure) just like MariaDB (and
MySQL), …