Friday, January 16, 2009

MySQL and Oracle: Top 10 things I love about them

Today's Competitive Global Economy Environment for DBAs
With today's competitive environments, the more marketable you are the better. Being flexible and being able to support different solutions is very important. Environments surrounding databases are getting more complex, so increasing your expertise in different areas is important. There are a lot of options with application servers, storage, data warehousing, high availability, etc. Another strong skill combination is Oracle and MySQL. Oracle is the largest database vendor and MySQL is the fastest growing so you are going to see both a lot in the future so why not be able to support both.

What I love about MySQL

I've spent the last two years working with open source and MySQL. It's been two of my coolest years in technology. My top ten things I love about MySQL:
  1. In working with MySQL customers their is a lot of innovation and think out of the box mentality.
  2. MySQL environments use a lot of different software and tools. Shell scripting, perl scripts, awk, sed all remind me of the Oracle 7 environments which were a lot of fun to work in. Being very strong with Linux/Unix and the tools makes you a more marketable MySQL DBA.
  3. MySQL surrounding software such as Apache, JBoss, Memcache, Cacti, Nagios, Mon, phpMyAdmin, PHP, etc. makes it a fun environment for the technical junkie.
  4. MySQL's ability to leverage the power of the Internet is incredible to be a part of.
  5. The open software environment that is all about contribuing to the greater good, sharing knowledge so everybody grows and mass collaboration is incredible powerful. Its fun to be part of the wave.
  6. The MySQL mentality has been one of the richest experiences of my life. Everybody being tied in virtually, knowing my peers in Germany, Sweden and all over the world as well as my peers in the US has make it fantastic to be part of a company that really understands how to function as a "team" in a global econony.
  7. The MySQL environment of we are a team, we all work together, share and work to accomplish the goals of the team and the company. MySQL is one of the few companies that can really get everyone working together and motivated towards a common goal.
  8. Learning the power of MySQL and why more new MySQL database servers are being created than all the proprietary vendors combined.
  9. MySQL's empowering of the individual employee to accomplish great things. Where the emphasis is that the individual employee really does matter.
  10. The incredible vision of the leaders of MySQL and the absolutely fantastic people within the MySQL teams.

What I love about Oracle

I've spent spent the last 20 years working with Oracle (RAC, Data Guard, Streams, backup/recovery, performance tuning, Oracle Fusion Middleware (SOA, BPEL, Web Services, XML, Oracle Business Rules, JDeveloper). My top ten things I love about Oracle products:
  1. The database server is an aircraft carrier solution with a task force. :) When you have complex problems to solve Oracle has powerful tools to solve them.
  2. Oracle RAC is a very robust, scalable clustered solution that is great to work with.
  3. Oracle Streams while complex allows you to solve tons of data sharing problems.
  4. Oracle Fusion Middleware offers a great middle-tier enterprise solution for large companies. Working with BPEL, SOA, Web Services, XML, etc. is like being a kid in a candy store.
  5. I've just flat out loved working with Oracle products and Oracle environments.
  6. The fantastic people I've met in Oracle user groups, the list is endless.
  7. The incredibly dedicated people I've met at Oracle that work in all the different product groups.
  8. Oracle's done a great job of integrating organizations they've purchased and achieving their visions.
  9. I've always had fun performance tuning Oracle multi-tiered architectures. Maybe this is an incurable disease (ha ha).
  10. I've always found the more I've learned about Oracle products the more money I've been able to make (always a good thing). My personal investment in Oracle technology has always paid off.

LAMP Skills for the MySQL DBA

MySQL runs on lots of Operating Systems
The MySQL database server runs with more different operating systems than any other database. The reason being is not only does it run on all the popular operating systems but you can download the source, make a few tweaks and run it on any operating system (if you're a bit twiddler). Yet the place where you're likely to see MySQL the most is with LAMP environments. Of course the L in Linux means Red Hat, SUSE, Centos, Fedora, Ubuntu, etc.

Operating Systems I use with MySQL
The operating systems I use the most with MySQL include Red Hat, Windows, Fedora 10, Mac OS, Solaris and OpenSolaris.
  • Red Hat and Solaris - use the most when working with customers.
  • Mac OS, Fedora and OpenSolaris - for trying different things and playing around with MySQL. Although I do see some customers using OpenSolaris and CentOS for their production environments.
  • Windows - use mainly for teaching beginning MySQL courses.
VMs I use with Mac OS
I like using Parallels and VM Fusion with my Mac OS environment. Both of these VMs allow me to install any operating system I want and play with MySQL, Oracle, Oracle Fusion Middleare and LAMP stack components.

Software skills to have around MySQL
For most MySQL DBAs in general, they need to have skill in popular software surrounding MySQL. These software skills include:
  • Linux administration - basic admin skills, cron, shell scripting and UNIX power tools (awk, sed, REs, PERL,...)
  • Application Servers - Get good with an application server. Apache is a great one to start out with. Then you can migrate to JBoss, Glassfish or the Oracle Application Server dependent on your goals. MySQL excels in web environments so it really helps for a MySQL DBA to understand the middle-tier in a lot of companies.
  • Popular software - Around MySQL you usually see a lot of oftware like memcache, Nagios, mon, cacti, SQLyou, Navicat, Toad, phpMyAdmin, etc. MySQL is like the open source Sun and a lot of open source revolves around MySQL.
  • Development - I'm still seeing lots of PHP, Java and Ruby around MySQL. Of course .NET is always a player.
  • Benchmarking software - mysqlslap, sql-bench, jmeter, MyBench, sysbench, Apache Bench and supersmack are all good skills to have.
LAMP Skills for the MySQL DBA
It's important for any MySQL DBA to increase their value to an organization and marketability by having strong LAMP or LAMP equivalent skills. As well as be able to work with the software that is used in lots of companies that surround MySQL.