注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Tenhlf的博客

 
 
 

日志

 
 

(转)mysql复制  

2009-07-23 09:44:22|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
   mysql复制是指将主数据库的ddl和dml操作通过二进制日志传到复制服务器上,然后在复制服务器上将这些日志文件重做,从而使得从服务器和主服务器的数据保持同步!
  mysql复制的优点:
     如果主服务器上出现了问题可以切换到从服务器上
     可以在从服务器上执行查询操作,降低主服务器的访问压力
     可以在从服务器上进行备份,以避免备份期间影响主服务器的服务
  赋值配置的步骤:
1.确保主从服务器上安装了相同版本的数据库。
2.在主服务器上,设置一个复制使用的帐户,并授予replication slave权限。
  eg:grant relication slave on *.* to rest@202.194.132.237 indentified by password
3.修改主服务器的配置文件my.cnf,开启binlog,并设置server-id的值,并重启服务器
  【mysqld】
    log-bin =/home/wuxiaoxiao/...
    server-id=1
4.在主服务器上,设置读锁定有效,这个操作确保没有数据库操作,以便获得一个一致性的快照:
 flush tables with read lock;
5.然后得到主服务器上当前二进制日志名和偏移量。为了在从服务器启动后,从这个点开始进行数据的恢复
  show master status
  mysql-bin.00003         102
6.备份数据库文件
7.主数据库备份完毕后,可以恢复写操作
  unlock tables;
8.将主数据库的一致性备份恢复到从数据库上。
9.修改从数据库中的配置文件my.cnf
 [mysqld]
   server-id=2
10.使用--skip-slave-start选项启动从数据库
  eg:/user/bin/mysqld_safe --skip-slave-start &
11.对从数据库服务器做相应的设置,指定复制使用的用户,主服务器的ip,端口,开始执行复制的文件和位置等
eg:mysql>change master to
        >master_host='ip地址'
        >master_port='3306'
        >master_user='test'
        >master_password='ddd'
        >master_log_file='mysql-bin.00003'
        >master_log_pos=102;
12.在从服务器上启动slave线程:
  start slave
13.执行show processlist命令查看连接正确???
14.测试,在主服务器执行插入操作,看看从服务器上是否变化?
 
日常的管理维护:
1.查看从服务器的状态:
show slave status \G;
Slave_IO_Running:该进程从主服务器上读取binlog,写入从服务器的中继日志中
Slave_SQL_Running:该进程读取并执行中继日志
2.主从服务器同步维护:
 由于从服务器的性能问题可能会和主服务器的数据相差较大了!要定期的进行同步:
在主服务器上执行:
flush tables with read lock;
show master status(出现log-bin.00003    974)
在从服务器上:
select master_pos_wait('mysql-bin.00003','974');
这个查询语句会阻塞知道从服务器达到指定的日志文件和偏移量后,返回0,如果返回-1则表示超时退出
在主服务器上:
unlock tables;
3.如果应用中使用了大的blog列或者字符串,那么在从服务器上恢复的时候就会出现‘log event exceeded max_allowed_packet’错误解决如下:
show variables like 'max_allowed_packet';
默认的是1M
set @@global.max_allowed_packet=16777216
设置成16M
4.切换主从服务器:
  假设一台主服务器M,两个从服务器s1,s2!当主服务器出现故障的时候,需要将其中的而一个从数据库服务器(s1)切换成主服务器,同时修改另一个从服务器的配置,使之指向新的主服务器,还要通知应用修改主数据库的ip
下面详细介绍切换主从数据库的步骤:
在s1,s2上(从数据库服务器上):
首先:stop slave TO_THREAD;
然后:show processlist \G
     直到看到状态has read all relay log表示更新执行完毕
在s1上,执行stop slave停止从服务,然后reset master
在s2上,执行stop slave,然后change master to master_host='s1的ip',最后:start slave
  评论这张
 
阅读(510)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018