视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql主从同步备份_MySQL
2020-11-09 18:38:07 责编:小采
文档


bitsCN.com

mysql主从同步备份

网站有一个后台业务,叫searchEngine项目,基于Lucene 构建。主要提供索引构建和检索的功能,搜索引擎查询mysql 数据库然后根据数据状态来构建索引,这里采用的是 程序每隔一段时间主动轮询 mysql 查询 数据列 增删改的状态,对应的去增删改 Lucene 索引,然后会将索引的状态更新到数据列中,方便轮询的时候区分哪些是未索引的数据。

由于mysql主要采用myisam引擎,导致java程序构建索引 轮询数据库的时候,频繁锁表,页面查询的时候无法响应。这里做了下 mysql 主从同步,将所有业务上的更新和查找在 master 上进行,而Lucene后台服务操作slave库,同时也起到备份的作用。这里整理下做主从备份的一些配置。

主库 master:192.168.0.102,mysql 5.6.12,centos

从库 slave:192.168.0.100,mysql 5.5.13,centos

都是采用源码编译,安装过程可以查看我的这篇博文http://www.bitsCN.com/database/201306/221828.html。master、slave 所有的数据表结构都一致。之前我做了一个双master 的配置,可以查看这里http://www.bitsCN.com/database/201306/221828.html

1. master 配置

这里的配置只截取了部分 同步需要的配置,其他的优化方面的暂不考虑

my.cnf:

01

[client]

02

port=3306

03

[mysqld]

04

socket=/usr/local/mysql/mysql.sock

05

basedir=/usr/local/mysql

06

datadir=/usr/local/mysql/data

07

log-error=/usr/local/mysql/data/mysql_error.log

08

pid-file=/usr/local/mysql/data/mysql.pid

09

log-bin = /usr/local/mysql/mysql-bin.log #二进制文件必须开启

10

explicit_defaults_for_timestamp=true

11

innodb_flush_log_at_trx_commit=2 #日志flush到磁盘的,2表示写入到缓存,提高性能,操作系统崩溃会丢失部分数据

12

#master

13

server_id=1

14

expire_logs_days = 10

15

max_binlog_size = 1G

16

binlog-do-db = webportal #同步数据库

17

binlog-ignore-db=information_schema

18

binlog-ignore-db=performance_schema

19

binlog-ignore-db=mysql

20

binlog-ignore-db=test

创建同步用户,在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICAITON SLAVE权限。在主服务器登陆mysql上执行

1

grant replication slave on *.* to 'replication'@'192.168.0.100' identified by '123456';

注: replication@192.168.0.100这里是客户端的ip 可以使用 % 代替,表示允许任意的客户端,例如:

192.168.0.% 。表示该段地址的主机都可作为客户端。

查看master 状态:

1

mysql> show master status/G;

2

*************************** 1. row ***************************

3

File: mysql-bin.000001

4

Position: 416

5

Binlog_Do_DB: webportal

6

Binlog_Ignore_DB: information_schema,performance_schema,mysql,test

7

Executed_Gtid_Set:

8

1 row in set (0.00 sec)

注意上面的 File 和 Position :slave 配置的时候会使用。

2. slave配置

1

[mysqld]

2

server_id=2

3

log-bin=mysql-bin.log

4

replicate-do-db=webportal

用change master语句指定同步位置

1

mysql>change master to master_host='192.168.0.102', master_user='replication', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=525;

2

3

注:master_log_file,master_log_pos由上面master查出的状态值中确定。master_log_file对应File,master_log_pos对应Position。

启用slave;

1

start slave;

关闭slave;

1

stop slave;

查看状态:

1

show slave status;

这里出现了这样一个错误:

Last_IO_Error: Got fatal error 1236 from master when reading data from >> binary log: 'Slave can not handle replication events with the checksum that >> master is configured to log; the first event 'mysql-bin.000001'

这是由于 master 用的 mysql5.6 , binlog_checksum 默认设置的是 crc32。 如果slave用的 5.5 或者更早的版本,请将master的 binglog_checksum设置为 none。

binlog_checksum=none

重启master : ./mysqld restart

查看slave :show slave status/G;

01

mysql> show slave status/G;

02

*************************** 1. row ***********

03

Slave_IO_State: Waiting for mas

04

Master_Host: 192.168.0.102

05

Master_User: replication

06

Master_Port: 3306

07

Connect_Retry: 60

08

Master_Log_File: mysql-bin.00000

09

Read_Master_Log_Pos: 120

10

Relay_Log_File: YZ-relay-bin.00

11

Relay_Log_Pos: 266

12

Relay_Master_Log_File: mysql-bin.00000

13

Slave_IO_Running: Yes #必须为yes

14

Slave_SQL_Running: Yes #必须为yes

15

Replicate_Do_DB: webportal

16

Replicate_Ignore_DB:

17

Replicate_Do_Table:

18

Replicate_Ignore_Table:

19

Replicate_Wild_Do_Table:

20

Replicate_Wild_Ignore_Table:

21

Last_Errno: 0

22

Last_Error:

23

Skip_Counter: 0

24

Exec_Master_Log_Pos: 120

25

Relay_Log_Space: 419

26

Until_Condition: None

27

Until_Log_File:

28

Until_Log_Pos: 0

29

Master_SSL_Allowed: No

30

Master_SSL_CA_File:

31

Master_SSL_CA_Path:

32

Master_SSL_Cert:

33

Master_SSL_Cipher:

34

Master_SSL_Key:

35

Seconds_Behind_Master: 0

36

Master_SSL_Verify_Server_Cert: No

37

Last_IO_Errno: 0

38

Last_IO_Error:

39

Last_SQL_Errno: 0

40

Last_SQL_Error:

41

Replicate_Ignore_Server_Ids:

42

Master_Server_Id: 1

43

1 row in set (0.00 sec)

注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

bitsCN.com

下载本文
显示全文
专题