windows下mysql双向同步备份实现方法_win服务器

1.1 环境搭建
准备两台Windows NT 主机,分别安装好iKEY Server windows 版本,确定版本无误,确保mysql服务正常启动,确保两台主机处于同一个局域网中,确定好哪台做为主、备机器,假设A为主机,B为备机,假设A主机IP地址为:192.168.1.101,B主机IP地址为192.168.1.102

1.2 创建同步帐户
分别在A、B节点上登陆mysql 数据库,创建同步帐户并赋予同步权限,如下:

A节点操作:

运行cmd, cd进入iKEY版本安装目录下的iKEY\mysql\bin下,然后执行mysql –uroot –p123456 登陆mysql数据库执行:

mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j1] "@"192.168.1.10[j2] 2" IDENTIFIED BY 'ym[j3] ';

mysql>flush privileges;

B节点操作步骤如上,权限赋予如下:

mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j4] "@"192.168.1.10[j5] 1" IDENTIFIED BY 'ym[j6] ';

mysql>flush privileges;

执行以上操作后,运行net stop mysql, 分别停止两节点数据库.

1.3 配置数据同步选项
1.3.1 A主机操作
安装好的iKEY Server windows 版本后,会在安装目录下的iKEY\mysql\backup文件夹下生成一个my_master.cnf配置文件,在A主机上将my_master.cnf 文件复制到安装目录下的iKEY\mysql\bin文件夹下,并重命名为my.cnf,重命名之前请先备份原有my.cnf文件,以下介绍my.cnf做的修改之处:

log-bin=mysql-bin #同步事件的日志记录文件

binlog-do-db=ikey_db #提供数据同步服务的数据库日志

binlog-do-db=ikey_log #提供数据同步服务的数据库日志

server-id=1
master-host=192.168.1.102 #主机B的IP地址
master-user=ym #同步帐户
master-password=ym #同步帐户密码
master-port=3306 #端口,主机的MYSQL端口
master-connect-retry=60 #重试间隔60秒
replicate-do-db=ikey_db #同步的数据库

replicate-do-db=ikey_log #同步的数据库

1.3.2 B主机操作
安装好的iKEY Server windows 版本后,会在安装目录下的iKEY\mysql\backup文件夹下生成一个my_slave.cnf配置文件,在B备机上将my_slave.cnf 文件复制到安装目录下的iKEY\mysql\bin文件夹下,并重命名为my.cnf,重命名之前请先备份原有my.cnf文件,修改之处同A主机,不同配置在于以下:

server-id=2
master-host=192.168.1.101 #主机A的地址

以上需要注意的地方是,要定义master-host的主机IP地址,请根据实际情况进行修改。

请确保以上同步用户、主机IP、和同步帐户密码与所设配置相同.

1.3.3 验证数据同步
当以上配置完毕后,分别重新启动主机A和备机B数据库,运行net start mysql,

查看同步配置情况,登陆mysql 数据库。

在A节点上查看Master 信息:

mysql> show master status;

+------------------+----------+------------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+------------------+------------------+

| mysql-bin.000001 | 98 | ikey_db,ikey_log | |

+------------------+----------+------------------+------------------+

1 row in set (0.00 sec)

在B节点上查看Slave信息:

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.101

Master_User: ym

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 98

Relay_Log_File: testBBB-relay-bin.000002

Relay_Log_Pos: 235

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: ikey_db,ikey_log

通过在B节点上查看同步状态,我们可以清楚的看到所设置的同步配置信息以及当前同步状态。

同样可以在B节点上查看master 信息以及在A节点上查看slave 信息。

添加数据在A主机上,同时测试B备机上数据是否同步,以及反向测试。

1.4 同步维护
当需要更改节点IP 时,Mysql 同步配置也需要进行相应修改,在更改节点IP之前,我们先做如下操作:

分别在A、B节点上执行mysql> stop slave; 停止当前同步状态。

假如此时A 节点IP 改为192.168.1.103,需要做如下操作:

1.4.1 A节点:
mysql> show master status;

+------------------+----------+------------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+------------------+------------------+

| mysql-bin.000002 | 118 | ikey_db,ikey_log | |

+------------------+----------+------------------+------------------+

1 row in set (0.00 sec)

1.4.2 B节点:
更改B--àA方向同步的帐户权限

mysql>show grants for ym@192.168.1.101(原A节点IP);

查看到原赋予从192.168.1.101 连接的权限,此时我们删除此同步帐户,并重新赋予192.168.1.103 连接的权限,如下:

mysql>drop user ym@192.168.1.101;

mysql>flush privileges;

mysql>grant replication slave on *.* to ym@192.168.1.103 identified by 'ym';

mysql>flush privileges;

然后修改A-àB方向同步配置项:

mysql>CHANGE MASTER TO

-> MASTER_HOST='192.168.1.103', # Master服务器地址

-> MASTER_USER='ym',

->MASTER_PASSWORD='ym', -> ->MASTER_LOG_FILE='mysql-bin.000002', # 刚才我们记录A节点数据库要执行复制的日志文件。

-> MASTER_LOG_POS=118; #刚才记录的A节点数据库要复制的日志文件位置。

Query OK, 0 rows affected (0.02 sec)

同时需要查看此时B节点的Master信息,同步LOG日志及POS位置

mysql> show master status;

+------------------+----------+------------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+------------------+------------------+

| mysql-bin.000003 | 98 | ikey_db,ikey_log | |

+------------------+----------+------------------+------------------+

1 row in set (0.00 sec)

同时请修改B节点mysql主配置文件中

master-host=192.168.1.103 #主机A的IP地址

1.4.3 接着A节点:
修改B-àA方向同步配置项:

mysql>CHANGE MASTER TO

->MASTER_LOG_FILE='mysql-bin.000003', # 刚才我们记录B节点数据库要执行复制的日志文件。

-> MASTER_LOG_POS=98; #刚才记录的B节点数据库要复制的日志文件位置。

Query OK, 0 rows affected (0.02 sec)

然后针对A、B节点启动同步状态,分别运行start slave; 然后查看同步状态,确保在每台机器上查看show slave status;得出

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

即处于正常同步状态。

以上是针对单节点IP修改所做的操作,如果A、B节点IP 都需要修改,参考以上配置进行操作,最好先针对单个节点IP 进行修改,并确保单向同步没有问题后,再进行第二个节点IP修改以及配置。

--------------------------------------------------------------------------------

[j1]执行同步权限的用户

[j2]主机B的IP地址

[j3]同步帐户密码

[j4]执行同步权限的用户

[j5]主机A的IP地址

[j6]同步帐户密码

第一步:
在A数据库的my.ini中添加

复制代码 代码如下:

server-id=1
log-bin=C:\mysqlback #同步事件的日志记录文件
binlog-do-db=test1 #提供数据同步服务的数据库
binlog-do-db=test2 #提供数据同步服务的数据库
binlog-do-db=test3 #提供数据同步服务的数据库
master-host=192.168.0.102 #主机B的地址
master-user=use102 #主机B提供应B的用户,该用户中需要包括数据库test1 test12test3的权限
master-password=usepwd102 #访问密码
master-port=3306 #端口,主机的MYSQL端口
master-connect-retry=60 #重试间隔60秒
replicate-do-db=test1 #同步的数据库
replicate-do-db=test2 #同步的数据库
replicate-do-db=test3 #同步的数据库

第二步:
在B数据库的my.ini中添加

复制代码 代码如下:

server-id=2
log-bin=C:\mysqlback #同步事件的日志记录文件
binlog-do-db=test1 #提供数据同步服务的数据库
binlog-do-db=test2 #提供数据同步服务的数据库
binlog-do-db=test3 #提供数据同步服务的数据库
master-host=192.168.0.101 #主机B的地址
master-user=use101 #主机A提供给A的用户,该用户中需要包括数据库test1 test12test3的权限
master-password=usepwd101 #访问密码
master-port=3306 #端口,主机的MYSQL端口
master-connect-retry=60 #重试间隔60秒
replicate-do-db=test1 #同步的数据库
replicate-do-db=test2 #同步的数据库
replicate-do-db=test3 #同步的数据库

第三步:
将A的mysql数据的权限给B
mysql>GRANT FILE ON *.* TO 'use101'@'192.168.0.102'IDENTIFIEDBY 'pwd101';
将B的Mysql数据的权限给B操作同上。
第四步:
重启AB数据库,后:
B机器:
mysql>slave start;
查看同步配置情况
A机器:
mysql>show master status\G;
B机器:
mysql>show slave status\G;
假如A与B数据库没有同步,检查mysql安装目录下的.err文件。
如果slave日志中报错信息如下:
060807 11:40:17 [ERROR] While trying to obtain the list of slaves from the master 'xxx.xxx.xxx:3306' user 'rep' got the following error: 'Access denied. You need the REPLICATION SLAVE privilegefor this operation'在master上,执行以下语句查看权限:
mysql>SHOW GRANT FOR 'use101'@'192.168.0.102'\G *************************** 1. row *************************** Grants for rep@192.168.0.102: GRANT Select REPLICATION SLAVE ON *.* TO 'rep'@'192.168.0.102'IDENTIFIED BY PASSWORD 'xxx'已经授予了 REPLICAION SLAVE 权限了,怎么还会报这个错呢?
通过查看手册和源码,才知道slave需要执行一个语句来更新slave列表:
SHOW SLAVE HOSTS;而执行这个语句则需要 REPLICAITON CLIENT 权限,因此才会报错。因此,只要重新给 帐号加上 REPLICATION CLIENT 权限就可以了。
grant selectreplication slaveREPLICAION CLIENT on *.* to 'use101'@'192.168.0.102'identified by 'pwd101';

时间: 2024-07-31 09:41:12

windows下mysql双向同步备份实现方法_win服务器的相关文章

在Windows中配置Rsync同步文件的方法_win服务器

Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限.时间.软硬链接.第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分.传输数据过程中可以实行压缩及解压缩操作,减少带宽流量.支持scp.ssh及直接socket方式连接,支持匿名传输.支持Linux,Window平台.写本文的时候,window版最新版为4.0.5版 官网:http://rsync.samba.org/ Linux版下载:http://rsync.samba.org/

windows下mysql每天定时备份数据库几种方法

第一种:新建批处理文件 backup.dat,里面输入以下代码:  代码如下 复制代码 net stop mysql xcopy "C:/Program Files/MySQL/MySQL Server 5.0/data/piaoyi/*.*" D:/db_backup/%date:~0,10%/ /y net start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号! 然后使用Windows的"计划任务"定时执行该批处理脚本即可.(例如:

windows下rsync的数据同步安装配置方法_win服务器

rsync的配置环境 软件平台:windows2003 软件版本:cwRsync_2.0.10_Installer cwRsync_Server_2.0.10_Installer 硬件平台:dell2950 cpu1.6G*4 内存:4G 硬盘:1G*6 RAID5 ===安装=== 在WINDOWS环境下安装rsync要安装服务端和客户端 服务器端安装:运行cwRsync_Server_2.0.10_Installer 客户端安装:运行cwRsync _2.0.10_Installe 安装步骤

Windows IIS配置Jsp和php环境方法_win服务器

一.IIS用于ASP程序的处理,但是想要它可以处理JSP和php呢?最容易想到的就是JSP安装TOMCAT就好了,TOMCAT默认的端口是8080,默认安装好后的成功页面:http://127.0.0.1:8080/index.jsp;php用Apache就好了,配置好了就可以了.有集成了Mysql和MysqlAdmin的AppServ.Apache和IIS都是默认用80端口,那它们就有冲突,只能启动其中一个,也就是支持php就不支持asp了.对于jsp有人把它和IIS整合,也有人和Apache

Windows下编译安装php扩展eAccelerator教程_win服务器

eAccelerator是一个开源PHP加速器,用于优化程序,编码器和动态内容缓存.它通过在编译状态下对PHP脚本进行缓存以提高他们的性能,所以那些系统开销在编译时几乎可以被消除.它还能够对脚本进行优化以便加速它们的执行速度.利用eAccelerator可以减少服务器的负载并提高PHP代码的执行效率. 一.前期准备 1.下载php原代码和二进制包 地址:http://windows.php.net/download/ 2.下载eaccelerator(选择zip包) 地址:http://eacc

Windows下php5+apache+mysql5 手工搭建笔记_win服务器

这里我就不说那些太概念的东西了(其实我也说不出来,哈哈),但是基本的原理程序员是要知道的,例如网站基本运行原理,php运行需要php的环境,java,DotNet同样需要自己的运行环境,那么php的运行环境就是php的,其实我也不知道怎么说哈,反正就是个runtime,首先,准备几部工作,我们需要: 1.Apache安装包,apache_http_server_source_httpd-2.2.17-win32-src.zip,大家可以直接去官网下载,http://www.apache.org/

WINDOWS SERVER 2008远程桌面端口修改方法_win服务器

微软默认的服务器远程端口是3389,这是被很多黑客利用的端口,如何修改掉了,下面我们来说方法 很多朋友在使用WINDOWS操作系统的时候,都喜欢修改远程连接的默认端口.但是很多朋友由于修改端口的方法错误,导致自己不能远程操作服务器,给自己带来了麻烦.在这里,我给大家简单谈谈正确修改远程端口的方法 在开始-----运行菜单里,输入regedit,进入注册表编辑,按先面的路径进入修改端口的地方 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\T

Win2008 r2 iis7/iis7.5系统下HTTP重定向(301重定向)图文方法_win服务器

首先了解一下重定向,常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh.什么情况下需要做301重定向? 如果你想要换域名,可以通过做301重定向来实现搜索引擎上你的网页依然有效和PR及其他数据不变等对搜索引擎友好的效果,保证流量稳定. 如果你有多个主页网址,也就是说访问者可以通过不同的URL到达相同的网页的时候,这种情况也就是PR分散和外链分散的情况,你可以通过做301重定向确定唯一的主页网址,统一URL所有的PR和外链集中. 如果你需要删除网站

windows防火墙支持FTP服务的设置方法_win服务器

这种问题站长们经常遇到,偶把真正的解决方案贴出来给大家看下! 问题:2003 server用于提供web和ftp服务,通过互联网用flashfxp实现远程上传网页.如果关闭防火墙,ftp上传下载正常,但启用windows防火墙后就不行,即使把web.ftp等服务列为例外也不行.究其原因,flashfxp工作时实际还要用1024以上的tcp端口,而且对端口的指定是要变的.请有类似经验的朋友指点一下,这种情况下如何在开启windows防火墙时保证flashfxp能正常上传下载?只知道ftp使用20.