娱乐新地带论坛  

返回   娱乐新地带论坛 > 电脑技术 > 『软件使用』

『软件使用』 交流对软件的使用心得、经验窍门、好的软件要让大家一起用

发表新主题 回复
 
主题工具 显示模式
旧 2011-09-11, 01:29 AM   #1
No1
Tony
坛主
级别:199 | 在线时长:40426小时 | 升级还需:374小时级别:199 | 在线时长:40426小时 | 升级还需:374小时级别:199 | 在线时长:40426小时 | 升级还需:374小时级别:199 | 在线时长:40426小时 | 升级还需:374小时
 
Tony 的头像
 
注册日期: 2003-10-22
帖子: 11,053
积分:6
精华:24
现金:14348金币
资产:29325305金币
Tony 是一位成功的新星Tony 是一位成功的新星Tony 是一位成功的新星Tony 是一位成功的新星
Mysql的实时同步 - 双机互备

设置方法:
步一 设
A 服务服 (192.168.1.43) 上 用户为 backup, 123456 , 同步的数据库为test1;
B 服务服 (192.168.1.23) 上 用户为 root, 123456, 同步的数据库为test1;

步二 配置 mysql.ini:
A服务器

#Replication master
server-id = 1
log-bin
binlog-do-db=test1

# Replication slave
master-host="192.168.1.23"
master-user=root
master-password="123456"
master-port=3306
master-connect-retry=60
replicate-do-db=test1

B服务器

#Replication master
server-id = 2
log-bin
binlog-do-db=test1

# Replication slave
master-host="192.168.1.43"
master-user=backup
master-password=123456
master-port=3306
master-connect-retry=60
replicate-do-db=test1

=============================================================
解释:

3)binlog-do-db=test1 表示需要备份的数据库是test1这个数据库,
如果需要备份多个数据库,那么应该写多行,如下所示:
binlog-do-db=backup1
binlog-do-db=backup2
binlog-do-db=backup3


解释:
1) server-id=2表示本机器的序号, A,B的server-id 不能相同;
2)log-bin表示打开binlog,打开该选项才可以通过I/O写到Slave的relay-log,也是可以进行replication的前提;
其中mysql_binary_log是日志文件的名称,mysql将建立不同扩展名,文件名为mysql_binary_log的几个日志文件.
3) master-host="192.168.1.23" 表示A做slave时的master为192.168.1.23;
4) master-user=root 这里表示master上开放的一个有权限的用户,使其可以从slave连接到master并进行复制;
5) master-password=123456 表示授权用户的密码;
6) master-port=3306 master上MySQL服务Listen3306端口;
7) master-connect-retry=60 同步间隔时间;
8) replicate-do-db=test 表示同步backup数据库;


最后重新启动两台机器的mysql.
------------------------------------------------
查看状态 及调试

1,查看master的状态
SHOW MASTER STATUS;
Position 不应为0
2,查看slave的状态
show slave status;
Slave_IO_Running | Slave_SQL_Running 这两个字段 应为 YES|YES.
show processlist;
会有两条记录与同步有关 state为 Has read all relay log; waiting for the slave I/O thread to update it
和s Waiting for master to send event .
3,错误日志
MySQL安装目录/data/Hostname.err

4,CHANGE MASTER TO
如果A 的 Slave 未启动 ,Slave_IO_Running 为No.
可能会是B的master 的信息有变化,
查看B SHOW MASTER STATUS;
记录下 File,Position 字段. 假设为'mysql_binary_log.000004',98 ;
在A 下执行:(曾经我在这一步没有操作)
Stop Slave;
CHANGE MASTER TO
MASTER_LOG_FILE = 'mysql_binary_log.000004',
MASTER_LOG_POS = 98 ;

Start Slave;

5,SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;
如果A的Slave_SQL_Running 为No.
Err文件中记录:
Slave: Error 'Duplicate entry '1' for key 1' on query....
可能是master 未向slave 同步成功,但slave中已经有了记录。造成的冲突.
可以在A上执行
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;
跳过几步。再
restart salve;
就可以了。

个人补充:

帐号一般不要用root,在mysql中,输入
grant replication slave on *.* to ‘用户名’@192.168.1.23 identified by ’123456’;
生成一个只允许服务器IP访问的账号,或者用phpmyadmin生成也一样。

如果系统是linux系统,要把
bind-address = 127.0.0.1
这个IP改为互联网IP,不然mysql不能远程访问。

修改了设置,网上说要删除 (/var/lib/mysql)master.info,但我在ubuntu11.04,找不到这个文件,不过也能正常。

查看连接成不成功,可以用phpmyadmin中的状态来观察,更直观点,如下图
mysql_stat.jpg

经过这样设置后,两个主机上的同一套论坛,无论那个论坛发贴,另一论坛1,2秒后,就会出现同样的文章,至于附件之类,用同步软件监测一下,同步过去,同步镜像的网站就成功了。
 
Tony 的签名
古代人有点功夫就研究长生不老,现代人忙完一天只有不想活了!
Tony 当前离线  
回复时引用此帖
发表新主题 回复

书签


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码

论坛跳转


所有时间均为北京时间。现在的时间是 08:18 PM


©2003-2024 1819.net All rights reserved.