<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
]>

<!-- Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
 
   http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->

<section id="database-replication">
    <title>Database Replication (Optional)</title>
    <para>&PRODUCT; supports database replication from one MySQL node to another. This is achieved using standard MySQL replication. You may want to do this as insurance against MySQL server or storage loss. MySQL replication is implemented using a master/slave model. The master is the node that the Management Servers are configured to use. The slave is a standby node that receives all write operations from the master and applies them to a local, redundant copy of the database. The following steps are a guide to implementing MySQL replication.</para>
    <note><para>Creating a replica is not a backup solution. You should develop a backup procedure for the MySQL data that is distinct from replication.</para></note>
    <orderedlist>
    <listitem><para>Ensure that this is a fresh install with no data in the master.</para></listitem>
    <listitem>
        <para>Edit my.cnf on the master and add the following in the [mysqld] section below datadir.</para>
        <programlisting>
log_bin=mysql-bin
server_id=1
        </programlisting>
        <para>The server_id must be unique with respect to other servers. The recommended way to achieve this is to give the master an ID of 1 and each slave a sequential number greater than 1, so that the servers are numbered 1, 2, 3, etc.</para>
    </listitem>
    <listitem>
        <para>Restart the MySQL service:</para>
        <programlisting>
# service mysqld restart
        </programlisting>
    </listitem>
    <listitem>
        <para>Create a replication account on the master and give it privileges. We will use the "cloud-repl" user with the password "password". This assumes that master and slave run on the 172.16.1.0/24 network.</para>
        <programlisting>
# mysql -u root
mysql> create user 'cloud-repl'@'172.16.1.%' identified by 'password';
mysql> grant replication slave on *.* TO 'cloud-repl'@'172.16.1.%';
mysql> flush privileges;
mysql> flush tables with read lock;
        </programlisting>
    </listitem>
    <listitem><para>Leave the current MySQL session running.</para></listitem>
    <listitem><para>In a new shell start a second MySQL session.</para></listitem>
    <listitem>
        <para>Retrieve the current position of the database.</para>
        <programlisting>
# mysql -u root
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      412 |              |                  |
+------------------+----------+--------------+------------------+
        </programlisting>
    </listitem>
    <listitem><para>Note the file and the position that are returned by your instance.</para></listitem>
    <listitem><para>Exit from this session.</para></listitem>
    <listitem>
        <para>Complete the master setup. Returning to your first session on the master, release the locks and exit MySQL.</para>
        <programlisting>
mysql> unlock tables;
        </programlisting>
    </listitem>
    <listitem>
        <para>Install and configure the slave. On the slave server, run the following commands.</para>
        <programlisting>
# yum install mysql-server
# chkconfig mysqld on
        </programlisting>
    </listitem>
    <listitem>
        <para>Edit my.cnf and add the following lines in the [mysqld] section below datadir.</para>
        <programlisting>
server_id=2
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
        </programlisting>
    </listitem>
    <listitem>
        <para>Restart MySQL.</para>
        <programlisting>
# service mysqld restart
        </programlisting>
    </listitem>
    <listitem>
        <para>Instruct the slave to connect to and replicate from the master. Replace the IP address, password, log file, and position with the values you have used in the previous steps.</para>
        <programlisting>
mysql> change master to
    -> master_host='172.16.1.217',
    -> master_user='cloud-repl',
    -> master_password='password',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=412;
        </programlisting>
    </listitem>
    <listitem>
        <para>Then start replication on the slave.</para>
        <programlisting>
mysql> start slave;
        </programlisting>
    </listitem>
    <listitem>
        <para>Optionally, open port 3306 on the slave as was done on the master earlier.</para>
        <para>This is not required for replication to work. But if you choose not to do this, you will need to do it when failover to the replica occurs.</para>
    </listitem>
    </orderedlist>
    <section id="database-failover">
    <title>Failover</title>
    <para>This will provide for a replicated database that can be used to implement manual failover for the Management Servers. &PRODUCT; failover from one MySQL instance to another is performed by the administrator. In the event of a database failure you should:</para>
    <orderedlist>
        <listitem><para>Stop the Management Servers (via service cloud-management stop).</para></listitem>
        <listitem><para>Change the replica's configuration to be a master and restart it.</para></listitem>
        <listitem><para>Ensure that the replica's port 3306 is open to the Management Servers.</para></listitem>
        <listitem><para>Make a change so that the Management Server uses the new database. The simplest process here is to put the IP address of the new database server into each Management Server's /etc/cloud/management/db.properties.</para></listitem>
        <listitem>
        <para>Restart the Management Servers:</para>
        <programlisting>
# service cloud-management start
        </programlisting>
        </listitem>
    </orderedlist>
    </section>
</section>
