After having worked for two years and one quarter of a year with
MySQL AB (now Sun), I have decided to resign and
pursue another career.
Before I joined MySQL AB I was working as a database
consultant and application developer. I knew that joining MySQL
would mean giving that up, but I was happy to do so because I
really liked the MySQL product. I was also attracted by the
company itself, the flexible working hours, working from home,
travelling abroad, and, very important, being one of the few
companies that is capable creating FOSS software on a commercial
basis.
I have had a splendid time at MySQL AB, and later Sun. I met lots
of smart people and travelled to a bunch of places I would
probably not've had the chance to visit otherwise. I learned a
lot about the …
Thank you all for you feedback and especially to Matt and Oli for
spotting some serious issues. Hence a new version cmon 1.0.1
is out.
Bugs fixed in 1.0.1 is:
- option handling is fixed (--mysqluser and --mysqlpasswd was not handled properly).
- initd/cmon (the documentation talks about this initd file) is
now included
Please not that you may have to edit and change it a bit (PATHs etc).
Version 1.1 will include:
- possibility to log to other place than syslog.
Its been a while I wrote anything on MySQL and/or Database related things as I was on a long two month vacation and immediately had a job change.
Today I was playing a bit in trying to setup up the ZRM community backup on Cent OS 5 to have a incremental backup mechanism; to see how it works as I never had a chance to use it so far. In the process, I could not find a single source of document which explains the basic steps needed on first-hand setup (or my search did not yield the right docs), so thought of writing and noting it down myself for any future reference. More or less, the instructions should be same for any Linux favor.
Here are the steps:
- First install perl-DBI and perl-XML-Parser modules
sudo yum install perl-DBI perl-XML-Parser
…
Indexes are a great way to improve performed in a MySQL database,
when used appropriately.
When used in-appropriately the impact can be a degradation of
performance.
The following example from Movable Type shows how when reviewing the slow query log I found numerous occurrences of Inserts take 3 or more seconds, with no reported lock contention time for this insert.
# Query_time: 3 Lock_time: 0 Rows_sent: 0 Rows_examined: 0 SET insert_id=6281; INSERT INTO mt_comment (comment_author, comment_blog_id, comment_commenter_id, comment_created_by, comment_created_on, comment_email, comment_entry_id, comment_ip, comment_junk_log, comment_junk_score, comment_junk_status, comment_last_moved_on, comment_modified_by, comment_modified_on, comment_parent_id, comment_text, comment_url, comment_visible) VALUES (...)
The impact here, is that SELECT statements to the mt_comment table …
[Read more]
My 8 year old son is learning to ride a skateboard and his most
recent trick was to skip wearing a helmet. As a father, I had no
choice but to enforce that safety requirement. I'll gladly be
unpopular in order to avoid seeing my son with a head
injury.
Today, a user accidentally deleted 100 or so rows from a critical
table in the MySQL database, with the "aid" of one of the popular
and free GUI query utilities available. While I loath the use of
these utilities, I understand that as a young company, we have
holes in our processes requiring ad-hoc updates. Thankfully, our
development teams are introducing more and more systems for
manufacturing information in a controlled manner.
It wasn't a problem for me to recover, and actually in a sick
way, I enjoy recoveries. Wierdly, I even practice them sometimes,
mostly so I don't look like a fool when it's showtime for real.
Fun stuff as long as the backups are good!
…
My 8 year old son is learning to ride a skateboard and his most
recent trick was to skip wearing a helmet. As a father, I had no
choice but to enforce that safety requirement. I'll gladly be
unpopular in order to avoid seeing my son with a head
injury.
Today, a user accidentally deleted 100 or so rows from a critical
table in the MySQL database, with the "aid" of one of the popular
and free GUI query utilities available. While I loath the use of
these utilities, I understand that sometimes ad-hoc updates are
unavoidable, especially in new systems.
It wasn't a problem for me to recover, and actually in a sick
way, I enjoy recoveries. Wierdly, I even practice them sometimes,
mostly so I don't look like a fool when it's showtime for real.
Fun stuff as long as the backups are good!
But the fact is that I would be negligent as a DBA if I didn't
try to find ways to motivate our teams to operate safely. I wish …
Calvin had a good suggestion for a search filter in the public worklog system on the targeted version that the Worklog task is aiming for. I have thus added the filter to the Forge search pages, as shown to the left. You can select from the dropdown list of versions in the top of the search column and the search will filter automatically to only tasks targeting that version. Cheers.
I volunteered to give a presentation on MySQL at the next NoVaLUG (http://www.novalug.com) meeting, Oct 4th. Topics to include: installation, configuration, administration, replication, backup/restore, architecture, monitoring and troubleshooting. I won’t be deep-diving on any particular topic (too much for the time slot) but, instead, focusing on the basics.
Should be a fun time.
Some observations from the MySQL developer meeting READ MORE
OK, so on Wednesday morning, in Latvia, Monty came up to me and asked if I could add a feature to the MySQL Forge Worklog system to help his team and others track dependencies between worklog tasks. Internally, our worklog system allows developers to track whether one task is dependent upon the completion of another task. So, I took a couple hours and hacked in this functionality to the public Forge worklog system. If a task has dependent "child" tasks, then a new tab in the worklog display shows those dependent tasks. Shown on the right is the "super-task" for the Maria project, which has a number of direct child tasks (some of which have child tasks themselves). As you can see, the "Dependent Tasks" tab now shows these sub-tasks. Enjoy.