首页 > 数据库 >MYSQL数据库备份还原,并还原到最新状态(mysqldump)

MYSQL数据库备份还原,并还原到最新状态(mysqldump)

时间:2023-09-02 21:56:30浏览次数:72  
标签:SET -- 备份 MYSQL 二进制 mysqldump mysql 日志 还原

启用二进制日志文件

vim /etc/my.cnf 配置文件位置及文件名根据实际情况确定<br>sql_log_bin=on|off:是否记录二进制日志,默认为on 在需要的时候设置为off="" <br>log_bin="/PATH/BIN_LOG_FILE:指定二进制日志文件位置;" 通常单独存放到与数据库不同的机器中="" <="" p=""></br>sql_log_bin=on|off:是否记录二进制日志,默认为on>

清理二进制日志文件

show master logs; 查看二进制日志文件列表<br>flush logs;="" 切换二进制日志文件(mysql命令),创建新的二进制日志="" <br>mysqladmin="" flush-logs="" 切换二进制日志文件(bash命令)="" <br>purge="" binary="" logs="" to="" 'mysqlbin.000005';="" 删除除mysqlbin.000005日志之前的所有日志,保留mysqlbin.000005及以后的日志="" <br>reset="" master="" 重新001开始记数二进制日志(老版本)。从mariadb10.1.6开始支持to="" #,指定从#开始记数="" <="" p=""></br>flush>

完全备份,并还原到最新状态(mysqldump)

前提条件:启用二进制日志,并单独存放。在mysql数据丢失时,可以还原最新备份到丢失时刻的数据<br>1 完全备份="" <="" p=""></br>1>

mysqldump -A  --single-transaction --master-data=1 > /data/backup/all_mysql.sql

完全备份数据库文件,并存放多份到安全的地方<br>2 修改数据库(在数据表中添加多条记录。模拟数据增加,但还没有备份时数据丢失的情况。可以通过二进制日志还到最新的数据)="" <="" p=""></br>2>

mysql>  insert TABLENAME(col_name,...)value(value,...)

3 数据库文件丢失<br>rm -rf="" data="" mysql="" *="" 测试效果,清空mysql数据目录,数据全部丢失,但开启了二进制日志,并单独存放在其他的硬盘中="" <br>4="" 停止mysql服务="" <="" p=""></br>rm>

service mysqld stop

5 查看完全备份时二进制日志备份的最后位置,实验时备份的最后位置为:CHANGE MASTER TO MASTER_LOG_FILE='mariadb.000001', MASTER_LOG_POS=8944;<br>通过less 命令查看最新的备份文件all_mysql.sql获取此信息="" <="" p=""></br>通过less>

-- MySQL dump 10.16  Distrib 10.2.23-MariaDB, for Linux (x86_64)
--
-- Host: localhost    Database: 
-- ------------------------------------------------------
-- Server version       10.2.23-MariaDB-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */ ;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */ ;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */ ;
/*!40101 SET NAMES utf8 */ ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */ ;
/*!40103 SET TIME_ZONE='+00:00' */ ;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */ ;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */ ;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */ ;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */ ;

--
-- Position to start replication or point-in-time recovery from
--

-- CHANGE MASTER TO MASTER_LOG_FILE='mariadb.000001', MASTER_LOG_POS=8944;

--
-- GTID to start replication from
--
/data/backup/all_2019-05-06.sql
.
.

重启mysql服务:

service mysqld restart

登录mysql :

mysql -uroot -p

临时关闭二进制日志,还原完全备份:

mysql>  set sql_log_bin= off ;  
mysql> soruce /data/backup/all_mysql.sql

6 还原没有备份的新数据<br>新开一个终端:用mysqlbinlog工具导出存放在二进制日志中没有备份的新记录,开始位置为第4步中查询到的位置(实验时为8944) <="" p=""></br>新开一个终端:用mysqlbinlog工具导出存放在二进制日志中没有备份的新记录,开始位置为第4步中查询到的位置(实验时为8944)>

mysqlbinlog  --start-postion=8944 /data/bin/mariadb.000001 > /data/backup/inc.sql

在原终端中继续还原

mysql> soruce /data/backup/inc.sql

到此已经还原全部数据

 

标签:SET,--,备份,MYSQL,二进制,mysqldump,mysql,日志,还原
From: https://www.cnblogs.com/yizhiamumu/p/17674266.html

相关文章

  • IPV6配置mysql
    一、mysql参数影响mysql配置文件my.cnf可以配置一个参数bind-address该参数默认为*,意思是全网监听(可以是ipv4也可以是ipv6)如果该参数设置成ipv4地址,则mysql的3306端口监听ipv4地址如果该参数设置生ipv6地址,则mysql的3306端口监听ipv6地址二、mysql主从配置CHANGEMASTERTO......
  • MySQL的基本语句
    目录1.0数据库操作2.0数据表操作2.1表的创建2.2表的修改2.2.1表中字段的添加2.2.2表中字段的修改2.2.3表中字段的删除2.3表的查询2.3.1查询数据库中所有的表2.3.2查询表结构2.4表的删除2.5表中数据的操作2.5.1表数据的查询2.5.1.1表中数据的简单查询2.5.1.2表中数据......
  • CentOS6.5安装mysql 远程登录
    第1步、yum安装mysql[[email protected]]#yum-yinstallmysql-server直到出现结果: 第2步、设置开机启动[[email protected]]#chkconfigmysqldon这步没提示第3步、启动mysql服务[[email protected]]#servicemysqldstartshell提示: 第4步、修改r......
  • mysql索引(转)
    转载:https://www.php.cn/faq/493277.html一、数据结构区分1.1.B+tree索引根据存储方式,mysql可以分为B+tree索引和哈希索引B+tree索引可以进行全键值、键值范围和键值前缀查询1.2.哈希索引哈希索引也称为散列索引或 HASH索引。MySQL目前仅有MEMORY存储引擎和HEAP存......
  • mysql decode()
    mysqldecode()    举例:    oracle: select  decode(pay_name, ' aaaa ' , ' bbb ' ,pay_name), sum (comm_order), sum (suc_order), sum (suc_amount)  From   payment.order_tab   group   by  decode(pay_name, ' aaaaa ' , ' bb......
  • 12.mysql数据查询
    下面是一些MySQL数据库中的数据查询操作示例,包括单表查询和多表查询,以及相应的示例数据表。单表查询:假设我们有一个名为products的表,用于存储产品信息:CREATETABLEproducts(product_idINTPRIMARYKEY,product_nameVARCHAR(255),categoryVARCHAR(50),......
  • 9.mysql 高可用性和故障恢复
    当考虑在MySQL数据库中实现高可用性和故障恢复时,以下是更详细的步骤和策略:主从复制(Master-SlaveReplication):配置一个主数据库和多个从数据库。启用二进制日志(binarylog)和从数据库的复制功能。设置适当的复制方式(异步复制通常用于高可用性,但可能会有些许延迟)。使......
  • mysql监控和维护
    对MySQL进行监控和维护是确保数据库性能和稳定性的关键部分。以下是一些常见的MySQL监控和维护任务:1.监控工具和服务:MySQLWorkbench:这是MySQL官方提供的一款图形化管理工具,提供性能监控和诊断工具。PerconaToolkit:包括各种有用的工具,如pt-query-digest用于分析慢查询、p......
  • 【Mysql | 空值处理 】
    MySQL中,空值通常用于表示缺失或未定义的值。处理空值的关键在于理解空值与其他值之间的关系,以及如何使用不同的SQL函数来处理和转换空值。(空值处理)NULLValues(空值)MySQL使用SQLSELECT命令及WHERE子句来读取数据表中的数据,但是当提供的查询条件字段为NULL时,该......
  • centos查看mysql默认密码和修改密码
    1、查看mysql默认密码:grep‘temporarypassword’/var/log/mysqld.logroot@localhost:b_1sZou9FZrtb_1sZou9FZrt就是2、修改mysql密码:ALTERUSER‘root’@‘localhost’IDENTIFIEDBY‘newpassword’;‘newpassword’替换成你要设置的密码,注意:密码设置必须要大小写字母数......