Skip Navigation Links | |
Exit Print View | |
Oracle Solaris Cluster Data Service for MySQL Guide Oracle Solaris Cluster 4.1 |
1. Installing and Configuring HA for MySQL
Installing and Configuring HA for MySQL
Planning the HA for MySQL Installation and Configuration
Restriction for the HA for MySQL Data Service Configuration
Restrictions on the MySQL Configuration File
Restrictions for the MySQL Configurations
Restrictions on the MySQL Database Directory
Restriction for the MySQL smf Service Name in an HA Zone
Examples for the File Systems Layout
Components and Their Dependencies for HA for MySQL
Registration and Configuration File for HA for MySQL
Explanation of the my.cnf File
Installing and Configuring MySQL
Enabling MySQL to Run in a Global Zone Configuration
How to Enable MySQL for a Failover Resource
How to Enable MySQL to Run in a Scalable Configuration
How to Enable MySQL to Run in a Multiple-Master Configuration
How to Install and Configure MySQL in a Global Zone
Enabling MySQL to Run in a Zone Configuration
How to Enable MySQL for a Failover Resource
How to Enable MySQL to Run in a Scalable Configuration
How to Enable MySQL to Run in a Multiple-Master Configuration
How to Install and Configure MySQL in a Zone
Verifying the Installation and Configuration of MySQL
How to Verify the Installation and Configuration of MySQL
Installing the HA for MySQL Package
How to Install the HA for MySQL Package
Registering and Configuring HA for MySQL
How to Register and Configure HA for MySQL as a Failover Service in a Global Zone Configuration
How to Register and Configure HA for MySQL as a Failover Service in a Zone Configuration
How to Register and Configure HA for MySQL as a Failover Service in an HA Zone Configuration
How to Modify Parameters in the HA for MySQL Manifest
How to Remove an HA for MySQL Resource From an HA Zone
How to Add an HA for MySQL Resource in a Scalable or Multiple-Master Configuration
Verifying the HA for MySQL Installation and Configuration
How to Verify the HA for MySQL Installation and Configuration
Understanding the HA for MySQL Fault Monitor
Probing Algorithm and Functionality
How to Activate Debugging for HA for MySQL
A. Deployment Example: Installing MySQL in the Global Zone
B. Deployment Example: Installing MySQL in the Non-Global HA Zone
C. Deployment Example: Installing MySQL in a Scalable or Multiple-Master Configuration
This section contains the procedures you need to install and configure MySQL.
References will be made to certain directories for MySQL. The following list shows common path names for these references. For more information, refer to the Configuration Restrictions section.
MySQL installed from http://www.mysql.com on a cluster file system, with a MySQL instance on a cluster file system (Example 1-1):
MySQL Base directory – /global/mysql
MySQL Database directory – /global/mysqldata
MySQL installed on a local file system, with mysql instances on a highly available local file system (Example 1-2):
MySQL Base directory – /usr/local/mysql
MySQL Database directory – /local/mysqldata
Determine how MySQL will be deployed in an Oracle Solaris Cluster configuration.
Determine how many MySQL instances will be deployed.
Determine which cluster file system will be used by each MySQL instance.
Determine the type of the target zone where you will install MySQL. Valid zone types are the global zone or the HA Zone.
To install and configure MySQL in a global-zone configuration, complete the following tasks:
To install and configure MySQL in an HA Zone configuration, complete the following tasks:
You will find installation examples for each zone type in the following appendixes:
Appendix A, Deployment Example: Installing MySQL in the Global Zone
Appendix B, Deployment Example: Installing MySQL in the Non-Global HA Zone
Appendix C, Deployment Example: Installing MySQL in a Scalable or Multiple-Master Configuration
Determine whether you need to install MySQL in a failover, scalable, or multiple-master configuration and follow the appropriate procedure:
# clresourcetype register SUNW.gds SUNW.HAStoragePlus
# clresourcegroup create MySQL-failover-resource-group
# clresource create \ -g MySQL-failover-resource-group \ -t SUNW.HAStoragePlus \ -p FilesystemMountPoints=MySQL-instance-mount-points MySQL-has-resource
# clreslogicalhostname \ -g MySQL-failover-resource-group \ -h MySQL-logical-hostname \ MySQL-lh-resource
# clresourcegroup online -M -n current-node MySQL-failover-resource-group
# clresourcetype register SUNW.gds
# clresource create SharedAddress-failover-resource-group
# clressharedaddress create \ -g SharedAddress-failover-resource-group -h MySQL-logical-hostname \ MySQL-lh-resource
# clresourcegroup online -M -n current-node MySQL-failover-resource-group
# clresourcegroup create -p Maximum_primaries=2 \ -p desired_primaries=2 MySQL-scalable-resource-group
# clresourcetype register SUNW.gds
# clresourcegroup create -p Maximum_primaries=2 \ -p desired_primaries=2 MySQL-scalable-resource-group
Before You Begin
If the HA for MySQL package (ha-cluster/data-service/mysql) was not installed during your initial Oracle Solaris Cluster installation, proceed to Installing the HA for MySQL Package to install it on your cluster. Return here to continue the installation and configuration of MySQL.
MySQL should be installed onto a cluster file system. For a discussion of the advantages and disadvantages of installing the software on local versus cluster file systems, see Determining the Location of the Application Binaries in Oracle Solaris Cluster Data Services Planning and Administration Guide.
Download MySQL from http://www.mysql.com. If you intend to use local disks for the MySQL software, you will need to repeat this step on all nodes within Oracle Solaris Cluster.
Create an entry in /etc/group on all nodes with Oracle Solaris Cluster.
# groupadd -g 1000 mysql
Create an entry in /etc/passwd on all nodes within Oracle Solaris Cluster. This user should have a locked password.
# useradd -u 1000 -g 1000 -d /global/mysql -s /bin/sh mysql
If MySQL binaries are on all nodes, then repeat this step on every node.
# chown -R mysql:mysql /global/mysql
# mkdir MySQL-Database-directory
Note - Refer to Configuration Restrictions for a description of the MySQL Database directory and to Installing and Configuring MySQL for a list of common path names. For a multiple-master operating system scalable deployment, perform the remaining steps of this procedure on all nodes of the cluster that are about to host the MySQL database.
The following listing shows one MySQL instance. MySQL is installed from http://www.mysql.com in /global/mysql, which is mounted as a cluster file system. The MySQL Database Directory for the MySQL instance is /global/mysql-data.
# cd /global/mysql # # ls -l -rw-r--r-- 1 mysql mysql 19106 Dec 10 14:52 COPYING -rw-r--r-- 1 mysql mysql 28003 Dec 10 14:52 COPYING.LIB -rw-r--r-- 1 mysql mysql 44577 Dec 5 10:37 ChangeLog -rw-r--r-- 1 mysql mysql 6811 Dec 10 14:53 INSTALL-BINARY -rw-r--r-- 1 mysql mysql 1976 Dec 5 10:37 README drwxr-xr-x 2 mysql mysql 1024 Dec 13 18:05 bin -rwxr-xr-x 1 mysql mysql 773 Dec 10 15:34 configure drwxr-x--- 3 mysql mysql 512 Apr 3 12:23 data drwxr-xr-x 2 mysql mysql 1024 Dec 10 15:35 include drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 lib drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 man -rw-r--r-- 1 mysql mysql 2582089 Dec 10 14:47 manual.html -rw-r--r-- 1 mysql mysql 2239278 Dec 10 14:47 manual.txt -rw-r--r-- 1 mysql mysql 94600 Dec 10 14:47 manual_toc.html drwxr-xr-x 6 mysql mysql 512 Dec 10 15:35 mysql-test drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 scripts drwxr-xr-x 3 mysql mysql 512 Dec 10 15:35 share drwxr-xr-x 7 mysql mysql 1024 Dec 10 15:35 sql-bench drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 support-files drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 tests #
The HA for MySQL data service provides three sample my.cnf files for MySQL. One sample configuration file is for a master configuration, one sample file is for a slave configuration, and one is for the server configuration in a MySQL cluster.
The content of /opt/SUNWscmys/etc/my.cnf_sample_[master|slave|mysqld_cluster]provides a sample MySQL configuration file that you can use to create your MySQL instance MySQL-Database-directory/my.cnf. You must still edit that file to reflect your configuration values.
# cp /opt/SUNWscmys/etc/my.cnf_sample_master \ MySQL-Database-directory/my.cnf
Note - If you are about to configure a multiple-master or a scalable configuration, set the socket directive in the my.cnf files to socket=/tmp/physical-host.sock.
This creates the privilege tables db, host, user, tables_priv, and columns_priv in the mysql database, as well as the func table.
# cd MySQL Base directory # ./scripts/mysql_install_db --datadir=MySQL-Database-directory
# mkdir MySQL-Database-Directory/logs
# mkdir MySQL-Database-Directory/innodb # mkdir MySQL-Database-Directory/BDB
# chown -R mysql:mysql MySQL Database Directory
# chmod 644 MySQL-Database-Directory/my.cnf
Determine whether to install MySQL in a failover, scalable, or multiple-master configuration and follow the appropriate procedure:
# clresourcetype register SUNW.gds SUNW.HAStoragePlus
# clresourcegroup create \ -n node1,node2 \ MySQL-failover-resource-group
# clresource create \ -g MySQL-failover-resource-group \ -t SUNW.HAStoragePlus \ -p FilesystemMountPoints=MySQL-instance-mount-points MySQL-has-resource
# clreslogicalhostname \ -g MySQL-failover-resource-group \ -h MySQL-logical-hostname \ MySQL-lh-resource
# clresourcegroup online -M -n current-node MySQL-failover-resource-group
# clresourcetype register SUNW.gds
# clresourcegroup create -n node1,node2 MySQL-failover-resourcegroup
# clressharedaddress create \ -g SharedAddress-failover-resource-group \ -h MySQL-logical-hostname \ MySQL-lh-resource
# clresourcegroup online -M -n current-node MySQL-failover-resource-group
# clresourcegroup create -p Maximum_primaries=2 \ -p desired_primaries=2 \ -n node1,node2 \ MySQL-scalable-resource-group
# clresourcetype register SUNW.gds
# clresourcegroup create \ -p Maximum_primaries=2 \ -p desired_primaries=2 -n node1,node2 \ MySQL-scalable-resource-group
Before You Begin
If the HA for MySQL package (ha-cluster/data-service/mysql) was not installed during your initial Oracle Solaris Cluster installation, proceed to Installing the HA for MySQL Package to install it on your cluster. Return here to continue the installation and configuration of MySQL.
# zlogin MySQL-zone
IMySQL should be installed onto a cluster file system. For a discussion of the advantages and disadvantages of installing the software on local versus cluster file systems, see Determining the Location of the Application Binaries in Oracle Solaris Cluster Data Services Planning and Administration Guide.
Download MySQL from http://www.mysql.com. If you intend to use local disks for the MySQL software, you will need to repeat this step on all nodes within Oracle Solaris Cluster.
# groupadd -g 1000 mysql
This user should have a locked password.
# useradd -u 1000 -g 1000 -d /global/mysql -s /bin/sh mysql
If MySQL binaries are on all nodes, then repeat this step on every node.
# chown -R mysql:mysql /global/mysql
# mkdir MySQL-Database-directory
Note - Refer to Configuration Restrictions for a description of the MySQL Database directory and to Installing and Configuring MySQL for a list of common path names.
The following listing shows one MySQL instance. MySQL has been installed from http://www.mysql.com in /global/mysql, which is mounted as a cluster file system. The MySQL Database Directory for the MySQL instance is /global/mysql-data.
# cd /global/mysql # # ls -l -rw-r--r-- 1 mysql mysql 19106 Dec 10 14:52 COPYING -rw-r--r-- 1 mysql mysql 28003 Dec 10 14:52 COPYING.LIB -rw-r--r-- 1 mysql mysql 44577 Dec 5 10:37 ChangeLog -rw-r--r-- 1 mysql mysql 6811 Dec 10 14:53 INSTALL-BINARY -rw-r--r-- 1 mysql mysql 1976 Dec 5 10:37 README drwxr-xr-x 2 mysql mysql 1024 Dec 13 18:05 bin -rwxr-xr-x 1 mysql mysql 773 Dec 10 15:34 configure drwxr-x--- 3 mysql mysql 512 Apr 3 12:23 data drwxr-xr-x 2 mysql mysql 1024 Dec 10 15:35 include drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 lib drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 man -rw-r--r-- 1 mysql mysql 2582089 Dec 10 14:47 manual.html -rw-r--r-- 1 mysql mysql 2239278 Dec 10 14:47 manual.txt -rw-r--r-- 1 mysql mysql 94600 Dec 10 14:47 manual_toc.html drwxr-xr-x 6 mysql mysql 512 Dec 10 15:35 mysql-test drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 scripts drwxr-xr-x 3 mysql mysql 512 Dec 10 15:35 share drwxr-xr-x 7 mysql mysql 1024 Dec 10 15:35 sql-bench drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 support-files drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 tests #
The HA for MySQL data service provides three sample my.cnf files for MySQL. One sample configuration file is for a master configuration, one is sample file is for a slave configuration, and one for the server configuration in a MySQL cluster.
The contents of /opt/SUNWscmys/etc/my.cnf_sample_[master|slave|mysqld_cluster]provide a sample MySQL configuration file that you can use to create your MySQL instance MySQL-Database-directory/my.cnf. You must still edit that file to reflect your configuration values.
# cp /opt/SUNWscmys/etc/my.cnf_sample_master \ MySQL-Database-directory/my.cnf
Note - For a multiple-master operating system scalable deployment, perform the remaining step of this procedure on all zones of the cluster that are about to host the MySQL database. In this case, set the socket directive in the my.cnf file to the following value:
socket=/tmp/physical-host.sock
This creates the privilege tables db, host, user, tables_priv and columns_priv in the MySQL database, as well as the func table.
# cd MySQL-base-directory
# ./scripts/mysql_install_db \ --datadir=MySQL-Database-directory
# mkdir MySQL-Database-Directory/logs
# mkdir MySQL-Database-Directory/innodb # mkdir MySQL-Database-Directory/BDB
# chown -R mysql:mysql MySQL-Database-Directory
# chmod 644 MySQL-Database-Directory/my.cnf
Before You Begin
Ensure that the /etc/netmasks file has IP-address subnet and netmask entries for all logical hostnames. If necessary, edit the /etc/netmasks file to add any missing entries.
# clresourcetype register SUNW.HAStoragePlus SUNW.gds
# clresourcegroup create MySQL-resource-group
# clresource create -t SUNW.HAStoragePlus \ -p FileSystemMountPoints=MySQL-instance-mount-points \ MySQL-has-resource
# clreslogicalhostname create -g MySQL-resource-group \ -h logical-hostname \ MySQL-logical-hostname-resource-name
# clresourcegroup online -M MySQL-resource-group
Install the zone according to the Oracle Solaris Cluster HA for Solaris Containers agent documentation, assuming that the resource name is MySQL-zone-rs and that the zone name is MySQL-zone.
# zoneadm -z MySQL-zone boot # zoneadm -z MySQL-zone halt
# cp /opt/SUNWsczone/sczbt/util/sczbt_config zones-target-configuration-file
RS=MySQL-zone-rs RG=MySQL-resource-group PARAMETERDIR=MySQL-zone-parameter-directory SC_NETWORK=true|false SC_LH=MySQL-logical-hostname-resource-name FAILOVER=true|false HAS_RS=MySQL-has-resource Zonename=MySQL-zone Zonebootopt=zone-boot-options Milestone=zone-boot-milestone Mounts=
# mkdir MySQL-zone-parameter-directory
# /opt/SUNWsczone/sczbt/util/sczbt_register -f zone's-target-configuration-file
# clresource enable MySQL-zone-rs
# clresourcegroup online MySQL-resource-group
Before You Begin
If the HA for MySQL package (ha-cluster/data-service/mysql) was not installed during your initial Oracle Solaris Cluster installation, proceed to Installing the HA for MySQL Package to install it on your cluster. Return here to continue the Installation and Configuration of MySQL.
# zlogin MySQL-zone
MySQL should be installed onto a cluster file system. For a discussion of the advantages and disadvantages of installing the software on local versus cluster file systems, see Determining the Location of the Application Binaries in Oracle Solaris Cluster Data Services Planning and Administration Guide.
Download MySQL from http://www.mysql.com. If you intend to use local disks for the MySQL software, you will need to repeat this step on all cluster nodes.
# groupadd -g 1000 mysql
This user should have a locked password.
# useradd -u 1000 -g 1000 -d /global/mysql -s /bin/sh mysql
# chown -R mysql:mysql /global/mysql
# mkdir MySQL-Database-directory
Note - Refer to the Configuration Restrictions section for a description of the MySQL Database directory and to Installing and Configuring MySQL for a list of common path names.
The following listing shows one MySQL instance. MySQL has been installed from http://www.mysql.com in /global/mysql, which is mounted as a cluster file system. The MySQL Database Directory for the MySQL instance is /global/mysql-data.
# cd /global/mysql # # ls -l -rw-r--r-- 1 mysql mysql 19106 Dec 10 14:52 COPYING -rw-r--r-- 1 mysql mysql 28003 Dec 10 14:52 COPYING.LIB -rw-r--r-- 1 mysql mysql 44577 Dec 5 10:37 ChangeLog -rw-r--r-- 1 mysql mysql 6811 Dec 10 14:53 INSTALL-BINARY -rw-r--r-- 1 mysql mysql 1976 Dec 5 10:37 README drwxr-xr-x 2 mysql mysql 1024 Dec 13 18:05 bin -rwxr-xr-x 1 mysql mysql 773 Dec 10 15:34 configure drwxr-x--- 3 mysql mysql 512 Apr 3 12:23 data drwxr-xr-x 2 mysql mysql 1024 Dec 10 15:35 include drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 lib drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 man -rw-r--r-- 1 mysql mysql 2582089 Dec 10 14:47 manual.html -rw-r--r-- 1 mysql mysql 2239278 Dec 10 14:47 manual.txt -rw-r--r-- 1 mysql mysql 94600 Dec 10 14:47 manual_toc.html drwxr-xr-x 6 mysql mysql 512 Dec 10 15:35 mysql-test drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 scripts drwxr-xr-x 3 mysql mysql 512 Dec 10 15:35 share drwxr-xr-x 7 mysql mysql 1024 Dec 10 15:35 sql-bench drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 support-files drwxr-xr-x 2 mysql mysql 512 Dec 10 15:35 tests #
The HA for MySQL data service provides three sample my.cnf files for MySQL. One sample configuration file is for a master configuration, one sample file is for a slave configuration, and one is for the server configuration in a MySQL cluster.
The contents of /opt/SUNWscmys/etc/my.cnf_sample_[master|slave|mysqld_cluster]provides a sample MySQL configuration file that you can use to create your MySQL instance MySQL-Database-directory/my.cnf. You must still edit that file to reflect your configuration values.
# cp /opt/SUNWscmys/etc/my.cnf_sample_master \ MySQL-Database-directory/my.cnf
This creates the privilege tables db, host, user, tables_priv and columns_priv in the MySQL database, as well as the func table.
# cd <MySQL-Base-director
# ./scripts/mysql_install_db \ --datadir=MySQL-Database-directory
# mkdir MySQL-Database-Directory/logs
# mkdir MySQL-Database-Directory/innodb # mkdir MySQL-Database-Directory/BDB
# chown -R mysql:mysql MySQL-Database-Directory
# chmod 644 MySQL-Database-Directory/my.cnf