Before You Begin
Determine which cluster will contain the master database at the first start.
On the primary cluster at the node where the MySQL database is active, add the skip-slave-start keyword to the my.cnf file. For example:
cl1-node1# echo skip-slave-start >> /mysql-data-directory/my.cnf
On the secondary cluster at the node where the MySQL database is active, add the read-only=true directive to the my.cnf file, and restart your database.
For example:
cl2-node1# echo read-only=true >> S/mysql-data-directory/my.cnf cl2-node1# clresource disable paris-mys-rs cl2-node1# clresource enable paris-mys-rs
cl1-node1:/ # /usr/local/mysql/bin/mysql -S /tmp/paris.sock -uroot -proot mysql> use mysql mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'phys-paris-1' identified by 'repl'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'phys-paris-2' identified by 'repl'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'phys-newyork-1' identified by 'repl'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'phys-newyork-2' identified by 'repl';
cl2-node3:/ # /usr/local/mysql/bin/mysql -S /tmp/newyork.sock -uroot -proot mysql> use mysql mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'phys-paris-1' identified by 'repl'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'phys-paris-2' identified by 'repl'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'phys-newyork-1' identified by 'repl'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'phys-newyork-2' identified by 'repl';
mysql> FLUSH TABLES WITH READ LOCK; mysql> show master status; | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | | bin-log.000002 | 1424 | | sc3_test_database | 1 row in set (0.03 sec) mysql> unlock tables;
Note the values for file and position. In the preceding example, they are bin-log.000002 and 1424, respectively.
mysql> change master to master_host='cluster-paris', -> master_user='repl', -> master_password='repl', -> master_log_file='bin-log.000002', -> master_log_pos=1424; Query OK, 0 rows affected (0.04 sec) mysql> start slave; Query OK, 0 rows affected (0.03 sec)
mysql> show slave status\G
Slave_IO_Running: Yes Slave_SQL_Running: Yes
mysql> stop slave;
mysql> FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (0.01 sec) mysql> show master status; | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | | bin-log.000020 | 1162 | | sc3_test_database | 1 row in set (0.00 sec) mysql> unlock tables;
Note the values for file and position. In the preceding example, they are bin-log.000020 and 1162, respectively.
mysql> change master to master_host='cluster-newyork', -> master_user='repl', -> master_password='repl', -> master_log_file='bin-log.000020', -> master_log_pos=1162; mysql> start slave; Query OK, 0 rows affected (0.03 sec)
mysql> show slave status\G
Slave_IO_Running: Yes Slave_SQL_Running: Yes
mysql> stop slave; mysql> exit;
mysql> start slave; mysql> exit;