Saturday, July 17, 2010

MySQL-Cluster RPMs: What packages to install on which system.

Oracle distributes a series of 12 RPM packages that make up the MySQL Cluster product. Lately I've been getting a lot of questions asking which of these dozen RPM packages should be installed onto which nodes.

An overview of the contents of each RPM package is provided in the documentation at http://dev.mysql.com/doc/refman/5.1/en/linux-rpm.html and http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-multi-install.html. I think this section of the documentation is a bit messy so I'll give a short description of each here:

MySQL-Cluster-gpl-client

This package contains the standard MySQL clients and administration tools.
Contains: mysql, mysqladmin, mysqlcheck, mysqldump, etc...
This package should be installed on API nodes.

MySQL-Cluster-gpl-clusterj

This package contains the MySQL Cluster Connector for Java. (OpenJPA)
Contains: libmyjapi.so , clusterj-api.jar, clusterj.jar, clusterjpa.jar, etc...
This package should be installed on Java application (API) nodes that will connect directly to the cluster data nodes bypassing mysql server for simple queries. These hosts will also use Connector/J to connect to mysqld nodes for complex queries.

MySQL-Cluster-gpl-debuginfo

This package contains debug information for package MySQL-Cluster-gpl
Contains: mysqld.debug, various .c/.cpp .h/.hpp files for debugging mysql applications.
This package is optional for production and recommended for development environments that are building mysql or ndbapi applications. (ALL nodes)

MySQL-Cluster-gpl-devel

This package contains the development header files and libraries necessary to develop MySQL client applications.
Contains: mysql_config, mysql.h, mgmapi.h, NdbDictionary.hpp, etc...
This package is optional in production and required for development environments that are are building mysql or ndbapi applications. (ALL nodes)

MySQL-Cluster-gpl-embedded

This package contains the MySQL server as an embedded library.
Contains: libmysqld.a, libmysqld-debug.a
This package should be installed on hosts with applications that embed libmysqld, (API nodes). It is not typically used in cluster deployments

MySQL-Cluster-gpl-extra
This package contains some extra ndbcluster storage engine tools for the advanced user.
Contains: ndb_delete_all, ndb_drop_index, ndb_drop_table, ndb_cpcd
This package is not typically required, but could optionally be installed on API nodes.

MySQL-Cluster-gpl-management

This package contains ndbcluster storage engine management. It is necessary to have this package installed on at least one computer in the cluster.
Contains: ndb_mgmd
This package provides the MGM node and should *not* be installed on hosts that contain MySQL-Cluster-gpl-storage.

MySQL-Cluster-gpl-server

This package includes the MySQL server binary as well as related utilities to run and administer a MySQL server.
Contains: my.cnf, myisamchk, mysql_install_db, mysqld_safe, mysqlhotcopy, mysqld, etc...
This package should be installed on API nodes.

MySQL-Cluster-gpl-shared
This package contains the shared libraries (*.so*) which certain languages and applications need to dynamically load and use MySQL.
Contains: libmysqlclient.so, libmysqlclient_r.so, libndbclient.so
This package should be installed on API nodes.

MySQL-Cluster-gpl-storage
This package contains the ndbcluster storage engine.
Contains: ndbd, ndbdmtd
This package should be installed on NDBD nodes.

MySQL-Cluster-gpl-test

This package contains the MySQL regression test suite.
Contains: mysqltest_embedded, *.result, *.test
This package is optional for development environments (ALL nodes).

MySQL-Cluster-gpl-tools
This package contains ndbcluster storage engine basic tools.
Contains: ndb_config, ndb_desc, ndb_error_reporter, ndb_mgm, ndb_restore, ndb_show_tables, ndb_size.pl, ndb_waiter
This package should be installed on all nodes.

No comments: