首页 > 数据库 >MySQL 容灾备份

MySQL 容灾备份

时间:2023-07-25 18:44:38浏览次数:42  
标签:-- 备份 容灾 备份文件 mysqlhotcopy MySQL 数据库

容灾备份:

数据备份:

直接对数据库进行备份:
# 数据库备份 语句  
# 不指定表名的话 默认就是整个数据库备份
# 备份文件可以指定绝对路径
mysqldump -u [用户名] -p [库名] [表名] ... > [备份文件.sql]

# 多个数据库备份 语句
mysqldump -u [用户名] -p --databases [库名] [库名] > [备份文件.sql]

# 备份所有数据库 语句
mysqldump -u [用户名] -p -all-databases > [备份文件.sql]
直接备份数据库目录:

就是将MySQL中的数据库文件直接复制出来 这是最简单 速度最快的方法
不过这样操作 最好在操作的时候把服务停了 不然会造成数据差异 开发环境倒无所谓
注意:这种方法不适用于InnoDB存储引擎的表 而对于MyISAM存储引擎的表很方便
同时 还原时MySQL的版本最好相同

使用mysqlhotcopy 热备份:
# 使用mysqlhotcopy备份命令
mysqlhotcopy [选项] [数据库名称] [数据库名称] [备份目录]/

# 常用选项:
--help:查看mysqlhotcopy帮助;
--allowold:如果备份目录下存在相同的备份文件,将旧的备份文件加上_old;
--keepold:如果备份目录下存在相同的备份文件,不删除旧的备份文件,而是将旧的文件更名;
--flushlog:本次辈分之后,将对数据库的更新记录到日志中;
--noindices:只备份数据文件,不备份索引文件;
--user=用户名:用来指定用户名,可以用-u代替;
--password=密码:用来指定密码,可以用-p代替。使用-p时,密码与-p之间没有空格;
--port=端口号:用来指定访问端口,可以用-P代替;
--socket=socket文件:用来指定socket文件,可以用-S代替;

mysqlhotcopy的备份方式比mysqldump快
mysqlhotcopy是一个perl脚本,主要在Linux系统下使用。其使用LOCK TABLES、FLUSH TABLES和cp来进行快速备份

原理:先将需要备份的数据库加上一个读锁,然后用FLUSH TABLES将内存中的数据写回到硬盘上的数据库,最后,把需要备份的数据库文件复制到目标目录。

mysqlhotcopy并非mysql自带 需要安装Perl的数据库接口包 该工具也仅仅能够备份MyISAM类型的表

数据恢复:

  • 使用mysqldump命令备份 进行还原:
# 还原使用mysqldump命令备份的数据库的语法如下:
mysql -u root -p [库名] < [备份文件]
  • 直接复制目录的备份 进行还原:

    通过这种方式还原时,必须保证两个MySQL数据库的版本号是相同的。
    MyISAM类型的表有效,对于InnoDB类型的表不可用,InnoDB表的表空间不能直接复制

容灾处理:

MySQL的容灾处理 基本就是通过主从和集群为数据服务器提前装配冗余的数据服务(也可能不是冗余的数据服务)

通过主从和集群实现多点数据服务 保证在其中一个数据服务出现问题(断电、宕机)时 其他数据服务器能接管用户的正常业务

读写分离:

水平分区:

标签:--,备份,容灾,备份文件,mysqlhotcopy,MySQL,数据库
From: https://www.cnblogs.com/AnotherVincent/p/17580637.html

相关文章

  • MySQL 索引
    索引分析:索引概述:定义:MySQL官方对索引的定义:索引(Index)是帮助MySQL高效获取数据的数据结构。结论:索引是数据结构结构:MySQL支持多种存储引擎而各种存储引擎对索引的支持也各不相同因此MySQL数据库支持多种索引类型如BTree索引、哈希索引、全文索引等等目前大部分数据库......
  • kettle连接数据库报错:Error connecting to database: (using class org.gjt.mm.mysql.
    kettle连接MySQL报错但已经把相应的包放到kettle的lib目录下时,仍然报连接不上的错误,那可能是MySQL时区的问题。解决如下:登入MySQL修改为东八区的命令:方法一:mysql>setglobalmax_allowed_packet=1024*1024;mysql>setglobaltime_zone='+8:00';方法二:修改my.ini文件,在[mysql......
  • Mysql开启慢查询日志
    查看mysql的慢查询日志是否开启showvariableslike'%query%';  可以看到slow_query_log的值是OFF,mysql默认是不启用慢查询日志的。这里还有个long_query_time,默认是10秒,也就是超过了10秒即为慢查询。log_queries_not_using_indexes,如果设置为ON,则会将所有没有使用索引的查......
  • mysql 中 myisam 与 innodb 的区别?
     1.事务支持>MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。>InnoDB:提供事务支持事务,外部键等高级数据库功能。具有事务(commit)、回滚(rollback)和崩溃修复能力(crashrecoverycapabilities)的事务安全(transaction-safe(......
  • springboot mysql 配置 propertis
    SpringBootMySQL配置Properties在SpringBoot应用程序中,我们经常需要使用MySQL数据库来存储和检索数据。为了连接和配置MySQL数据库,我们可以使用application.properties文件。这篇文章将向您展示如何使用SpringBoot的application.properties文件来配置MySQL数据库连接。1.引......
  • 允许任意IP访问mysql数据库
    问题描述MYSQL默认只能本地连接,即127.0.0.1和localhost,其他主机IP无法访问数据库,否则会出现如下报错信息:HostisnotallowedtoconnecttothisMySQLserver一、先在本地用localhost用户登录MYSQLmysql>mysql-hlocalhost-uroot-p1二、查询用户表mysql>selecthost,us......
  • MySql对应的C#类型
    数据库中字段类型对应C#中的数据类型:数据库C#程序intint32textstringbigintint64binarySystem.Byte[]bitBooleancharstringdatetimeSystem.DateTimedecimal......
  • MySQL索引失效
    使用函数或表达式:当查询中使用函数或表达式操作列时,MySQL无法使用该列上的索引。例如,WHERE子句中使用函数、表达式或算术操作,如DATE_FORMAT、CONCAT、IF等,可能导致索引失效。列类型不匹配:在查询中,如果列的类型与索引的列类型不匹配,索引可能失效。例如,如果索引是整数类......
  • Mysql 增删改查语言系列
    Mysql数据语言系列目录Mysql数据语言系列一.数据定义语言DDL1数据库规范2DDL语言使用2创建视图二.数据操纵语言DML1插入语法2更新语法3删除语法4伪删除5数据恢复6案例三.数据控制语言DCL1概念2用户管理3权限管理4角色管理四.数据查询类语句DQL1语法格式......
  • 安装mysql启动服务过长
    安装MySQL启动服务过长的原因及解决方法在安装MySQL时,有时会遇到启动服务过长的问题。本文将介绍这个问题的原因以及可能的解决方法。问题描述当我们安装MySQL并尝试启动服务时,可能会遇到启动过程非常缓慢的情况。在终端或命令行中,我们可能会看到类似以下的输出:StartingMySQL.......