Pedro’s dinner was full! I didn’t count, but we had 9 tables of 8-10 people or so – dare I say almost 100 people? Lots of beer, margaritas, and good conversations! Here are a few pictures from the event:
Wow! A lot has changed since the last MySQL conference I blogged about in 2007.
MySQL has been acquired twice: once as MySQL by Sun and the second time around bundled with Sun when Oracle bought Sun. The conference is no longer organized by O’Reilly but by Percona. And the MySQL database itself has changed — we were talking about new features in MySQL 5.1, which wasn’t released yet, along with Falcon (where did it go?). 5.1 has long since been released as has 5.5, and we’re now talking about 5.6 instead of 6.0. There was no “Cloud” on the horizon, nor was there MariaDB, XtraDB, Drizzle, Schooner, or any of the other offshoots of MySQL, all of which are creating a new buzz around the product.
Yet, one thing remains constant: the vibrant community around MySQL. In spite of all the changes in technology, ownership, versions, …[Read more]
This release is just a quick bug fix release of an older 1.1.1 version of the plug-in. It’s long overdue but I’ve managed to fix “” problem only couple weeks ago. I’ve distributed the new version to the folks who have reached out to me by email of via blog reporting the issue in the [...]
How much memory does my Oracle instance use? How much memory do my database connections use?
These are questions that can help with capacity planning of your server’s Physical and Virtual memory. There are several write ups out there on the web that attempt to address these questions. From what I could gather from them, there is only one truly good way to tell exactly how much memory is currently in use by an oracle instance (or any other system, http, mysql, etc), as well as the average memory usage for oracle dedicated connection processes.
This technique makes use of the “pmap” command. This command displays the real current memory usage of a process broken down by memory segment types. By parsing the output of pmap, we can make several useful calculations. Note that this command is available for Linux, Solaris and HP-UX servers. It is also apparently available on AIX as “procmap”.
I have tested the below …[Read more]
The MySQL errorlog is an important point of reference when administering a MySQL Server. We can grasp much about the state of our MySQL instance by the informational and error messages written out to it by our MySQL daemon. Our monitoring suite is set up to check the mysqld error log file periodically for any new nasties logged and then it alerts us if there’s anything to know about. Recently I was asked to investigate some replication outage alerts a colleague had received overnight. One of the primary directions I took was the error log file. This is where I would expect find any evidence of replication being stopped or crashes etc – I was looking for anything that could fill me in on the causes of replication alerts. When I ran the command to tail the log I was shocked to see the log was totally empty.Confused with what I didn’t see, I listed the file info and saw that the file was located in the …[Read more]
This post was thought of as an attempt to make some performance test with new multi-threaded replication in 5.6, at least that was my initial intention. Based on Luis Soarez – Replication Team Leader in Oracle – post. I wanted to play with new set of variables and features in order to understand how new multi-threaded replication works and make some performance tests.
I will start with my negative impressions about how to setup new replication features:
– Lack of documentation: I know this is a labs release and most of new features are not documented yet, I’ve just found the Luis blog which has some definitions but is mostly an overview than a manual.
– Variables not present: mts% variables are no longer present in last release.
Good …[Read more]
Isn’t that that time of the year again? Yes, it is — it’s time for our annual Oracle Bloggers Meetup and of course Oracle is piggybacking OpenWorld with the meetup again! ;) What: Oracle Bloggers Meetup 2011 When: Wed, 5-Oct-2011, 5:00pm Where: Main Dining Room, Jillian’s Billiards @ Metreon, 101 Fourth Street, San Francisco, CA [...]
I’ve been following the development of Tungsten Replicator for quiet some time now, and recently was fortunate enough to find the time to take a look at the product in more detail. If you haven’t heard of Tungsten Replicator yet, it’s an open source database replication engine that can be used to complement or completely [...]
MySQL Replication is a powerful tool and it’s hard to find a
production system not using it. On the other hand debugging
replication issues can be very hard and time consuming.
Especially if your replication setup is not straightforward and
you are using filtering of some kind.
Recently we got an alert from our monitoring system that replication stopped on production slave with the following error:
Can't find record in 'some_table', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log binlog.000011, end_log_pos 735766642
This means that a ROW-based replication event was going to be applied on slave, but could not find the row it was supposed to be applied to. This is something I like about ROW format — it allows you to catch such data synchronization issues right away. In this particular case MIXED format was used, but if this event was written in STATEMENT format, slave would just apply it …[Read more]
A few days ago, we faced an interesting problem on one of our
customer’s slave mysqld servers. An Alter for adding a new
column was run on master server took 542 seconds where as it took
few hours on the slave server to complete due to a SELECT
blocking the Alter was not allowed to complete.
Here is the the select on the master server and it’s execution time from the binary logs.
# at 825737566 #110720 19:55:21 server id 31415 end_log_pos 825737730 Query thread_id=83250629 exec_time=542 error_code=0 use collect/*!*/; SET TIMESTAMP=1311216921/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; ALTER TABLE `track` ADD `source_track_id` int(10) UNSIGNED NULL DEFAULT NULL AFTER `vendor_track_id` /*!*/;
Alter statement completed well on the master and it got blocked by a SELECT on the slave where as the time frames of the …[Read more]