Master/Slave知识
生活随笔
收集整理的這篇文章主要介紹了
Master/Slave知识
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.master上授權(quán)給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.拷貝數(shù)據(jù)文件
直接把數(shù)據(jù)文件夾打包拷貝到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;
Use the value 1 for any SQL statement that does not use AUTO_INCREMENT or LAST_INSERT_ID(), otherwise you will need to use the value 2. Statements that use AUTO_INCREMENT or LAST_INSERT_ID() take up 2 events in the binary log.
b)調(diào)試命令
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需要生成大量的二進(jìn)制文件,用以記錄Client在Master上的操作,日積月累,這些文件會占據(jù)相當(dāng)大的空間,可以用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上出現(xiàn)錯誤而停止,一般都期望Slave能忽略這個錯誤,繼續(xù)進(jìn)行同步,而不是重新啟動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
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.拷貝數(shù)據(jù)文件
直接把數(shù)據(jù)文件夾打包拷貝到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;
Use the value 1 for any SQL statement that does not use AUTO_INCREMENT or LAST_INSERT_ID(), otherwise you will need to use the value 2. Statements that use AUTO_INCREMENT or LAST_INSERT_ID() take up 2 events in the binary log.
b)調(diào)試命令
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需要生成大量的二進(jìn)制文件,用以記錄Client在Master上的操作,日積月累,這些文件會占據(jù)相當(dāng)大的空間,可以用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上出現(xiàn)錯誤而停止,一般都期望Slave能忽略這個錯誤,繼續(xù)進(jìn)行同步,而不是重新啟動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
轉(zhuǎn)載于:https://blog.51cto.com/jeck2046/175137
總結(jié)
以上是生活随笔為你收集整理的Master/Slave知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.net 2.0 中获取控件输出的
- 下一篇: 微软Silverlight 3正式版已经