Mysql主从复制搭建

mastermysql server my.cnf配置内容如下

[client]

port = 3306

socket = /tmp/mysql.sock

[mysqld]

server-id = 1

port = 3306

basedir = /usr/bin

bind-address = 0.0.0.0

datadir = /var/lib/mysql

socket = /tmp/mysql.sock

log_error = /var/lib/mysql/mysql-error.log

log-bin=mysql-bin

binlog_format = ROW

innodb_buffer_pool_size = 1G

innodb_file_per_table=1

character-set-server = utf8

启动mysql,登陆数据库

mysql>CREATE DATABASE IF NOT EXISTS cattleCOLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';

mysql>GRANT ALL ON cattle.* TO'cattle'@'%' IDENTIFIED BY 'cattle';

mysql>GRANT ALL ON cattle.* TO'cattle'@'localhost' IDENTIFIED BY 'cattle';

slave mysql server my.cnf配置文件:

[client]

port = 3306

[mysqld]

server-id = 2

port = 3306

basedir = /usr/bin

bind-address = 0.0.0.0

datadir = /var/lib/mysql

socket = /tmp/mysql.sock

log_error = /var/lib/mysql/mysql-error.log

log-bin=mysql-bin

binlog_format = ROW

innodb_buffer_pool_size = 1G

innodb_file_per_table=1

character-set-server = utf8

relay-log = slave-relay-bin

log-slave-updates

sync_relay_log = 1

开启ranch server 连接外部数据库:

docker run -d --restart=unless-stopped -p8080:8080 rancher/server \

--db-host 10.0.0.53--db-port 3306 --db-user cattle --db-pass cattle --db-name cattle

Tip --db-host 10.0.0.53 master mysql serverip address

登陆rancher server: https:// 10.0.0.53:8080

Master mysql server复制账号设置:

Mysql>grant replication slave on *.* to slave@'%' identified by '123456';

备份主库数据库:

记录备份时mysql 主库备份时的log日志文件名和pos位置:

mysql>mysql> show master status\G

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

File: mysql-bin.000024

Position: 7187

Binlog_Do_DB: cattle

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.01 sec)

备份mysql主库的cattle 数据库:

mysqldump-uroot -p --opt --flush-logs --databases cattle >mysql-cattle-bak.sql

在slave 从库服务器还原:

Mysql�Curoot �Cp < mysql-fullbak-vgtest3.sql

在slave 从库执行如下命令:

mysql>CHANGE MASTER TO MASTER_HOST = '10.0.0.53', MASTER_USER = 'slave',MASTER_PORT = 3306, MASTER_PASSWORD = '123456', master_log_file='mysql-bin.000012',master_log_pos= 560332;

mysql>start slave;

mysql> show slave status\G

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

Slave_IO_State: Waiting formaster to send event

Master_Host: 10.0.0.53

Master_User: repl

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000025

Read_Master_Log_Pos: 14761

Relay_Log_File:slave-relay-bin.000004

Relay_Log_Pos: 14974

Relay_Master_Log_File: mysql-bin.000025

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: cattle

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 14761

Relay_Log_Space: 15228

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

Master_UUID:6cd9cf95-7018-11e7-acf6-080027e889c6

Master_Info_File: /var/lib/mysql/master.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read all relay log; waiting for moreupdates

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position: 0

Replicate_Rewrite_DB:

Channel_Name:

Master_TLS_Version:

1 row in set (0.00 sec)

Tip: 如果Slave_IO_Running:Yes ; Slave_SQL_Running: Yes 证明复制设置成功。

Mysql数据库备份软件xtrabackup安装

下载并安装软件安装源

wgethttps://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb

dpkg-i percona-release_0.1-4.$(lsb_release -sc)_all.deb

apt-getupdate

apt-getinstall percona-xtrabackup-24

mysql数据库的全备份:

innobackupex --defaults-file=/etc/mysql/my.cnf--user=root --password=123456 --host=10.0.0.52 --socket=/tmp/mysql.sock --no-timestamp  /opt/mysqlbak

全备份恢复

停止数据库:

Servicemysql stop

删除数据库数据目录文件(比如在/var/lib/mysql):

Rm  -rf/var/lib/mysql/*

使用xtrabackup恢复:

innobackupex --apply-log  /opt/mysqlbak

innobackupex --defaults-file=/etc/mysql/my.cnf --copy-back /opt/mysqlbak

启动mysql:

chown -R mysql.mysql /var/lib/mysql

Service mysql start

增量备份

第一次增量备份:

innobackupex--defaults-file=/etc/mysql/my.cnf --user=root --password=123456--host=10.0.0.52 --socket=/tmp/mysql.sock --no-timestamp  --incremental-basedir=/opt/mysqlbaktest/mysqlfullbak--incremental /opt/mysqlbaktest/increment1

tip: incremental-basedir: 指向全备份的目录

第2次增量备份:

innobackupex--defaults-file=/etc/mysql/my.cnf --user=root --password=123456--host=10.0.0.52 --socket=/tmp/mysql.sock --no-timestamp  --incremental-basedir=/opt/mysqlbaktest/increment1--incremental /opt/mysqlbaktest/increment2

tip: incremental-basedir:指向第一次增量备份的目录。

增量备份还原

将最近一次全备数据库文件执行redo重做

innobackupex --apply-log --redo-only/opt/mysqlbaktest/mysqlfullbak

将第一次增量备份库执行redo重做并且合并到全备库中

innobackupex --apply-log --redo-only /opt/mysqlbaktest/mysqlfullbak--incremental-dir=/opt/mysqlbaktest/increment1

将最后一次增量备份日志合并到全备份库中,注意不用--redo-only

innobackupex --apply-log /opt/mysqlbaktest/mysqlfullbak--incremental-dir=/opt/mysqlbaktest/increment2

最后还原数据库:

innobackupex--copy-back /opt/mysqlbaktest/mysqlfullbak

chown  -R mysql.mysql/var/lib/mysql

service mysql start

mysql镜像备份和同步备份_mysql 主从同步及备份相关推荐

  1. mysql+主从同步端口_MySQL主从同步配置

    MySQL主从同步 1. 主从同步的定义 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave).因为复 ...

  2. mysql 主从同步 速度_MySQL主从同步延迟原因及解决办法

    MySQL主从同步延迟原因及解决办法 MySQL主从延迟原因以及解决方案: 谈到MySQL数据库主从同步延迟原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作(mysq ...

  3. mysql 主从同步不一致_MySQL 主从同步延迟的原因及解决办法

    mysql 用主从同步的方法进行读写分离,减轻主服务器的压力的做法现在在业内做的非常普遍. 主从同步基本上能做到实时同步.我从别的网站借用了主从同步的原理图. 在配置好了, 主从同步以后, 主服务器会 ...

  4. mysql主从复制延时性问题_MySQL主从同步延迟原因及解决办法

    MySQL主从延迟原因以及解决方案:谈到MySQL数据库主从同步延迟原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作(mysql5.6版本之前),主库对所有DDL和D ...

  5. mysql 从服务器同步设置_mysql主从同步配置

    1.为什么要主从同步? 在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一.尤其是在大规模系统中,数据库集群已经成为必备的配置之一.集群的好处主要有:查询负载.数据库复制备份等.其中Ma ...

  6. mysql主从同步原理_mysql主从同步以及原理

    mysql主从复制介绍 当前的生产工作中,大多数应用的mysql主从同步都是异步的复制方式,即不是严格实时的数据同步. 实时和异步: 同步复制: 指的是客户端连接到MySQL主服务器写入一段数据,My ...

  7. mysql的主从同步问题_mysql主从同步问题梳理

    前言: MySQL主从复制故障机延迟原因有很多,之前详细介绍了Mysql主从复制的原理和部署过程,在mysql同步过程中会出现很多问题,导致数据同步异常.以下梳理了几种主从同步中可能存在的问题: 1) ...

  8. mysql设置主从同步只读_MySql主从同步设置

    主MySql服务器A:192.168.1.3 从MySql服务器B:192.168.1.4 1.编辑A的my.cnf,一般在/etc/my.cnf,在[mysqld]下面添加 log-bin=mysq ...

  9. mysql 主从同步 工具_mysql主从同步工具maatkit安装

    Maatkit是非常不错的mysql管理工具,网络评价非常不错.包含以下主要工具: 1.mk-table-checksum 检查主从表是否一致的有效工具 2.mk-table-sync 有效保证表一致 ...

最新文章

  1. hdu 2006 求奇数的乘积(c语言)
  2. oracle随机日期没有斜杠,收集awk的一些技巧,放到这里以方便今后查阅
  3. python学习高级篇(part2)--类方法,静态方法,访问控制
  4. Blazor 路由及导航开发指南
  5. 上车时机已到--.NETCore是适应时代发展的雄鹰利剑
  6. VS2008调试总结
  7. 最简单的CSocket通信流程
  8. java 字段名重复,java – JSON响应中的重复字段
  9. 会做饭的机器人曰记_做饭机器人作文作文300字
  10. RabbitMQ 功能
  11. 屏幕取词编程学习总结
  12. 极限编程(XP)简介
  13. 使用 LwIP TCP/IP 栈,在 STM32Cube 上开发应用
  14. 水滴筹、轻松筹干架,从线上到线下:员工医院互殴引围观
  15. 北斗由“高大上”转为“接地气” 芯片成国内智能手机标配
  16. html5游戏一键端,【稀有游戏】伊卡洛斯ol手工端+VM一键端+伊卡洛斯客户端
  17. 如何用Modis模拟WAP上网
  18. 嵌入式系统开发设计---嵌入式系统开发设计
  19. 05.ESP8266连接网络
  20. 极空间袁斌:存储的未来应聚焦“数字资产的安全保管

热门文章

  1. Python里面使用的容器
  2. 直接插入排序(C语言)实现
  3. virtio数据结构总览 | 图
  4. 数据平面开发套件(DPDK)中的Vhost / Virtio的配置和性能
  5. 利用ptrace和memfd_create混淆程序名和参数
  6. linux下基于Posix message queue的同步消息队列的实现
  7. 【gSOAP】gSOAP生成服务代理和对象C语言代码示例
  8. INET Sockets Tour: ioctl()
  9. 用c语言写的电话簿的程序,用C语言散列表实现电话薄
  10. java线程池读文件_多线程读取Java文件