MySQL的备份与还原

这篇具有很好参考价值的文章主要介绍了MySQL的备份与还原。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MySQL的备份与还原

1、MySQL的备份说明

热备:

  • 在数据库正在运行下进行备份,备份期间,数据库读写均可以正常进行;

温备:

  • 数据库可用性弱于热备,备份期间,数据库只能进行读操作,不能进行写操作。

冷备:

  • 在备份期间,应用的读写操作不可进行。

2、基于mysqldump命令进行数据备份

#备份一个库
[root@Node1 ~]# mysqldump -uroot -p'123456' --databases LJW > /root/LJW.sql
	#这一行不是报错,而是警告,说你的密码暴露在命令行上
mysqldump: [Warning] Using a password on the command line interface can be insecure.

#备份多个库
[root@Node1 ~]# mysqldump -uroot -p'123456' --databases LJW WEB > /root/LJW-WEB.sql

#备份所有的数据库
[root@Node1 ~]# mysqldump -uroot -p'123456' --all-databases> /root/all.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.

#单独备份一个表格-->备份WEB.t1表格
[root@Node1 ~]# mysqldump -uroot -p'123456'  WEB t1 > /root/t1.sql

数据还原操作

  • 登陆mysql
  • 使用命令source 接上系统路径
#登陆mysql-->进行删除操作
[root@Node1 ~]# mysql -uroot -p'123456'
	#查看一下有什么数据库
mysql> show databases;
	#删除LJW和WEB数据库
mysql> drop database LJW;
mysql> drop database WEB;
Query OK, 1 row affected (0.01 sec)

#现在已经没有了LJW和WEB库;那么进行还原
mysql> source /root/LJW-WEB.sql
	#再次查看发现完全没有问题
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| LCQ                |
| LJW                |
| WEB                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.01 sec)
  • 也可以通过mysql的命令来进行还原操作
    • 必须存在库,只用还原库中的表格结构以及数据,如果数据库被删掉就无法自动创建出来
#登陆mysql-->进行删除操作
[root@Node1 ~]# mysql -uroot -p'123456'
	#查看一下有什么数据库
mysql> show databases;
	#删除LJW和WEB数据库
mysql> drop database LJW;
mysql> drop database WEB;
Query OK, 1 row affected (0.01 sec)

#使用mysql进行还原
[root@Node1 ~]# mysql -uroot -p'123456' < /root/LJW-WEB.sql
	#进入数据库查看
[root@Node1 ~]# mysql -uroot -p'123456' < /root/LJW-WEB.sql
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| LCQ                |
| LJW                |
| WEB                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.00 sec)

3、数据还原–>通过binlog的方式进行

  • 这里需要注意一个点,需要提前知道binlog号
  • 配置文件中也需要注意查看是否有bin-log的配置
  • binlog是默认开启的,日志的操作信息在/var/lib/mysql/目录下
#登陆一个mysql
[root@Node1 ~]# mysql -uroot -p'123456'

#刷新一个binlog
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)

#然后再次查看一下binlog号
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 |      157 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

#创建一下表格
mysql> use LJW;
mysql> create table liangjiawei(id varchar(10),sex varchar(3),name varchar(20)); 
Query OK, 0 rows affected (0.00 sec)

#再次刷新一下binlog日志
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)
	#查看一下binlog号
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 |      157 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

#把004的binlog号归档
[root@Node1 ~]# mysqlbinlog --no-defaults --base64-output=decode-rows -v /var/lib/mysql/mysql-bin.000004

#然后进行删除数据
[root@Node1 ~]# mysql -uroot -p'123456'
..........
mysql> drop table LJW.liangjiawei;
Query OK, 0 rows affected (0.01 sec)

#然后查看是否删除了
mysql> use LJW;
mysql> show tables;
+---------------+
| Tables_in_LJW |
+---------------+
| t1            |
+---------------+
1 row in set (0.00 sec)

#然后进行还原操作
[root@Node1 ~]# mysqlbinlog --no-defaults /var/lib/mysql/mysql-bin.000004 | mysql -uroot -p123456

4、Xtrabackup备份工具

Xtrabackup是Percona团队开发的用于MySQL数据库物理热备份的开源备份工具,

特点:

  • 备份速度快、
  • 支持备份数据压缩、
  • 自动校验备份数据、
  • 支持流式输出、
  • 备份过程中几乎不影响业务等特点
  • 是目前各个云厂商普遍使用的MySQL备份工具。

下载地址:

  • https://www.percona.com/downloads

MySQL的备份与还原,Linux-数据库管理篇,mysql,笔记

具体操作如下:文章来源地址https://www.toymoban.com/news/detail-616195.html

#准备好xtrabackup的软件包
[root@Node1 ~]# ls percona-xtrabackup-80-8.0.33-27.1.el7.x86_64.rpm 
percona-xtrabackup-80-8.0.33-27.1.el7.x86_64.rpm

#直接rpm安装
[root@Node1 ~]# rpm -ivh --nodeps --force percona-xtrabackup-80-8.0.33-27.1.el7.x86_64.rpm 

#查看是否安装成功
[root@Node1 ~]# echo $?
0

#检查一下是否成功安装
[root@Node1 ~]# xtrabackup -v
2023-08-24T10:50:37.739035+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --datadir=/var/lib/mysql 
xtrabackup version 8.0.33-28 based on MySQL server 8.0.33 Linux (x86_64) (revision id: b3a3c3dd)

#创建一个data目录
[root@Node1 ~]# mkdir /data

#对数据进行备份
[root@Node1 ~]# xtrabackup --user=root --password=root --backup --target-dir=/data/mysql_backup
#查看执行是否成功
[root@Node1 ~]# echo $?
0
[root@Node1 ~]# ls /data/mysql_backup/
backup-my.cnf   mysql               xtrabackup_binlog_info
binlog.000002   mysql.ibd           xtrabackup_checkpoints
binlog.index    performance_schema  xtrabackup_info
ib_buffer_pool  sys                 xtrabackup_logfile
ibdata1         undo_001            xtrabackup_tablespaces
LJW             undo_002

# 还原先停mysql服务
[root@Node1 ~]# systemctl stop mysqld
	#然后直接删除mysql的数据-->来点狠点的
[root@Node1 ~]# cd  /var/lib/mysql/
[root@Node1 mysql]# 
[root@Node1 mysql]# rm -rf  LJW

#然后尝试恢复数据
[root@Node1 mysql]# xtrabackup --prerepare --target-dir=/data/mysql_backup
[root@Node1 mysql]# xtrabackup --copy-back --target-dir=/data/mysql_backup/

#修改/data/mysql所属权限,修改/etc/my.cnf配置中的datadir路径
chown -R mysql:mysql /data/mysql
sed -i "s#datadir=/var/lib/mysql#datadir=/data/mysql#g" /etc/my.cnf
[root@yue home]# grep datadir    /etc/my.cnf
datadir=/data/mysql

# 启动mysql服务,验证
systemctl start mysqld

到了这里,关于MySQL的备份与还原的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 达梦数据库的备份和还原

    简要介绍一下达梦数据库备份还原的概念以及如何进行备份还原及故障恢复。 物理备份:拷贝有效数据页。 联机备份 联机即在数据库运行状态下进行备份,必须开归档模式,支持库备份、表空间备份、表备份、归档备份·。它包括完全备份(拷贝所有有效数据页)和增量备

    2024年02月02日
    浏览(52)
  • 达梦数据库的备份与还原

    目录 一、物理备份还原 1、冷备 (1)使用DM控制台工具console备份 (2)使用dmrman工具进行备份 2、热备 (1)开启归档 (2)联机备份 3、还原恢复 (1)表联机还原,需要通过执行sql语句还原 (2)DM控制台工具还原,需要关闭数据库服务 (3)dmrman工具,需要关闭数据库服务

    2024年02月03日
    浏览(41)
  • Sql Server高版本数据库数据备份后还原到低版本数据库

    如果需要将高版本的Sql Server2019数据库还原到Sql Server低版本(2012,2008等)数据库,通过以下方法可以顺利还原 通过高版本生成sql脚本在低版本执行,并且数据也能保留 步骤:选择数据库右键 点击任务 生成脚本 在设置脚本编写选项时,选择高级,编写脚本数据类型选择为架构和数

    2024年02月09日
    浏览(69)
  • 【Linux】Mysql的数据库备份及恢复

            备份就是为了防止原数据丢失,保证数据的安全。当数据库因为某些原因造成部分或 者全部数据丢失后,备份文件可以帮我们找回丢失的数据。因此,数据备份是很重要 的工作。 常见数据库备份的应用场景如下: 数据丢失应用场景: 人为操作失误造成某些数据

    2023年04月10日
    浏览(54)
  • 物联网开发终端管理篇-java从MQTT获取设备数据,并通过Druid连接池把数据写入MySQL数据库(Windows系统)

    下面来给大家做个简单的数据对接,也就是通过写JAVA代码实现MQTT协议 首页我们得搭建一个简单的IDEA项目,这个我就不做演示了 搭建完项目,我们需要准备一些jar包,jar包名如下: org.eclipse.paho.client.mqttv3-1.1.0.jar mysql-connector-java-5.1.34.jar jackson-databind-2.10.0.jar jackson-core-2.10.0

    2024年02月11日
    浏览(52)
  • Linux系统MySQL数据库的备份及应用

    本节主要学习了MySQL数据库的备份:概念,数据备份的重要性,造成数据丢失的原因,备份的类型,常见的备份方法,实例与应用等。 目录 一、概述 二、数据备份的重要性 三、造成数据丢失的原因 四、备份类型 1、物理与逻辑角度 ①物理备份—对数据库操作系统的物理文件

    2024年02月15日
    浏览(39)
  • 系统学习Linux-MySQL数据库备份(四)

    数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,一遍在数据库丢失或损坏时进行恢复,数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务。 备份的主要目的是灾难恢复,备份还可以测试应

    2024年02月15日
    浏览(55)
  • 在SQL server中用sql语句实现数据库的备份以及还原

    本文给大家提供并讲解了在SQL server中用SQL语句实现数据库的备份已经还原 假设你已经有一个数据库Student 创建备份设备,其名称为bk_Student,保存文件为D: Student.bak,并对Student数据库进行完全备份,备份到备份设备bk_ Student中。  在Student数据库中,创建一张表temp并对Student数

    2024年02月03日
    浏览(62)
  • 小白带你学习linux的mysql数据库备份(三十)

    目录 一、概述 二、数据备份的重要性 三、造成数据丢失的原因 四、备份类型 1、物理与逻辑角度 1.1物理备份 1.2冷备份 1.3热备份 1.4逻辑备份 2、数据库备份策略角度 1.1完整备份 1.2增量备份 五、常见的备份方法 1、物理备份 2、使用专用备份工具 3、通过启用二进制日志增量

    2024年02月03日
    浏览(55)
  • 还原Sql Server数据库BAK备份文件的三种方式及常见错误

    这是演示的是Sql Server 2008R2版本,不同版本可能有细微差别 右键点击数据库→还原数据库    在还原的源中选择源设备→点击选择框  在指定备份中点击添加→选择具体文件→确定→确定  勾选用于还原的备份集→这时目标数据库中会自动生成目标数据库名,在此选择即可→

    2023年04月08日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包