教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 MySQL实现实时备份的配置过程详解

MySQL实现实时备份的配置过程详解

发布时间:2017-12-12   编辑:jiaochengji.com
教程集为您提供MySQL实现实时备份的配置过程详解等资源,欢迎您收藏本站,我们将为您提供最新的MySQL实现实时备份的配置过程详解资源
MySQL实现实时备份没有做过做过最多的就是定时备份了,我们今天一起来看看关于MySQL实现实时备份的配置过程了,希望例子能够帮助到各位。

前面笔者在其他随笔中有说过,公司数据库选用的是免安装版并且是在Windows上,等过段时间我会将数据库迁移至Linux

因公司开发操作数据库之多,如不及时备份,万一操作失误,恢复可就成难题了

此篇随笔将介绍如何进行 MySQL 的实时备份

 

环境介绍

 

两台服务器进行主从同步复制(安装可以通过google查询相关资料或者看笔者的这篇免安装版)

利用Windows脚本和Windows自带的计划任务,将主服务器进行实时备份(下面进行演示)

Maseter MySQL: 192.168.1.253

Slave    MySQL: 192.168.1.254

在主服务器上开启二进制日志功能,设置唯一的服务器ID编号,这些设置需要重启MySQL服务

在从服务器上设置唯一的服务器ID编号,这些设置需要重启MySQL服务

在主服务器上为了不用从服务器创建可以读取主服务器日志文件的用户,或使用相同的统一用户

在进行数据复制之前,需要记录主服务器上二进制文件的位置的标记

在进行数据复制之前,保证从服务器和主服务器上的数据一致

回到顶部

 

主服务器的配置

在实际的环境中,可能在我们还没有部署数据库的同步前,数据库中就已经存在大量的数据。所以,在操作数据库的时候一定记住备份


mysqldump -u root -p --all-databases --lock-all-tables > G:/dbdump.sql
Enter password: ******

我们需要在主服务器上开启二进制日志并设置服务器编号,服务器唯一编号是2的32次方减1之间的整数,根据自己的实际情况而设置

进行这些设置需要关闭MySQL数据库并编辑my.ini或者my.cnf文件,然后在[mysqld]是指段添加相应的配置选项


C:\Users\Administrator>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。 
[mysqld]
log-bin=mysql-bin
server-id=1 
C:\Users\Administrator>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
为了使从服务器能够同步复制,我们需要创建一个同步复制的用户

执行数据复制时,所有的从服务器都需要使用用户与密码连接MySQL主服务器,所以在主服务器上必须存在至少一个用户及相应的密码提供从服务器来连接

但是这个用户必须拥有"REPLICATION SLAVE" 权限,当然你可以给不同的从服务器创建不用的用户与密码,也可以使用统一的用户与密码

如果该用户仅为数据库复制所使用,则该用户仅需要"REPLICATION SLAVE"权限即可

C:\Users\Administrator>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.25 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slaveAdmin';
Query OK, 0 rows affected (0.02 sec)
 
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
Query OK, 0 rows affected (0.00 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit
Bye
获取主服务器二进制日志信息

 首先我们来了解一下二进制文件的基本信息,这些信息在对从服务器的设置需要用到,它包括服务器二进制文件名称及当前日志记录位置,这样从服务器就可以知道哪里开始进行复制操作

当我们得到二进制文件名以及二进制当前记录的位置时请牢记,在从服务器上会用到

从服务器的配置

 和主服务器一样,需要配置my.ini或者my.cnf 文件,注意这里的从服务器ID编号


C:\Users\Administrator>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。 
[mysqld]
server-id=2 
C:\Users\Administrator>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。


对于复制而言,MySQL从服务器二进制功能是不需要开启的,当然也可以开启从服务器上的二进制功能来实现数据备份与恢复

•在介绍里面我已经说到在进行数据复制之前,保证从服务器和主服务器上的数据一致,还记得我刚才将主服务器的MySQL进行备份吗?! 可以将这备份还原到从服务器上面,这样主从的数据就是一样的了

 

mysql -u root -p < D:/dbdump.sql

 

Enter password: ******

 

•配置从服务器连接主服务器进行数据复制

 

1.其实数据复制的关键操作是配置从服务器去连接主服务器进行数据复制,我们需要告诉从服务器建立网络连接所有必要的信息

2.使用 CHANGE MASTER TO 语句完成与主服务器的连接工作

 

   † MASTER_HOST 指定主服务器主机名或者Ip地址

 

   † MASTER_USER 为刚才在主服务器上创建的拥有复制权限的用户

 

   † MASTER_PASSWORD 为改用户的秘密

 

   †  MASTER_LOG_FILE 指定主服务器二进制日志文件名称

 

   † MASTER_LOG_POS 指定主服务器二进制日志文件当前的位置

1.START LSAVE 开启从服务器功能进行主从连接

2.SHOW SLAVE STATUS 查看从服务器状态


mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.1.253',
    -> MASTER_USER='slave',
    -> MASTER_PASSWORD='slaveAdmin',
    -> MASTER_LOG_FILE='mysql-bin.000004',
    -> MASTER_LOG_POS=9876212;
Query OK, 0 rows affected (0.00 sec) 
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW SLAVE STATUS\G;
查看状态时,下面两个都要为 YES 说明才是正常运行状态,如果IO为No 则检查密码或者从新写入

查看状态时,下面两个都要为 YES 说明才是正常运行状态,如果IO为No 则检查密码或者从新写入

Slave_IO_Running:

Slave_SQL_Running:

现在当我们在主服务器上创建一个数据库时,我们再到从服务器上查看,这时就可以看到已经把主服务器上新创建数据库的同步过来了


mysql> create database vforbox;
Query OK, 1 row affected (0.00 sec)
 
mysql> show databases;
--------------------
| Database           |
--------------------
| information_schema |
| mysql              |
| performance_schema |
| test               |
| vforbox            |
--------------------
 
mysql> show databases;
--------------------
| Database           |
--------------------
| information_schema |
| mysql              |
| performance_schema |
| test               |
| vforbox            |
--------------------
Windows 定时备份数据库脚本

上面介绍中已经提到用Windows脚本和Windows自带的计划任务,将主服务器进行实时备份

这里笔者献上代码,如有更好的脚本推荐请发至笔者的邮箱

新建一个 "mysql_auto_bak.bat"


@echo off
cls
color 3E
title

您可能感兴趣的文章:
Linux下备份与还原整个MySQL整个数据库的脚本
解决Lost connection to MySQL server during query错误方法
mysql命令之备份数据库
MySQL常用配置方法
MySQL实现实时备份的配置过程详解
使用LVM快照功能实现MySQL热备份
shell脚本备份mysql数据库的实例解析
php Mysql数据库备份类及调用方法
mysql备份与恢复机制详解
分享:Mysql 5.0存储过程学习总结

[关闭]
~ ~