Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15172071
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: Mysql/postgreSQL

2008-03-25 21:38:08

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<_{m  
主从模式: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 0zwgQ4??P2  
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条数据。
阅读(354) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~