mysql数据库中的逻辑备份,mysql逻辑备份和物理备份区别

本文目录一览:

mysql如何快速备份

来源:知乎

河南-老宋(志强)

问题描述的不是非常的清晰

使用mysqldump备份时一般会会加上–single-transaction参数,这里假设你是加了这个参数。

一 加速备份

1 加了single-transaction参数 备份时 需要先flush table with read lock 这个过程中会有一个锁表的过程,如果有事务或语句正在执行,没有结束,那么备份进程会一直等待,并且阻塞别的事务,那么也会影响业务。所以要先确认备份的时候没有大的事务在运行。

具体 single-transaction的加锁可以参考 我的博客:mysqldump备份时加single-transaction会不会加锁

2 mysqldump是单进程的,没有办法并行,但现在机器的瓶颈多是出现在IO方面,可以使用更了的IO设备加快速度

3 mysqldump时如果空间够的话,不要边压缩边备份

二 加速恢复

1 关闭binlog:不写入Binlog会大大的加快数据导入的速度

2 innodb_flush_log_at_trx_commit=0

3 更好的配置

建议:

一 如果非要使用逻辑备份,可以考虑mysqldumper, mysqlpump(5.7)这两个工具去备份,这两个在备份的时候支持并行操作,mysqldumper还可以对单表进行恢复,在只需要恢复单表的情况下,恢复速度会大大加快

二 使用物理备份 xtrabackup (open source),MEB(oracle提供,收费): 他们的备份原理是基于mysql crash recover, 备份速度 是和逻辑备份的相差不太大。但是恢复速度却有很大的提升。

逻辑备份 备出来的是sql语句文件,恢复时需要一条一条的执行sql,所以恢复很慢。

而物理备份和还原的速度 相当于直接copy文件,所以恢复的时候性能有很大的提升

并且这两个软件还支持并行,效果更好。

逻辑备份最大的优点是 备份好的文件经压缩后占用空间较小,最大缺点恢复太慢

物理备份可以很快的恢复,但是备份好的文件压缩后占用空间比逻辑备份要大。

使用云,你做为用户可以不用考虑这些事情。

附:xtrabackup的并行参数

Parallel local backups

Parallel compression

Parallel encryption

Parallel apply-log

Gary Chen

《MySQL DBA修炼之道》作者。从事数据库领域10多年。

1.一般来说,你只有靠更好的硬件. 软件没有大的变动的情况下不可能突破硬件瓶颈;

2. mysqldump默认的导出选项已经可以了,单进程的工具不要期望太多,TommyChiu介绍的工具可试试.;

3. 导出的时候观察下系统,如果是cpu瓶颈,你基本无解.如果是swap问题,看是否是因为内存不够;

4. 恢复的时候主要是一个参数:innodb_flush_log_at_trx_commit=2

TommyChiu

mk-parallel-dump 试试

mysql中备份和还原数据库的语句什么啊

一、Mysql数据库备份指令格式:

mysqldump -h主机名 -P端口 -u用户名 -p密码 (–database) 数据库名 文件名.sql

注:直接cmd执行该指令即可,不需要先mysql -u root -p链接数据库

1、备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword databasename backupfile.sql

2、备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump -–add-drop-table -uusername -ppassword databasename backupfile.sql

二、数据库还原有三种方式:source命令、mysql、gunzip命令

1、source 命令

进入mysql数据库控制台,

mysql -u root -p

mysqluse 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysqlsource /home/work/db/bkdb.sql

2、mysql

mysql -hhostname -uusername -ppassword databasename backupfile.sql

3、gunzip

gunzip backupfile.sql.gz | mysql -uusername -ppassword databasename

mysql如何备份数据库

物理备份,可以使用开源软件xtrabackup

逻辑备份,可以使用mysql自带的工具mysqldump

如何使用mysqldump命令备份mysql数据库

mysqldump: 最早,也是最成熟的逻辑备份工具,是 MySQL 原生的用来备份整个数据库实例、单个数据库、单张表的逻辑备份工具, 上手简单,学习成本几乎为 0。备份简单,恢复也简单。

比如导出单个数据库 ytt: mysqldump ytt /tmp/ytt.sql;

恢复也非常简单:mysql /tmp/ytt.sql

缺点是备份速度慢。在整个备份过程中,是单线程运行;备份出来的数据集要恢复的话同样也是单线程运行,恢复速度也慢。除非对同一时刻的所有表单独备份出来,自己写额外脚本进行多线程恢复。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/288826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-24 03:00
下一篇 2024-12-24 03:01

相关推荐

  • Python中new和init的区别

    new和init都是Python中常用的魔法方法,它们分别负责对象的创建和初始化,本文将从多个角度详细阐述它们的区别。 一、创建对象 new方法是用来创建一个对象的,它是一个类级别…

    编程 2025-04-29
  • Sublime Test与Python的区别

    Sublime Text是一款流行的文本编辑器,而Python是一种广泛使用的编程语言。虽然Sublime Text可以用于编写Python代码,但它们之间有很多不同之处。接下来从…

    编程 2025-04-29
  • Shell脚本与Python脚本的区别

    本文将从多个方面对Shell脚本与Python脚本的区别做详细的阐述。 一、语法差异 Shell脚本和Python脚本的语法存在明显差异。 Shell脚本是一种基于字符命令行的语言…

    编程 2025-04-29
  • Python中while语句和for语句的区别

    while语句和for语句是Python中两种常见的循环语句,它们都可以用于重复执行一段代码。然而,它们的语法和适用场景有所不同。本文将从多个方面详细阐述Python中while语…

    编程 2025-04-29
  • Web程序和桌面程序的区别

    Web程序和桌面程序都是进行软件开发的方式,但是它们之间存在很大的区别。本文将从多角度进行阐述。 一、运行方式 Web程序运行于互联网上,用户可以通过使用浏览器来访问它。而桌面程序…

    编程 2025-04-29
  • TensorFlow和Python的区别

    TensorFlow和Python是现如今最受欢迎的机器学习平台和编程语言。虽然两者都处于机器学习领域的主流阵营,但它们有很多区别。本文将从多个方面对TensorFlow和Pyth…

    编程 2025-04-28
  • MySQL bigint与long的区别

    本文将从数据类型定义、存储空间、数据范围、计算效率、应用场景五个方面详细阐述MySQL bigint与long的区别。 一、数据类型定义 bigint在MySQL中是一种有符号的整…

    编程 2025-04-28
  • 麦语言与Python的区别

    麦语言和Python都是非常受欢迎的编程语言。它们各自有自己的优缺点和适合的应用场景。本文将从语言特性、语法、生态系统等多个方面,对麦语言和Python进行详细比较和阐述。 一、语…

    编程 2025-04-28
  • Python与C语言的区别和联系

    Python与C语言是两种常用的编程语言,虽然两者都可以用于编写软件程序,但是它们之间有很多不同之处。本文将从多个方面对Python与C语言的区别和联系进行详细的阐述。 一、语法特…

    编程 2025-04-28
  • Python中深拷贝和浅拷贝的区别

    本文将从以下几个方面对Python中深拷贝和浅拷贝的区别做详细的阐述,包括:拷贝的含义、变量和对象的区别、浅拷贝的示例、深拷贝的示例、可变对象和不可变对象的区别、嵌套的数据结构以及…

    编程 2025-04-28

发表回复

登录后才能评论