mysql 互为主备 宕机 数据丢失_mysql 主从复制、读写分离、模拟宕机、备份恢复方案生产环境实战...

本文详细介绍了MySQL主从复制的配置过程,包括主从同步、读写分离的实现。在主宕机情况下,如何选择合适从库作为新主,并进行数据恢复。此外,探讨了双主设置和增量恢复的方法,提供生产环境的备份恢复方案。
摘要由CSDN通过智能技术生成

本章内容:

主从复制

简介原理

备份主库及恢复从库,配置从库生效

读写分离

如果主宕机了,怎么办?

双主的情况

MySQL 备份及恢复方案

备份单个及多个数据库

mysqldump 的常用参数

如何增量恢复呢?

增量恢复的必要条件

生产环境 mysqldump 备份命令

恢复喽

一、MySQL主从复制

1、简介

我们为什么要用主从复制?

主从复制目的:

可以做数据库的实时备份,保证数据的完整性;

可做读写分离,主服务器只管写,从服务器只管读,这样可以提升整体性能。

原理图:

从上图可以看出,同步是靠log文件同步读写完成的。

2、更改配置文件

两天机器都操作,确保 server-id 要不同,通常主ID要小于从ID。一定注意。

# 3306和3307分别代表2台机器

# 打开log-bin,并使server-id不一样

#vim /data/3306/my.cnf

log-bin = /data/3306/mysql-bin

server-id = 1

#vim /data/3307/my.cnf

log-bin = /data/3307/mysql-bin

server-id = 3

#检查

1、

[root@bogon ~]# egrep "log-bin|server-id" /data/3306/my.cnf

log-bin = /data/3306/mysql-bin

server-id = 1

[root@bogon ~]# egrep "log-bin|server-id" /data/3307/my.cnf

log-bin = /data/3307/mysql-bin

server-id = 3

2、

[root@localhost ~]# mysql -uroot -p -S /data/3306/mysql.sock -e "show variables like 'log_bin';"

Enter password:

+-----------------------+--------+

| Variable_name | Value |

+-----------------------+--------+

| log_bin | ON | # ON 为开始开启成功

+-----------------------+--------+

3、建立用于从库复制的账号rep

通常会创建一个用于主从复制的专用账户,不要忘记授权。

# 主库授权,允许从库来连接我取日志

[root@localhost ~]# mysql -uroot -p -S /data/3306/mysql.sock

Enter password:

# 允许从库192.168.200网段连接,账号rep,密码nick。

mysql> grant replication slave on *.* to 'rep'@'192.168.200.%' identified by 'nick';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

# 检查创建的rep账号:

mysql> select user,host from mysql.user;

+--------+-----------------------------+

| user | host |

+--------+------------------------------+

| root | 127.0.0.1 |

| rep | 192.168.200.% |

| root | localhost |

| root | localhost.localdomain |

+--------+------------------------------+

7 rows in set (0.00 sec)

4、备份主库,及恢复到从库

把主库现有数据备份下来,再恢复到从库,此时两个主机的数据一致。

如果事先有数据的话,这不不能忘。

1) 在主库上加锁,使只有只读权限。

mysql> flush table with read lock;

Query OK, 0 rows affected (0.00 sec)

#5.1、5.5锁表命令略有不同。

# 5.1锁表:flush tables with read lock;

# 5.5锁表:flush table with read lock;

2) 记住就是这个点备份的。

mysql> show master status;

+---------------------------+-------------+-------------------+--------------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+----------------------------+------------+-------------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值