对MySQL数据库执行非热备操作的要点

mysql备份恢复的场景一:

数据库数据比较小的情况下,使用mysqldump做完全备份,使用mysqlbinlog做增量备份。

完全备份,示例:

# mysqldump -A --lock-all-tables --routines --triggers --master-data=2 > /backup/all-`date +%F`.sql

增量备份,示例:

# mysqlbinlog /mydata/data/mysql-bin.0000## > /backup/incre-`date +%F`.sql

恢复的过程:

1、关闭数据库:

# service mysqld stop

2、修改配置文件,使得启动数据库也不对外提供服务:

# vim /etc/my.cnf   #在mysqld字段添加如下内容:
skip-networking

还Mysql使用的套接字文件的位置,避免其他人使用数据库

socket=/home/USERNAME/mysql.sock   #在修改配置文件中生成mysql.sock文件的位置的时候,客户端和服务器端的配置都需要改动为一致的mysql.sock文件路径及名称。这样其他的客户端在连接的时候由于配置的不一致而无法连接到数据库,而修复数据库的管理员是可以的。

3、启动数据库,并尝试恢复:

# service mysqld start

这个时候一定要记得如果在命令行下直接输入# mysql < /path/from/file.sql的方式恢复数据库,那么新生成的数据库中会多出来很多的二进制日志记录。所以这种恢复的方式是不太好的,或者说习惯是不好的,备份的时候使用命令行,这种习惯是好的,恢复的时候要连入数据库,先将环境变量设置为不记录二进制日志,然后再恢复,这样可以避免很多不必要的日志记录,免去磁盘空间的浪费。

连入数据库:

# mysql 
> SET session sql_log_bin=0;
> SOURCE /path/from/file.sql;
> SOURCE /path/from/incre.sql;

将所有的数据都恢复回来以后,开启二进制日志的记录功能。

> SET session sql_log_bin=1;
>\q

停止Mysql服务

# service mysqld stop

编辑配置文件,将服务的权限放开,删除掉skip-networking选项,修改套接字文件生成的目录位置至原来定义的位置。:

# vim /etc/my.cnf

以完全访问的模式重启服务器。

# service mysqld start

mysql备份恢复场景二

基于LVM快照的方式备份:

连入mysql数据库,对数据库的所有表施加共享锁:

# mysql
> FLUSH TABLES WITH READ LOCK;

在实际的生产环境中这条命令可能会请求很长时间长能完成对所有表施加锁,

施加锁成功后,需要记录一下此时使用的二进制日志文件及日志所在的位置信息,要将这个信息保存做好记录并备份。

> SHOW MASTER STATUS;

此时,可以另起一个终端,进行快照的创建,简单的示例如下:

# lvcreate -s -L SIZE -p r -n NAME /dev/VG_NAME/LV_NAME

创建好快照以后,在前一个终端执行一下日志滚动的功能:

> FLUSH LOGS  这样操作的目的是生成新的二进制日志记录文件,之后的二进制日志都会被存放进这个文件中,备份数据库的操作理解起来比较容易,只是习惯很多时候更为重要,也是避免数据有损失的很重要的保证,之前的备份方式中,mysqldump命令可以做全部备份,其带有的--master-data选项可以记录二进制日志文件的名称及位置,我个人觉得在使用mysqldump做备份时滚动日志并不利于日后做增量备份时查看之前备份的位置,为了避免操作上的重复查看日志内容,也避免在习惯上会遗漏,有时滚动,有时忘记滚动日志,就会对备份的数据造成影响。而使用基于快照的方式备份时,建议使用FLUSH LOGS,这样生成新的日志文件,便于快照备份的文件与数据库中文件进行比较查看,所以,在这种场景下最好是使用这个命令。如果数据库数据很小,我觉得还是做每次做完全备份来得简单,而且恢复数据也方便。使用一个完全备份的脚本基本可以解决问题。

滚动日志之后释放锁:

> UNLOCK TABLES;

之后进行快照内容的复制和归档备份的操作。

使用LVM方式备份的数据库恢复操作:

这个过程其实比mysqldump命令的恢复方式基本一致,只是将完全备份的数据库内容复制到数据库的数据目录下,然后如果有其他的增量部分的数据恢复就需要使用二进制日志文件做增量部分的数据恢复操作。不过具体的操作过程也是要按照前一种恢复的方式,恢复的时候启动服务也不要对外提供服务,而且要关闭二进制日志记录的功能(当有增量数据的情况下需要恢复时),避免产生不必要的二进制日志记录。

mysql备份工作中要备份很关键的是二进制日志文件,二进制日志文件与数据库的数据目录不能在一个磁盘上,这是最基本的要求,另外,还要备份配置文件,这些都是数据库配置工作中重要的基础性工作。

时间: 2024-12-21 13:43:31

对MySQL数据库执行非热备操作的要点的相关文章

linux环境下搭建MySQL数据库的双击热备

准备服务器 由于Mysql不同版本之间的(二进制日志)binlog格式可能会不太一样,因此最好的搭配组合是主(Master)服务器的Mysql版本和从(Slave)服务器版本相同或者更低,主服务器的版本肯定不能高于从服务器版本.本次我用于测试的两台服务器版本都是Mysql-5.5.17. Mysql 建立主-从服务器双机热备配置步骤 2.1环境描述A服务器(主服务器Master):59.151.15.36B服务器(从服务器Slave):218.206.70.146主从服务器的Mysql版本皆为5

Mysql+Keepalived双主热备高可用操作步骤详细解析

mysql+keepalived双主热备高可用的介绍: 我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.使用Keepalived,可以通过虚拟IP,实现双主对外的统一接口以及自动检查.失败切换机制,从而实现MySQL数据库的

MySql数据库双主(双向)同步实现数据库双主热备

MySql数据库双主(双向)同步实现数据库双主热备配置步骤有一点复杂,大家一定要看清楚每一步小细节哦,希望文章对各位会带来帮助呀. 之前写过一篇 mysql Master Slave主从同步(复制)配置,属于数据库备份级别的.现在的需求是,两台服务器上都装有数据库,为了防止某一服务器出现问题而影响业务的运行,需要准备两台服务器分别运行mysql,且需要两台服务器的数据是保持同步的.也就是现在要说的mysql双向同步,实现数据库主备模式. 基础环境 操作服务器系统:Ubuntu 12.04 64-

Mysql+Keepalived双主热备高可用操作记录

环境: ubuntu18.04.2 mysql5.7.21 1 #1)安装keepalived并将其配置成系统服务.master1和master2两台机器上同样进行如下操作: 2 apt-get install libssl-dev 3 apt-get install openssl 4 apt-get install libpopt-dev 5 [[email protected] ~]# cd /usr/local/src/ 6 [[email protected] src]# wget h

Mysql+keeoalived双主热备高可用操作记录

我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.之前梳理了Mysql主从同步,下面说下Mysql+keeoalived双主热备高可用方案的实施. 1)Keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议.在VRRP中有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器. 2)VRRP路由器

mysql+keepalived 双主热备高可用

理论介绍:我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.使用Keepalived,可以通过虚拟IP,实现双主对外的统一接口以及自动检查.失败切换机制,从而实现MySQL数据库的高可用方案. 环境说明:版本 version

MySQL高可用性之Keepalived+MySQL(双主热备)

MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了双主对外的统一接口以及自动检查.失败切换机制.联合使用,可以实现MySQL数据库的高可用方案. 环境描述:OS:CentOS6.5_X64MASTER:192.168.196.133BACKUP:192.168.196.134VIP:192.168.196.135 操作系统时间一致更改:# date

Linux 下mysql的双主热备

Linux 下mysql的双主热备                             作者:浩浩哥来了 1.数据库同步设置   主机操作系统:RedHatEnterprise Linux 6 数据库版本 前提:MYSQL数据库正常启动 假设两台主机地址分别为:   ServA:192.168.18.112 ServB:192.168.18.114   注意:操作前,全文查找替换,将server A.B替换成实际IP   2.配置同步账号   在ServA上增加一个ServB可以登录的帐号:

Mycat+Mysql主从复制实现双机热备

Mycat+Mysql主从复制实现双机热备 一.mysql主从配置原理 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库中的数据一致. 这样做有如下几点好处: 1. 可以做灾备,其中一个坏了可以切换到另一个. 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量. 对于异地热备,尤其适合灾备. 二.mysql 主从备份工作原理 简单的说就是把 一个服务器上执行过的sql语句在别的服务器上也重复执行一