mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。 $wm8>bt
h% q{sd
数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(一般是my.cnf) &kkbqz
-, [ fje&h
在unix环境下在/etc/mysql/my.cnf 或者在mysql用户的home目录下面的my.cnf。 i=3cp
*e&b.t
window环境中,如果c:根目录下有my.cnf文件则取该配置文件。当运行mysql的winmysqladmin.exe工具时候,该工具会把 c:根目录下的my.cnf 命名为mycnf.bak。并在winnt目录下创建my.ini。mysql服务器启动时候会读该配置文件。所以可以把my.cnf中的内容拷贝到 my.ini文件中,用my.ini文件作为mysql服务器的配置文件。 [) s
hvb k}p_\p
设置方法: [,hkol?
t,>g?)h(
设置范例环境: _g0pl*ir
uu 7zb|
操作系统:window2000 professional e'b$k;d
wh v*o6
mysql:4.0.4-beta-max-nt-log e4 mdl&
dbz@8ls
a ip:10.10.10.22 f&|j2@ap
b ip:10.10.10.53 sz$al
mk~7'cvf
a:设置 [teuq[jk2
6ct2v[q$q
1.增加一个用户最为同步的用户帐号: - 0(i|l4
q]amcz
grant file on *.* to backup@'10.10.10.53' identified by ‘1234’ q0m0b= \q
_qh0%h
2.增加一个数据库作为同步数据库: y?e/
k8i.~j\vf)
create database backup e[uj\}[y
rfmwl8q*
b:设置 dp10fg
rrc6fr
1.增加一个用户最为同步的用户帐号: #iy}(zr
ho 3'1z_
grant file on *.* to backup@'10.10.10.22' identified by ‘1234’ k[#[%b
1c^j}/ l
2.增加一个数据库作为同步数据库: :eeij#e7-p
gud94m
create database backup #_*n5,ws6
ee%r
主从模式:a->b n}r_ba]q+
1 |haalh
a为master u]m_p86^pb
$tb_`[
修改a mysql的my.ini文件。在mysqld配置项中加入下面配置: ;0/#:^?
>m+k |
server-id=1 p{|x:zi
log-bin *pgpg5wb
tr/)m
#设置需要记录log 可以设置log-bin=c:mysqlbakmysqllog 设置日志文件的目录, s&7xm @le
5y[x?r
#其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文件名为mysqllog的几个日志文件。 (axi fp
&b-o,,4n
binlog-do-db=backup #指定需要日志的数据库 c{/+5htf
w0x! (u!
重起数据库服务。 i7+(t$4e!
用show master status 命令看日志情况。 u mo$
aksmo
b为slave f7^=n f~
9n xr p@ez
修改b mysql的my.ini文件。在mysqld配置项中加入下面配置: o$t*jg=z
!le1 o?p
server-id=2 3g7j'
master-host=10.10.10.22 srggomj984
master-user=backup #同步用户帐号 `dr[}!r)
master-password=1234 0zwgq4p2
master-port=3306 v+ho_iyf
master-connect-retry=60 预设重试间隔60秒 a+lowu%_}
replicate-do-db=backup 告诉slave只做backup数据库的更新 c i^off
4p?!a f.
重起数据库 mm?gs }
oe~sr'
用show slave status看同步配置情况。 ?qfqu
s71e p
注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info e_)),2k
xnp7hrwp1
所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。 >mcjz'
s~ft#h
双机互备模式。 @,zdg/w:
}_xsglk
如果在a加入slave设置,在b加入master设置,则可以做b->a的同步。 -kxkeeah
w=o@ zdah
在a的配置文件中 mysqld 配置项加入以下设置: r/c/}kj+
6d uf#=4(
master-host=10.10.10.53 gk olu
master-user=backup htitt4:hb
master-password=1234 ukaekmckt
replicate-do-db=backup a}oj6
master-connect-retry=10 :@, vm&
a,^aeu
在b的配置文件中 mysqld 配置项加入以下设置: xy((t
c]k!=k
log-bin=c:mysqllogmysqllog 2u|6y^
binlog-do-db=backup r~ za!q
^[?]x5mwu
注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slave start +so?1xku
wj59&(
重起ab机器,则可以实现双向的热备。 w&4c
lx[;~0y0=
测试: pymmujz
16rkj!`i
向b批量插入大数据量表aa(1872000)条 [ufc(e
q*dj =
a数据库每秒钟可以更新2500条数据。