对于作为管理节点的Server3则要求较低,只需对Server3的系统进行很小的调整并且无需安装MySQL,Server3可以使用一台配置较低的计算机并且可以在Server3同时运行其他服务。
mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。
数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(一般是my.cnf)
在unix环境下在/etc/mysql/my.cnf
或者在mysql用户的home目录下面的my.cnf。
window环境中,如果c:根目录下有my.cnf文件则取该配置文件。当运行mysql的winmysqladmin.exe工具时候,该工具会把c:根目录下的my.cnf
命名为mycnf.bak。并在winnt目录下创建my.ini。mysql服务器启动时候会读该配置文件。所以可以把my.cnf中的内容拷贝到my.ini文件中,用my.ini文件作为mysql服务器的配置文件。
设置方法:
设置范例环境:
*** 作系统:window2000
professional
mysql:4.0.4-beta-max-nt-log
A
ip:10.10.10.22
B
ip:10.10.10.53
A:设置
1.增加一个用户最为同步的用户帐号:
GRANT
FILE
ON
*.*
TO
backup@''10.10.10.53''
IDENTIFIED
BY
‘1234’
2.增加一个数据库作为同步数据库:
create
database
backup
B:设置
1.增加一个用户最为同步的用户帐号:
GRANT
FILE
ON
*.*
TO
backup@''10.10.10.22''
IDENTIFIED
BY
‘1234’
2.增加一个数据库作为同步数据库:
create
database
backup
主从模式:A->B
A为master
修改A
mysql的my.ini文件。在mysqld配置项中加入下面配置:
server-id=1
log-bin
#设置需要记录log
可以设置log-bin=c:mysqlbakmysqllog
设置日志文件的目录,
#其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文件名为mysqllog的几个日志文件。
binlog-do-db=backup
#指定需要日志的数据库
重起数据库服务。
用show
master
status
命令看日志情况。
B为slave
修改B
mysql的my.ini文件。在mysqld配置项中加入下面配置:
server-id=2
master-host=10.10.10.22
master-user=backup
#同步用户帐号
master-password=1234
master-port=3306
master-connect-retry=60
预设重试间隔60秒
replicate-do-db=backup
告诉slave只做backup数据库的更新
重起数据库
用show
slave
status看同步配置情况。
注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info
所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。
双机互备模式。
如果在A加入slave设置,在B加入master设置,则可以做B->A的同步。
在A的配置文件中
mysqld
配置项加入以下设置:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
在B的配置文件中
mysqld
配置项加入以下设置:
log-bin=c:mysqllogmysqllog
binlog-do-db=backup
注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slave
start
重起AB机器,则可以实现双向的热备。
测试:
向B批量插入大数据量表AA(1872000)条
A数据库每秒钟可以更新2500条数据。
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.1A主机 *** 作
安装好的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.2B主机 *** 作
安装好的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修改以及配置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)