ITPub博客

首页 > 数据库 > MySQL > MYSQL_架构之主从异步复制

MYSQL_架构之主从异步复制

原创 MySQL 作者:adamjunior 时间:2020-03-14 21:58:05 0 删除 编辑

/

主服务器

从服务器

Ip

192.168.31,79

192.168.31.188

hostname

mysql

mysql2

mysql-version

5.7.23

5.7.23

server-id

0ac92118-59f9-11ea-8806-080027c1c1ff

2516faba-65f4-11ea-82b6-080027b0e953

 

1.主库修改参数文件

[root@mysql soft]# vi /etc/my.cnf

添加内容如下:

server-id=79   # 设置主服务器的ID(不能和别的服务器重复,随意)

innodb_flush_log_at_trx_commit=2 # 可以配置的值:0/1/2; 0、效率最高,最不安全;1、最安全,但是效率最低;2、安全和效率平衡的取舍,在服务器系统挂掉的情况下会丢失数据;

sync_binlog=1  # ,值可设置 1、500、1000;可自己根据测试性能配置

log-bin=mysql-bin  #binlog 日志文件名

binlog-ignore-db=mysql # 表示不同步mysql库

binlog-ignore-db=information_schema

binlog-ignore-db=oggmysql

binlog-ignore-db=sys

binlog-ignore-db=performance_schema

binlog-do-db=TEST # 表示同步TEST库

 

2.主库创建同步账号

[root@mysql ~]# mysql -uroot -p

mysql> create user 'sync'@'%' identified by 'Oracle123'

mysql> grant FILe on *.* to 'sync'@'192.168.31.188' identified by 'Oracle123';

#赋予FILE权限,允许从从库ip访问主库

mysql> grant replication slave on *.* to 'sync'@'192.168.31.188' identified by 'Oracle123';

#赋予主从同步权限

mysql> flush privileges;

 

3.重启主库

[root@mysql ~]# service mysqld stop

[root@mysql ~]# service mysqld start

[root@mysql ~]# mysql -uroot -p

mysql> show master status;

注:以上截图中的FILE,POSTTION在备库配置时需要使用到

 

4. 主库备份数据库

[root@mysql soft]# mysqldump --single-transaction -uroot -pOracle123 TEST > TEST_20200310.sql

 

5.从库恢复数据库

mysql> create database TEST;

[root@mysql2 soft]# mysql -uroot -pOracle123 TEST < TEST_20200310.sql

 

 

6.从库参数修改

[root@mysql2 mysql]# vi /etc/my.cnf

添加内容如下:

server-id=188

#log-bin=mysql-bin  # 从库提高性能可以不开bin-log日志

replicate-ignore-db=mysql

binlog-ignore-db=information_schema

binlog-ignore-db=oggmysql

binlog-ignore-db=sys

binlog-ignore-db=performance_schema

binlog-do-db=TEST

innodb_flush_log_at_trx_commit=2 # 可以配置的值:0/1/2; 0、效率最高,最不安全;1、最安全,但是效率最低;2、安全和效率平衡的取舍,在服务器系统挂掉的情况下会丢失数据;

sync_binlog=1000  # 每进行n次事务提交之后,MySQL将binlog_cache中的数据强制写入磁盘。

slave_parallel_workers=4 # 根据实际情况决定开启多少个线程用于主从复制

slave_parallel_type=logical_clock # 基于组提交的并行复制方式

master_info_repository=TABLE

relay_log_info_repository=TABLE

relay_log_recovery=ON

 

7. 从库重启

[root@mysql2 data]# service mysql stop

[root@mysql2 data]# service mysql start

 

8.从库配置

mysql> stop slave;

mysql> change master to master_host='192.168.31.79', master_user='sync',master_password='Oracle123', master_log_file='mysql-bin.00001' ,master_log_pos=154;

mysql> start slave;

mysql> show slave status \G;

9.验证

1)主库插入数据

mysql> insert into TEST values (7,'liuqi');

2)备库查询

mysql> select * from TEST;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959726/viewspace-2680302/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
三年之病,求七年之艾。岂可得之?

注册时间:2020-01-14

  • 博文量
    23
  • 访问量
    26395