Would You Like Some Transactions With That Table? MySQL Would You Like Some Transactions With That Table? Oct 29, 2009
Slides Are Available Oct 29, 2009
What Is MySQL? Most popular open source RDBMS Widely used Open source means 'free' Really? No cost at all? Widely used Sabre – airline reservations Google LinkedIn What does Oracle DBA need to know? Many differences... Oct 29, 2009
Why Should I Care? I'm an Oracle DBA Why should I learn about MySQL? MySQL means nothing to me It isn't a 'real' RDBMS Why should I learn about MySQL? MySQL is being used by real businesses Can't hurt your employability Many jobs expect DBA to know multiple RDBMS Why not learn one that is widely used? And it's free – you can download and install right now! Oct 29, 2009
Oracle DBA Perspective What will we look at? Installing Start/stop How database/tables stored Backups Transactions Storage engines Oct 29, 2009
My Message Compare MySQL to Oracle Not to be critical of MySQL Not to praise Oracle Make Oracle DBAs aware How much we assume about RDBMS Because Oracle does things a certain way MySQL is very different Assuming it is like Oracle can cause serious problems Does your business understand the differences? The cost of being 'free'? Oct 29, 2009
MySQL Versions MySQL Enterprise MySQL Community Edition Have to buy support MySQL Community Edition The 'free' version MySQL Community Edition Preview Release Available for download Ready for prime time? Oracle doesn't offer 12g for trial download... Oct 29, 2009
MySQL Versions Oct 29, 2009
MySQL – Where Did It Come From? Used to store web site logs Transactions What's that? If we lose some records So what? Supported by an individual Do your own thing Recovery Not to worry, plenty more web logs every day Oct 29, 2009
Some Differences – MySQL/Oracle Database Schema a group of database objects Database user Maps to a database schema MySQL Server Databases Group of database objects Users don't map to database Oct 29, 2009
Some Differences – MySQL/Oracle Storage engines Transaction support Performance Hot backup Binary logging and recovery Table locking Corruption Misc. Oct 29, 2009
Storage Engines MySQL gives you a choice MySQL storage engines Oracle, all transactional all the time (OATATT) MySQL storage engines MyISAM (IBM, Indexed Sequential Access Method) Very fast read InnoDB Transactional, like Oracle Separate software, owned by Oracle Many others See next chart Oct 29, 2009
Storage Engines Oct 29, 2009
InnoDB Storage Engine Imagine mixing MyISAM, InnoDB tables in a statement What does 'transactional' mean? What does “recovery” mean? Oct 29, 2009
CSV Storage Engine CSV storage engine Stores data in text files Using comma-separated format Oct 29, 2009
Blackhole Storage Engine My favorite This is where we store all the data relating to the Raiders and their 'Commitment to Excellence' Oct 29, 2009
Yeah, But... No problem Cool, but I'll just make all the tables InnoDB MySQL catalog (system?) tables are MyISAM Can't change them Table storage engine can be changed at any time Privileged users No one should do this, but...stuff happens Create table syntax Supports overriding default storage engine Oct 29, 2009
Transaction Support MyISAM Default table type Table type of system databases Does not support transactions Example Writing to MyISAM tables and server crashes Who know what was and wasn't written to tables No recovery Oct 29, 2009
Performance Many large MySQL servers in use Optimizer Performance must be good or good enough for 'free' Optimizer Different storage engines How to optimize statement that has MyISAM tables InnoDB tables Does it support all storage engines you are using? Oct 29, 2009
Hot Backup MySQL does not have this Backup option #1 Backup option #2 Shutdown server, copy all files, startup server Backup option #2 Lock all tables Dump all data to a dump file Dump file is set of SQL to recreate database Very slow to recover Backup option #3 Buy hot backup software product Not free Oct 29, 2009
Binary Logging and Recovery MySQL Default, no logging You can configure binary logging Three formats Statement-based Row-based Mixed Binary log filenames have format binlog.000001, binlog.000002, etc. You must apply them in correct order Oct 29, 2009
MySQL Binary Logs MySQL does not have any way of knowing when replaying the binary logs which statements need to be executed and which are already committed. Oracle DBA doesn't worry about this Oracle checks and tells you which archived redo log is needed next Oracle won't allow archived redo logs to be applied out of order Oct 29, 2009
Binary Logging Formats Oct 29, 2009
Binary Log Issues Oct 29, 2009
Table Locking MyISAM storage engine InnoDB storage engine Does not support row level locking Table locks Performance? InnoDB storage engine Supports row level locking Oct 29, 2009
Corruption Oracle MySQL I have rarely seen any cases But all tables support transactions MySQL What does it mean to rollback When different storage engines involved Some support transactions, some don't Some tables will be rolled back Others won't Is this corruption? Oct 29, 2009
MySQL Corruption Issues Good read Discusses corruption issues in MySQL engines I'm not saying this happens often But you need to be aware of these issues Another difference from Oracle Different storage engines, different corruption mechanisms http://www.mysqlperformanceblog.com/2006/07 /30/mysql-crash-recovery/ Oct 29, 2009
MySQL Issues Misc Referential Integrity Triggers Directload Some storage engines support Triggers Row-level, not statement-level Directload Not supported Parallel Query Oct 29, 2009
MySQL Issues White Paper Compares MySQL to PostgreSQL PostgreSQL, another open source RDBMS More like Oracle than MySQL Discusses issues with MySQL I'm not endorsing PostgreSQL But the whitepaper is very good Google PostgreSQL vs. MySQL A Comparison of Enterprise Suitability Oct 29, 2009
MySQL Table Storage MyISAM InnoDB Each table has three files <filename>.frm – Data dictonary information <filename>.MYD – table data <filename>.MYI – table indexes InnoDB Data and indexes in a tablespaces Made up of one or more datafiles Sound familiar? Oct 29, 2009
Documentation Online Oct 29, 2009
Documentation Online Oct 29, 2009
Documentation Online Oct 29, 2009
Talk Is Cheap A little less conversation A little more action Download and install MySQL to your laptop now Slides show the steps Windows You will have a fully functional MySQL server Start learning right now Oct 29, 2009
Install MySQL – Windows Windows Vista 6.0 Service Pack 1 Screenshots shown Windows XP Professional Version 5.1 Same steps Very minor differences in what you see Oct 29, 2009
Downloads? Oct 29, 2009
Downloads? Oct 29, 2009
Enterprise Version Oct 29, 2009
Community Version Oct 29, 2009
Windows Downloads Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Uncheck Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation Check Oct 29, 2009
Windows Installation Oct 29, 2009
Windows Installation mysql Oct 29, 2009
Windows Installation Oct 29, 2009
Accessing MySQL Windows Click Start Programs MySQL MySQL Server 5.1 MySQL Command Line Client Right-click Send to Desktop (Create Shortcut) Double-click desktop icon Oct 29, 2009
Accessing MySQL Windows Shortcut created at installation mysql Oct 29, 2009
mysql client utility Similar to SQL*Plus Oct 29, 2009
Now What? Stop, start MySQL server What databases are available show databases; Set default database use <dbname> What tables are in the database show tables; Oct 29, 2009
Windows Vista Stop/Start Services Start Settings Control Panel System and Maintenance Administrative Tools Scroll down to MySQL, highlight Upper left, options for Stop, Pause, Restart If MySQL is down, option to Start Oct 29, 2009
Windows XP Stop/Start Command line Services net stop mysql, net start mysql Services Start Control Panel Administrative Tools Services window Scroll down to MySQL, highlight Upper left, options for Stop, Pause, Restart If MySQL is down, option to Start Oct 29, 2009
Oct 29, 2009
Oct 29, 2009
System Databases INFORMATION_SCHEMA MYSQL database TEST Catalog database MYSQL database User and privilege information TEST For you to play in... These databases are created at installation Oct 29, 2009
MySQL Server Configuration Controlled by 'option' file(s) Similar to Oracle pfile or spfile SHOW VARIABLES See current values Standard location(s) Search order One of the most common problems Persons don't know where these files are Make changes that don't take affect Can't find the file or files Oct 29, 2009
Option File(s) MySQL searches multiple locations Uses most recent value of each parameter How to know all files being scanned by MySQL? mysql –help Note: dash dash help Oct 29, 2009
Option File Oct 29, 2009
Option File Oct 29, 2009
Option File Oct 29, 2009
Option File Oct 29, 2009
Option File Oct 29, 2009
MySQL Filesystem Layout From option file (my.ini) basedir Where software is stored datadir Where table data is stored Oct 29, 2009
MySQL basedir Oct 29, 2009
MySQL basedir/bin Oct 29, 2009
MySQL datadir Oct 29, 2009
MySQL Log Files General Query Log Binary Log Slow Query Log Error Log All client requests Binary Log Statements that modify data Slow Query Log Statements that take longer than 10 seconds Error Log Server messages Oct 29, 2009
MySQL Log Files Find log file locations Oct 29, 2009
Summary MySQL is 'free' MySQL is widely used May need other products to make it work for you Hot backup for example MySQL is widely used MySQL is very different from Oracle DBA tasks and issues will be different MySQL is not better or worse than Oracle Just very different Oct 29, 2009
The End? You now have a MySQL server installed No excuses Next? Learn it, live it, love it Update your resume Next? Multiple MySQL servers on same machine Replication etc. Oct 29, 2009