您的位置:首页 > 职场人生

Master/Slave知识

2009-07-08 09:44 190 查看
1.master上授权给slave
mysql>grant all on *.* to repadmin@'218.6.67.75' identified by 'backup';
mysql>flush privileges;
mysql>use abs;
mysql>create table mysqlslave (status char(8));
mysql>insert into mysqlslave values ('aaaa');

2.shutdown master
mysqladmin -u root shutdown

3.拷贝数据文件
直接把数据文件夹打包拷贝到slave去。

4.修改Master的my.cnf文件,在[mysqld]处增加
master /etc/my.cnf:
log-bin
server-id = 1
sql-bin-update-same
binlog-do-db = abs

5.修改Slave的my.cnf文件
server-id = 2
master-host = 218.6.67.68
master-user = backup
master-password = backup
master-port = 3306
master-connect-retry = 60
replicate-wild-do-table= ads.%

6.启动slave

7.启动master

8.测试
向其中的测试表里插入一条记录,如
use ads;
insert into mysqlslave values ((CURDATE() + 0));
再在slave里查看是否有此记录

9.问题
a)ERROR1062 Duplicate entry
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
Usethe value 1 for any SQL statement that does not use AUTO_INCREMENT orLAST_INSERT_ID(), otherwise you will need to use the value 2.Statements that use AUTO_INCREMENT or LAST_INSERT_ID() take up 2 eventsin the binary log.

b)调试命令
show processlist;
slave stop;
show slave status;
show master status;
flush master;
flush slave;
reset slave;
reset master;
slave start;
set global sql_slave_skip_counter=1;

参考资料
介绍几个管理Replication的命令:

  1. PURGE MASTER LOG
  Replication需要生成大量的二进制文件,用以记录Client在Master上的操作,日积月累,这些文件会占据相当大的空间,可以用PURGE MASTER LOG命令来删除它们。

  mysql> SHOW MASTER LOGS;
  +----------------+
  | Log_name |
  +----------------+
  | binary-log.001 |
  | binary-log.002 |
  | binary-log.003 |
  | binary-log.004 |
  +----------------+
  4 rows in set (0.02 sec)

  mysql> PURGE MASTER LOGS TO 'binary-log.004';

  之后binary-log.001至binary-log.003三个文件都将被删除。

  2. SQL_SLAVE_SKIP_COUNTER
  如果Replication在Slave上出现错误而停止,一般都期望Slave能忽略这个错误,继续进行同步,而不是重新启动Slave。

  In MySQL 3.23.xx:
  mysql> SET SQL_SLAVE_SKIP_COUNTER=1
  mysql> SLAVE START

  In Versions 4.0.0-4.0.2:
  mysql> SET SQL_SLAVE_SKIP_COUNTER=1
  mysql> SLAVE START SQL_THREAD

  In Version 4.0.3 and beyond:
  mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1
  mysql> SLAVE START SQL_THREAD
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 休闲 slave