68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
| 
								 | 
							
								# ==== Purpose ====
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Set up circular cluster replication where each 
							 | 
						||
| 
								 | 
							
								# cluster has two mysqlds and replication directions are 
							 | 
						||
| 
								 | 
							
								# following:
							 | 
						||
| 
								 | 
							
								#          master ---> slave  
							 | 
						||
| 
								 | 
							
								#           /            \
							 | 
						||
| 
								 | 
							
								#     cluster A        cluster B
							 | 
						||
| 
								 | 
							
								#           \            /
							 | 
						||
| 
								 | 
							
								#         master1 <--- slave1
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# ==== Usage ====
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#   [--let $rpl_server_count= N]
							 | 
						||
| 
								 | 
							
								#   [--let $rpl_skip_check_server_ids= 1]
							 | 
						||
| 
								 | 
							
								#   [--let $rpl_skip_reset_master_and_slave= 1]
							 | 
						||
| 
								 | 
							
								#   [--let $rpl_skip_change_master= 1]
							 | 
						||
| 
								 | 
							
								#   [--let $rpl_skip_start_slave= 1]
							 | 
						||
| 
								 | 
							
								#   [--let $rpl_debug= 1]
							 | 
						||
| 
								 | 
							
								#   [--let $slave_timeout= NUMBER]
							 | 
						||
| 
								 | 
							
								#   --source include/ndb_master-slave_2ch.inc
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Parameters:
							 | 
						||
| 
								 | 
							
								#   $rpl_server_count, $rpl_skip_check_server_ids,
							 | 
						||
| 
								 | 
							
								#   $rpl_skip_reset_master_and_slave, $rpl_skip_change_master,
							 | 
						||
| 
								 | 
							
								#   $rpl_skip_start_slave, $rpl_debug, $slave_timeout
							 | 
						||
| 
								 | 
							
								#     See include/master-slave.inc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--let $rpl_topology= 1->2,4->3
							 | 
						||
| 
								 | 
							
								--let $rpl_skip_check_server_ids= 1
							 | 
						||
| 
								 | 
							
								--source include/rpl_init.inc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Make connections to mysqlds
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--let $rpl_connection_name= master
							 | 
						||
| 
								 | 
							
								--let $rpl_server_number= 1
							 | 
						||
| 
								 | 
							
								--source include/rpl_connect.inc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--let $rpl_connection_name= master1
							 | 
						||
| 
								 | 
							
								--let $rpl_server_number= 1
							 | 
						||
| 
								 | 
							
								--source include/rpl_connect.inc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--let $rpl_connection_name= slave
							 | 
						||
| 
								 | 
							
								--let $rpl_server_number= 2
							 | 
						||
| 
								 | 
							
								--source include/rpl_connect.inc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--let $rpl_connection_name= slave1
							 | 
						||
| 
								 | 
							
								--let $rpl_server_number= 2
							 | 
						||
| 
								 | 
							
								--source include/rpl_connect.inc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Check that all mysqld are compiled with ndb support
							 | 
						||
| 
								 | 
							
								--let $_rpl_server= 4
							 | 
						||
| 
								 | 
							
								while ($_rpl_server)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  --connection server_$_rpl_server
							 | 
						||
| 
								 | 
							
								  if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'ndbcluster' AND (support = 'YES' OR support = 'DEFAULT')`)
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    --skip Test requires NDB.
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  --source include/ndb_not_readonly.inc
							 | 
						||
| 
								 | 
							
								  --dec $_rpl_server
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Set the default connection to 'master' (cluster A)
							 | 
						||
| 
								 | 
							
								connection master;
							 |