首页 > 数据库 >mysql数据库物理及逻辑备份

mysql数据库物理及逻辑备份

时间:2023-11-24 11:57:31浏览次数:42  
标签:app mysql 数据库 sql test 备份

一、理论知识
1.1:物理备份
备份数据库操作系统的物理文件(数据文件、日志文件等):

冷备份(脱机备份):关闭数据库进行
热备份(联机备份):数据库正运行,依赖数据库的日志文件
温备份:数据库锁定表格(可读不可写)后进行
常见方法:

物理冷备:拷贝数据库文件打包备份,需进行锁表-备份-解表。恢复时拷贝到数据库文件原存放目录
第三方工具热备份:免费MySQL热备份软件Percona XtraBackup
1.2:逻辑备份
备份数据库逻辑组件(表等数据库对象),备份策略角度可分为:

完全备份:每次对数据进行完整备份
差异备份:备份自上次完全备份后被修改过的文件
增量备份:只有在上次完全备份或增量备份后被修改的文件
常见方法:

常用逻辑备份工具:使用mysqldump将数据表导成sql脚本文件
二进制日志增量备份:MYSQL主从复制,将DDL和DML操作通过二进制文件(bin-log)传送到服务器上,再从服务器上对这些日志做重新执行操作
也可以使用select…into outfile语句。
二、实操
2.1:物理冷备和恢复
tar数据备份(完全备份)
关闭数据库

systemctl stop mysqld
1
创建目录专门存放数据库的备份数据

mkdir /app/mysql_backup
1
切换到数据库的目录下,将数据拷贝到备份目录下

tar -zcvf /app/mysql_backup/mysql_all-$(date +%F).tar.gz /app/mysql/data/
#$(date +%F)先执行,以时间命名
1
2
启动数据库

systemctl start mysqld
1
备份成功
注意:备份数据应该复制到其他服务器或存储上

数据还原
启动数据库

systemctl start mysqld
1
清理原先数据库中的数据

rm -rf /app/mysql/data/*
1
查询导入备份数据mysql_all-2023-10-13tar.gz

cd /app/mysql_backup
ll
# 总用量 1288
# -rw-r--r-- 1 root root 1316616 10月 13 16:14 mysql_all-2023-10-13tar.gz
tar -xvf /app/mysql_backup/mysql_all-2023-10-13tar.gz -C /app/mysql/data
# -C 重定向,重定向到原数据库目录下
1
2
3
4
5
6


启动数据库

systemctl start mysql
1
登录时需重新找到初始密码,执行以下语句

cat /路径/mysqld.log | grep password | grep localhost:|awk -F"localhost:" '{print $NF}'
1
知识补充: tar命令参数⬅详细内容请点链接

必用其中之一,最后都要跟 -f 使用档案名字
-c:建立压缩档案(产生新的包)
-x:解压
-r:向压缩归档文件末尾追加文件(增加文件)
-u:更新原压缩包中的文件
可选参数
-z:有gzip属性的

2.2:mysqldump备份与恢复
mysqldump是MySQL自带的备份工具,可方便实现对MySQL的备份。可以将指定的库、表导出为SQL脚本。
使用命令mysql导入备份的数据

mysqldump -u root -p --all-databses > all-data-$(date +%F).sql ###备份所有数据库
mysqldump -u root -p -databases auth mysql > auth-mysql.sql ###备份auth和mysql库
mysqldump -u root -p auth > auth-$(data +%F).sql ###备份auth数据库
mysqldump -u root -p mysql user > mysql-user-$(date +%F).sql ###备份mysql的user表
mysqldump -u root -p -d mysql user > /tmp/desc-mysql-user.sql ###备份mysql库user表的结构
1
2
3
4
5
对test_db库进行备份

mysqldump -u root -p test_db > /app/mysql_backup/test_db-$(date +%F).sql
1
查看备份文件为test_db-2023-10-13.sql

cd /app/mysql_backup
ls
# mysql_all-2023-10-13tar.gz  test_db-2023-10-13.sql
1
2
3


连接MySQL,查看test_db数据库中的原有表及数据

mysql> use test_db;
mysql> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| score             |
+-------------------+
1
2
3
4
5
6
7
删除原表(模拟数据丢失)

mysql> drop table score;
1
用source恢复

mysql> source /app/mysql_backup/test_db-2023-10-13.sql;
1
再次查看就可以发现数据已经恢复了

 

标签:app,mysql,数据库,sql,test,备份
From: https://www.cnblogs.com/ruiy/p/17853413.html

相关文章

  • 时区的坑:数据时间在不同数据库中差8小时、13小时、14小时是怎么回事
    为什么会同一条数据,会有小时差异恭喜你,十有八九,就是时区的问题:首先要明确的是,我们中国的标准时区是东八区,就是世界协调时间(UTC)加上八个小时,也就是UTC+8。格林尼治标准时间最坑的是美国时间,因为美国实行的是夏令时,也就是说美国是有两个时区在一天内来回切换,有几个月是西六区,......
  • 数据库连接不关闭 导致数据库 内存不断上升 内存溢出 OOM
     现象:数据库关闭原因:执行业务逻辑的一个函数,每次调用时,都新建连接,但函数返回时没有关闭连接;该函数被不断调用:数据库内存不断增长,OOM,被监控程序杀死。实测:在函数返回前关闭连接,可以避免数据库OOM。       翻译搜索复制......
  • MySQL大表设计怎么做?
    MySQL是一种常用的关系型数据库管理系统,它在处理大表时需要特别注意设计和优化。下面将详细介绍MySQL大表的设计原则和优化策略。1.数据库设计数据库范式化:将数据按照规范的关系模型进行拆分和组织,避免数据冗余和更新异常。合理选择主键:选择适合业务需求的主键类型,并确保主键......
  • 备份还原剪切板
    忘记是抄谁的了,这里改进了一下。还原后没有clear并再一次备份。因为还原一次后,如果再还原,会句柄无效的。unitclipbak;interfaceusesSysUtils,Classes,Clipbrd,Windows,Contnrs,Dialogs;typeTClipData=classFormat:WORD;Data:THANDLE;......
  • 数据库总结复习(并发控制二)
    目录前言死锁解决方法超时等待法等待图法串行化概念验证串行化判断冲突可串行化举例为了保证可串行而出现的封锁协议--两段锁协议概念与一次封锁的区别前言本文为JMU22级数据库原理考前复习而总结归纳,刨除了课本以及课堂上晦涩且长篇大论的文章,以尽量简洁易懂的语句来对知识点进......
  • 高斯数据库HCNA之双机数据库安装
    一、双机数据库安装1、禁用防火墙及SElinuxsystemctlstopfirewalldsystemctldisablefirewalldsed-i-e's,enforcing,disabled,'/etc/selinux/config2、创建用户groupadddbgrpuseradd-gdbgrp-d/home/omm-m-s/bin/bashommechoredhat|passwd--stdinomm3......
  • 数据库
    数据库基础面试第一弹 1.SQL语句类型1.DDL(DataDefinitionLanguage,数据定义语言):DDL语句用于定义数据库对象(如表、索引、视图等)。常见的DDL语句包括:CREATE:用于创建数据库对象,如创建表、索引、视图等。ALTER:用于修改数据库对象的结构,如修改表的列、添加约束等......
  • C#winform中使用SQLite数据库
    公众号「DotNet学习交流」,分享学习DotNet的点滴。SQLite简介SQLite是一种轻量级的关系型数据库管理系统(RDBMS),它以一个C库的形式提供。以下是SQLite数据库的一些关键特点:1、无服务器:SQLite是一种无服务器的数据库管理系统,这意味着它不需要单独的服务器进程来运行。应用程序直接......
  • 第二单元 数据库操作
    1.数据库文件组成主数据文件主要数据文件的建议文件扩展名是.mdf。主要数据文件包含数据库的启动信息,并指向数据库中的其他文件,存储部分或全部的数据。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件。mdf文件并非普通......
  • openGauss学习笔记-131 openGauss 数据库运维-启停openGauss
    openGauss学习笔记-131openGauss数据库运维-启停openGauss131.1启动openGauss以操作系统用户omm登录数据库主节点。使用以下命令启动openGauss。gs_om-tstart说明:双机启动必须以双机模式启动,若中间过程以单机模式启动,则必须修复才能恢复双机关系,用gs_ctlbuild进......