MySQL Tech-Feed (en)
channel_failover.pl v0.02
Starting and stopping, status and failover is possible now. Script basically works but should be made a bit more sophisticated still…
Let me know your findings and wishes.
Taxonomy upgrade extras:
Closing Circle again and channel_failover script
One thing I forgot to mention: We lost Cluster B. So we rebuilt Cluster B from Cluster A.
Then we set-up channel ch1 from Cluster A to B. This worked fine. When we wanted to set-up Channel ch3 from Cluster B to A we got troubles starting the Slave.
We finally managed to start the Slave when we truncated the ndb_apply_status table. In the documentation is also something mentioned that a RESET SLAVE should work.
And travelling back from a customer I found some time to write a script to show the status of my …
Taxonomy upgrade extras:
Query and traffic
Hello Ky,
Yes. You got me right! I meant the query on ndb_binlog_index.
With no traffic I mean NO DML statements (INSERT, UPDATE, DELETE, etc.) on that Cluster.
Thanks for asking and clearing this up!
Regards, Oli
Taxonomy upgrade extras:
Careful using log_slave_updates
Hi Krishna,
Why do you think we should be carful using log_slave_updates in circular replication set-up’s?
Regards, Oli
Taxonomy upgrade extras:
MySQL Cluster - Cluster circular replication with 2 replication channels
A few days ago I had to deal with MySQL Cluster replication. I did not do this for a while so I was prepared to expect some interesting surprises once again.
For those who MySQL Cluster - Cluster circular replication is the daily business they may skip this article. For all the others they possibly can profit from our learnings.
I am talking about the following MySQL Cluster set-up:

More detailed information about such set-ups you can find in the MySQL Cluster documentation.
Situations that lead to a …
Taxonomy upgrade extras: English Replication Mysql Cluster Channel Failover Circular
Same test for InnoDB
I forgot to mention in the main post that I did these tests with 5.1.50.
Settings for MyISAM this time:
key_buffer_size = 8M sort_buffer_size = 2M read_buffer_size = 128k myisam_sort_buffer_size = 8M
Settings for InnoDB:
# plugin not built-in innodb_file_per_table = 1 innodb_log_file_size = 128m innodb_buffer_pool_size = 384m innodb-flush_log_at_trx_commit = 0 innodb_log_files_in_group = 3 innodb_support_xa = 0
InnoDB table WITHOUT …
Taxonomy upgrade extras:
How can I find what InnoDB version I am using?
In the old days everything was simpler. We had one maker of our favourite database management system and possibly the choice between different Storage Engines. Mostly the decision has to be taken between MyISAM and InnoDB. When you care about your data integrity you have chosen InnoDB.
Nowadays it is more complex. We have several different makers of our favourite database management system: Oracle/MySQL, Monty Program AB and Percona with their products: MySQL, MariaDB and Percona Server.
We have different …
Taxonomy upgrade extras: English Storage Engine Innodb Plugin Pbxt Version Xtradb Builtin
Impact of indices on MySQL
It is generally well known that indexes help a lot to speed up database queries (especially SELECT but also UPDATE and DELETE). It is less known, that indexes also have some disadvantages.
One of these disadvantages is, that indexes require space in memory and on disk. An other disadvantage of indexes is, that they slow down DML statements like INSERT and DELETE.
We often see at our customers that they do not realized this behavior. Now I found the time to show the impact of (too) many indexes graphically. …
Taxonomy upgrade extras: English Performance Tuning Index
MySQL logon and logoff trigger for auditing
A while ago I did some research about MySQL audit functionality and logon a and logoff triggers. MySQL and MariaDB provide a logon trigger in the form of the init_connect variable but no logoff trigger where most of the work for auditing would be done. When we would have a logoff trigger we could track the login and possibility some activity of a user and implement auditing functionality.
Yesterday when I was looking into the code for an answer to the question of one of my customers this research came into …
Taxonomy upgrade extras: English Logon Trigger Trigger Login Trigger Audit Sql/Psm
Transactional memory resident tables with PBXT
Introduction
In his presentation about PBXT at the DOAG Conference 2010 Paul McCullagh was speaking about memory resident PBXT tables. They will be available in version 1.1 of the PBXT Storage Engine Plugin. Memory resident PBXT tables should have similar characteristics like normal MySQL MEMORY</span> tables</a>. But in addition to the MEMORY tables they are transactional and can handle BLOB</span> and TEXT attributes.
An alternative to this feature would be the MySQL dynamic heap row …
Taxonomy upgrade extras: English Storage Engine Transaction Memory Plugin Resident Pbxt Blob Memory Table
MyEnv for MySQL Multi-Database set-ups
This week I showed one of my customers our MyEnv. He was very interested in it and suggested to make it known in public. In fact MyEnv is available for download already several years…
But I did not have the heart yet to announce it more publicly because it was not end user ready at all. So I used the weekend to make it nicer, consolidated some of the code, dropped old stuff etc. Now I think it is acceptable to use for public but not perfect.
So what is MyEnv?
MyEnv is a set of scripts to run …
Taxonomy upgrade extras: Mysql Environment Database Virtualization Consolidation Saas Multi Instance Myenv
How many warm MyISAM key blocks do you have?
When you are working with MyISAM [ 1 ] tables MySQL provides a feature called the Midpoint Insertion Strategy [ 2 ]. You can enable it with the parameter key_cache_division_limit [ 3 ].
By default, the key cache management system uses a simple LRU [ 4 ] strategy for choosing key cache blocks to be purged:

When using the Midpoint Insertion Strategy feature, the LRU chain is divided into two parts:
- the hot sub list
and
- the warm sub list.
The division point between those two parts is not fixed, but the …
Taxonomy upgrade extras: English Myisam Key Cache Block Midpoint Insertion Strategy Lru Warm Blocks
Feature request at MySQL
Bug #57532: Warm key blocks in MyISAM key_cache structure could be reported
And for MariaDB: https://lists.launchpad.net/maria-developers/msg03663.html
Taxonomy upgrade extras:
Disadvantages of explicitly NOT using InnoDB Primary Keys?
We recently had the case with one of our customers where we got externally generated random hash values (up to 70 bytes) and they were used as Primary Keys in InnoDB.
As we know, this is not a very good idea because the size of all secondary indexes becomes large and because a random hash value as a Primary Key gives us a bad locality of our rows in the table 1.
If we do not specify a Primary Key and have no Unique Key InnoDB generates a hidden Clustered Index based on the Row ID which is a 6 byte field. …
Taxonomy upgrade extras: Innodb Primary Key Locality
Which table is hit by an InnoDB page corruption?
InnoDB is known to have crash-recovery capabilities and thus is called a crash safe storage engine (in contrary to MyISAM). Nevertheless under certain circumstances it seems like InnoDB pages can get corrupt during a crash and then a manual crash-recovery is needed.
Oracle/MySQL blames in such cases the Operating System, the I/O system or the hardware. What we have seen is that such incidents occur more often on Windows systems and when people are running their databases in a virtualized environment …
Taxonomy upgrade extras: Recovery Data Innodb Corruption Crash Rescue Innochecksum Vmware
MySQL Cluster Local Checkpoint (LCP) and Global Checkpoint (GCP)
MySQL Cluster is mainly an in-memory database. Nevertheless it requires a good I/O system for writing various different information to disk.
The information MySQL Cluster writes to disk are the:
- Global Checkpoints (GCP) which are the transactions.
- Local Checkpoints (LCP) which is a dirty image of the data.
- Backup.
In the following schema (a 2-node Cluster) you can see what is related to each other:

Please find here the meaning of each parameter:
Taxonomy upgrade extras: English Mysql Cluster Parameter Configuration Local Checkpoint Lcp Global Checkpoint Gcp
How the MySQL Optimizer with MySQL Cluster is cheating you...
At a customer we had a nice example of how the MySQL Optimizer is cheating when used in combination with the MySQL Cluster. The customer had queries running not too slow in the development environment but when he tried them on the acceptance test environment (with more data) the query was running much too long which was unacceptable because this query can occur many times per second.
What has happened?
First of all we had a look at the execution plan of the query generated by the MySQL Optimizer:
EXPLAIN …Taxonomy upgrade extras: Mysql View Mysql Cluster Hint Optimizer
FromDual - The MySQL consulting company goes operational today!
[http://www.blogger.com/profile/11195863756524022642 Shinguz] said…
Hi Ivan
Thanks a lot for your wishes!
Indeed it started very interesting yet… :)
Oli
Taxonomy upgrade extras:
FromDual - The MySQL consulting company goes operational today!
[http://www.blogger.com/profile/11195863756524022642 Shinguz] said…
Hello Henrik,
Thank you very much for your wishes and all you have done already!
Oli
Taxonomy upgrade extras:
FromDual - The MySQL consulting company goes operational today!
[http://www.blogger.com/profile/11195863756524022642 Shinguz] said…
Hi Ronald, hi Fortxun,
Thank you very much for your wishes. I hope we will meet once in a while (again)…
Oli
Taxonomy upgrade extras:

