omnisql is a command line tool for DBAs needing to issue ad-hoc queries against sharded data.
Instead of logging in separately to multiple databases to issue the same query, groups of databases can be specified in a configuration file and queries will be automatically issued against all MySQL instances.
System Requirements
Required perl Modules:
- Pod::Usage
- Getopt::Long
- XML::SimpleObject
- DBI
- DBD::mysql
- Term::ReadLine
- DBIx::MyParsePP
- LWP::Simple
Sample Usage:
%> omnisql --help
Usage:
omnisql [options] group
Options:
--config=<path_to_file> The config file to use
--help Display this help and exit.
--list-groups List the available groups from the config file.
--print-defaults Print the program argument list and exit.
--version Output version information and exit.
group The group (as defined in the config file)
against which to issue the queries
defaults are:
ATTRIBUTE VALUE
-------------------------- ------------------
config /etc/omnisql.cnf
help FALSE
list-groups FALSE
print-defaults FALSE
version FALSE
Package Contents
- README: Instructions for installation and usage
- RELEASE_HISTORY: Change log for all current & past versions
- omnisql.cnf.example: Sample configuration file
- omnisql: The executable perl script
Change Log v0.0.7 (Current Version)
0.0.7 - 28 October 2008 - Fixed Bug #3: Script failure when only one group is defined - Fixed Bug #4: Too Slow (now it forks) - Fixed Bug #5: Host-Specific parameters don't work - INCOMPATIBLE CHANGE: Changed format of config file - INCOMPATIBLE CHANGE: Use XML::SimpleObject instead of XML::Simple - Added group summary (Issue #6) 0.0.6 - 13 August 2008 - Fixed Bug #1: Multiple databases on the same host - Fixed Bug #2: Multiple queries from STDIN - Changed XML format of omnisql.cnf - Added a README to show how to install and use 0.0.5 - 30 July 2008 - Added the --list-groups command-line option - Updated Documentation - Added a version check on startup - Changed the project name to OmniSQL - Added support for piping commands through STDIN 0.0.4 - 18 June 2008 - BUGFIXES: #3 & #4 - Essentially improper error handling 0.0.3 - 15 June 2008 * Migration from SQL::Parser to DBIx::MyParsePP 0.0.2 - 02 May 2008 * Uses Term::ReadLine to enable a .omnimysql_history file * Fixed issue #1, a hard coded database name in the connection string * Added the --print-defaults command line option * Added the --version command line option * Can now use SSL to connect to MySQL 0.0.1 - 29 March 2008 * Initial Release
Project Roadmap
- Custom prefixes for group result-set handling (SUM, COUNT, etc...)
Contact/Feedback
Feel free to email me rlowe@pablowe.net with bug reports or feature requests.
Other Projects
- mysqldoc - http://code.google.com/p/mysqldoc
- mymemcalc - http://code.google.com/p/mymemcalc