| 
       
	摘要:本文仅仅是描述双数据库下的主主同步备份配置,如果需要实现真正的failover以及负载均衡,还需要结合其他配置Keepalived等软件的配置(使用Keepalived,则必须用linux系统,此软件只有linux版本) 
	  
	  
	准备工作 
	
		首先准备两台装有MariaDB或者MySQL的虚拟机,我是两台win2003虚拟机,都装有MariaDB, 
	
		两个分别为192.168.100.217 和 192.168.100.218 
	
		两台机器基本配置一样,但是有一点,其中一台的my.ini文件中配置server_id = 2 (即两台机器的server_id不能相同) 
	
		192.168.100.217的my.ini文件中[mysqld]节点添加参数如下: 
	
		
			log-bin=binlog #开启binlog功能 
	 
	
		
			log-bin-index=binlog.index 
	 
	
		
			sync_binlog=0 
	 
	
		
			server_id = 1 #两台机器不能重复,一个1 一个2 就好 
	 
	
		  
	
		192.168.100.218的my.ini文件中[mysqld]节点添加参数如下: 
	
		
			
				log-bin=binlog #开启binlog功能 
		 
	 
	
		
			
				log-bin-index=binlog.index 
		 
	 
	
	
		
			
				server_id = 2 #两台机器不能重复,一个1 一个2 就好 
		 
	 
 
	  
	一、对两台机器上的MariaDB都执行如下语句来添加作为从服务器的用户,名为testsync,密码为“abc123,”: 
	
		GRANT replication slave ON *.* TO'testsync'@'%' identified by 'abc123,'; 
	
		flush privileges; 
 
	  
	二、对218设置同步,主服务器为217 
	  
	1、在192.168.100.217上执行: 
	
		flush tables with read lock; 
	
		show master status; 
	
		执行完show这一步骤,请记住几个参数,一个是File字段的文件名称,以及Position数值,在后续需要使用 
	
		unlock tables; 
 
	  
2、在192.168.100.218上执行如下:
	
		先执行添加mster命令,有几点必须注意的,就是master_log_file的值必须为在217上执行show的时候获取的File的名称,master_log_pos值必须为Position值,否则会出错 
 
	
		
			
				change master to master_host='192.168.100.217', master_port=3306, master_user='testsync',master_password='abc123,', master_log_file='binlog.000003',master_log_pos=598; 
		 
	 
 
	
		
			
		 
		
			
		 
		
			
				
					#执行这命令后 注意观察下面这两个参数,必须要都是yes才行 
			 
		 
		
			
		 
		
			
		 
		
			
				如果其中一个是no,那么请观察后续字段 Last_IO_Error或者Last_SQL_Error中的描述,然后根据错误去修改配置参数 
		 
		
		
			
		 
		
			
				
					
						2、master_log_file和master_log_pos错误,导致IO错误 
				 
			 
		 
	 
	
	
	三、反过来对217设置同步,主服务器为218
	
		
			  
		
			  
		
			
				1、在192.168.100.218上执行: 
			
				
					flush tables with read lock; 
				
					show master status; 
				
					执行完show这一步骤,请记住几个参数,一个是File字段的文件名称,以及Position数值,在后续需要使用 
				
					unlock tables; 
			 
			
				  
			2、在192.168.100.217上执行如下:  
	 
	
		
			
				先执行添加mster命令,有几点必须注意的,就是master_log_file的值必须为在217上执行show的时候获取的File的名称,master_log_pos值必须为Position值,否则会出错 
		 
	 
 
	
		
			
				
					change master to master_host='192.168.100.218', master_port=3306, master_user='testsync',master_password='abc123,', master_log_file='binlog.000002',master_log_pos=323; 
			 
		 
	 
 
	
	
	
		
			
				
					
						#执行这命令后 注意观察下面这两个参数,必须要都是yes才行 
				 
			 
		 
	 
	
	
	
		
			
				如果其中一个是no,那么请观察后续字段 Last_IO_Error或者Last_SQL_Error中的描述,然后根据错误去修改配置参数 
		 
	 
	
	
	
		
			
				
					
						2、master_log_file和master_log_pos错误,导致IO错误 
				 
			 
		 
	 
 
	
		
			
				可以对其测试一下,在217上新创建数据库,在218上在刚创建的数据库中创建表,如果双方内容一样,那么就验证此配置完成了 
		 
	 
 
	
		  
	
		如果过程中没有错误,那么至此,设置主住同步备份就完成了, 
	
		  
	
		  
 
	
 
 
 
      (责任编辑:IT) |