分享一个 MySQL 简单快速进行自动备份和还原的脚本和方法

image

前言

数据备份和还原在信息技术领域中具有非常重要的作用,不论是人为误操作、硬件故障、病毒感染、自然灾害还是其他原因,数据丢失的风险都是存在的。如果没有备份,一旦数据丢失,可能对个人、企业甚至整个组织造成巨大的损失。

数据是企业的核心资产,在面对突发事件或灾难时,定期备份的数据可以保护数据的完整性和保密性,确保数据的安全和可靠性,帮助组织迅速恢复数据和业务操作,减少停机时间,确保业务的持续运行。

下面分享一个 MySQL 如何进行自动备份和还原的脚本和方法。

自动备份

  1. 创建备份脚本批处理文件,如 mysqlbakup.bat

    echo get the current date
    set year=%date:~0,4%
    set month=%date:~5,2%
    set day=%date:~8,2%rem use the year, month and day as the file name, like 20240618
    set filename=%year%%month%%day%rem The assignment equal sign cannot have spaces on either side
    set mysqldumpPath="C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe"
    set dbName=bookmgr
    set dbUser=root
    set dbPwd=mysql
    set outpurDir=D:/dbbackup/set outputFileName=%outpurDir%%dbName%_%filename%.sqlecho %outputFileName%%mysqldumpPath% -u%dbUser% -p%dbPwd% --opt --ignore-table=bookmgr.report_templete --default-character-set=utf8mb4 -E --triggers -R --hex-blob --flush-logs -x %dbName% > %outputFileName%
    
  2. 参数说明:

    1. -u: 用户名
    2. -p: 密码
    3. –opt: 提供了快速 dump 操作,默认开启
    4. –default-character-set: 使用charset_name作为默认字符集,mysqldump默认使用utf8.
    5. -E: dump 服务器事件,须有event权限
    6. –triggers: 导出表的触发器,默认启动
    7. -R: 导出存储过程和函数
    8. –hex-blob: 使用十六进制表示法转储二进制列
    9. –flush-logs: 切换一下binlog file,在开始dump前,flush 一个新的binlog file。此选项适用于为备份恢复加一个保险。
    10. -x %dbName% 数据库
  3. 以下地方需要注意:

    1. mysqldumpPath 本地 mysqldump.exe 路径
    2. dbName 需要备份的数据库
    3. dbUser 数据库用户名
    4. dbPwd 数据库密码
    5. outpurDir 备份文件输出路径
    6. –default-character-set 数据库字符集,要跟数据库一致
  4. 双击运行这个批处理文件,运行完成后在输出路径查看结果如:

    • 结果:D:\dbbackup\bookmgr_20240618.sql
  5. 测试没问题后,把它加入到 Windows 计划任务,并设置为每天自动备份

还原

  1. CMD 脚本

    C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -uroot -pmysql --default-character-set=utf8mb4 bookmgr_restore < D:\dbbackup\bookmgr_2024.sql
    
  2. 参数说明

    1. -u: 用户名
    2. -p: 密码
    3. –default-character-set 数据库字符集,要跟备份一致
    4. bookmgr_restore 数据库,还原的目标数据库
    5. D:\dbbackup\bookmgr_20240618.sql 备份文件路径

其他

  1. 实践中,在还原时,碰到这个错:Unknown command ‘’’

    这是因为有一个表的数据有单引号 ',备份时被转义为 ',还原的命令中 --default-character-set 跟备份文件不一致,所以无法识别,改为一致就没问题了

  2. 如果在备份时,不导出某个表的数据,可用 –ignore-table 参数,如:

    mysqldump -uroot -p --databases db_name --ignore-table=db_name.table_name
    

总结

总而言之,数据备份和还原对个人、企业和组织来说都至关重要。

定期进行数据备份,并确保备份文件的可靠性和可访问性,是保障数据安全、避免风险和提高业务连续性的重要手段。

因此,建议每个人和组织都应制定合理的数据备份策略,并定期检查和更新备份,以确保数据的安全和可靠性。

希望这份分享可以帮助到你。

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。

都看到这了,求个点赞、关注、在看三连呗,感谢支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阻塞IO、非阻塞IO、异步IO的区别

1. 阻塞IO (Blocking IO) 在传统的阻塞IO模型中&#xff0c;示例中的 serverSocket.accept()&#xff0c;这是一个阻塞调用&#xff0c;意味着调用线程将被挂起直到一个连接请求到达。这是典型的阻塞行为。 import java.io.IOException; import java.net.ServerSocket; impor…

ARM-V9 RME(Realm Management Extension)系统架构之系统初始化流程

安全之安全(security)博客目录导读 目录 一、重置取消 二、应用处理单元&#xff08;PE&#xff09;初始启动 三、MSD初始化 四、GPT初始化 五、初始启动退出&#xff08;由所有应用PE执行&#xff09; 六、RMSD初始化 七、PE进入丢失上下文的低功耗状态 本博客提供了R…

uniapp H5端使用百度地图

1、登录百度地图开放平台 https://lbsyun.baidu.com/&#xff08;没有账号则先去创建一个百度账号&#xff09; 2、进入百度地图开放平台控制台&#xff08;导航栏“控制台”&#xff09;&#xff0c;点击“应用管理”-“我的应用” 3、选择“创建应用”&#xff0c;应用模块选…

msvcr110.dll丢失的解决方法,亲测有效的几种解决方法

最近&#xff0c;我在启动一个程序时&#xff0c;系统突然弹出一个错误提示&#xff0c;告诉我电脑缺失了一个名为msvcr110.dll的文件。这让我感到非常困惑&#xff0c;因为我之前从未遇到过这样的问题。经过一番搜索和尝试&#xff0c;我总结了5种靠谱的解决方法。下面分享给大…

C# 静态类中构造、字段和属性等的执行顺序,含有单例模式分析

C# 静态类时我们实战项目开发中用的非常多的。有些时候可能他的执行顺序并非如我们认为的那样&#xff0c;那就快速来看一下吧&#xff01; 在C#中&#xff0c;静态类的构造函数是在第一次访问该类的任何成员时执行的。静态构造函数是不可继承的&#xff0c;并且在访问静态类的…

百日筑基第三天-SOA初步了解

百日筑基第三天-SOA初步了解 SOA&#xff08;Service-Oriented Architecture&#xff0c;面向服务的架构&#xff09;是一种软件设计原则&#xff0c;它倡导将应用程序分解为独立的服务单元&#xff0c;这些服务通过定义良好的接口相互通信&#xff0c;以实现业务功能。而RPC&…

高效运维:标准化与智能化的运维流程管理实践

高效运维&#xff1a;标准化与智能化的运维流程管理实践 在信息化建设日益深化的今天&#xff0c;运维流程管理已成为企业确保其信息系统稳定、高效运行的关键手段。通过系统化、标准化的运维流程管理&#xff0c;企业能够有效预防系统故障&#xff0c;提升服务质量&#xff0…

7. Revit API UI: ExternalEvent(外部事件)

7. Revit API UI: ExternalEvent&#xff08;外部事件&#xff09; 接着上一篇&#xff0c;上一篇中&#xff0c;我们简单讲了下预览控件&#xff0c;并给了示例。 示例中&#xff0c;通过点击按钮&#xff0c;删除楼板模型&#xff0c;这是怎么做到的呢&#xff1f;这就得用…

React的路由(ReactRouter)-路由导航跳转

1.第一步 // createBrowserRouter路由 RouterProvider组件 import {createBrowserRouter,RouterProvider} from react-router-dom // 创建router实例对象&#xff0c;并配置路由对应关系 const routercreateBrowserRouter([{path:/login,element:<div>我是登录页</di…

vue3-登录小案例(借助ElementPlus+axios)

1.创建一个vue3的项目。 npm create vuelatest 2.引入Elementplus组件库 链接&#xff1a;安装 | Element Plus npm install element-plus --save 在main.js中引入 import ElementPlus from "element-plus";import "element-plus/dist/index.css";ap…

【Android】Android中继承Activity、Application和AppCompatActivity的区别

在 Android 开发中&#xff0c;Activity、Application 和 AppCompatActivity 是三个重要的类&#xff0c;它们各自有不同的作用和用途&#xff1a; 1. Activity Activity 是 Android 应用中的一个核心组件&#xff0c;代表了用户界面上的一个单一屏幕或交互界面。每个 Activi…

python--序列化模块json与pickle

什么叫序列化&#xff1f; 将原本的字典、列表等内容转换成一个字符串的过程就 叫做序列化。 多用的两个序列化模块&#xff1a;json与pickle json&#xff0c;用于字符串 和 python数据类型间进行转换 pickle&#xff0c;用于python特有的类型 和 python的数据类型间进行转换 …

在 Debian 系统上安装 `make` 并且编译安装 Python 3.9

在 Debian 系统上安装 make 工具和 Python 3.9 1. 准备工作 首先&#xff0c;确保你的系统已经更新到最新的软件包列表&#xff1a; sudo apt update2. 安装 make 工具 make 工具可以通过以下命令来安装&#xff1a; sudo apt install make安装完成后&#xff0c;你可以使…

Scania斯堪尼亚SHL题库综合能力性格测试真题题型解析及面试经验

一、走进Scania斯堪尼亚 Scania是一家成立于1891年的瑞典公司&#xff0c;专注于重型卡车和巴士的制造&#xff0c;以其模块化系统和环保设计闻名。作为全球领先的运输解决方案提供商&#xff0c;Scania不仅提供高质量的车辆&#xff0c;还提供相关服务和融资解决方案。公司秉…

Ruby langchainrb gem and custom configuration for the model setup

题意&#xff1a;Ruby 的 langchainrb gem 以及针对模型设置的自定义配置 问题背景&#xff1a; I am working in a prototype using the gem langchainrb. I am using the module assistant module to implemente a basic RAG architecture. 我正在使用 langchainrb 这个 ge…

Beautiful Soup的使用

1、Beautiful Soup简介 Beautiful Soup是一个Python的一个HTML或XML的解析库&#xff0c;我们用它可以方便地从网页中提取数据。 Beautiful Soup 提供一些简单的、Python 式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱&#xff0c;通过解析文档为用户提供需要抓…

java线程间的通信- notify和 wait

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

JDBC中的事务及其ACID特性

在JDBC&#xff08;Java Database Connectivity&#xff09;中&#xff0c;事务&#xff08;Transaction&#xff09;是指作为单个逻辑工作单元执行的一系列操作。这些操作要么全部执行&#xff0c;要么全部不执行&#xff0c;从而确保数据库的完整性和一致性。事务是现代数据库…

实战|记一次java协同办公OA系统源码审计

前言 因为笔者也是代码审计初学者&#xff0c;写得不好的地方请见谅。该文章是以项目实战角度出发&#xff0c;希望能给大家带来启发。 审计过程 审计思路 1、拿到一个项目首先要看它使用了什么技术框架&#xff0c;是使用了ssh框架&#xff0c;还是使用了ssm框架&#xff…

面试突击指南:Java基础面试题2

面向对象和集合 1. 面向对象和面向过程的区别 面向过程:面向过程的编程方式是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,并在使用的时候逐个调用。这种方式性能较高,因此在单片机和嵌入式开发中经常采用面向过程开发。 面向对象:面向对象的编程方式是把问…