广告
返回顶部
首页 > 资讯 > 数据库 >015—备份、还原和数据迁移
  • 385
分享到

015—备份、还原和数据迁移

2024-04-02 19:04:59 385人浏览 安东尼
摘要

备份: 按是否备份全部数据可以将备份划分为:  l 完全备份 l 增量备份:指的是备份自上一次备份以来(增量或完全)以来变化的数据; 特

备份:

 

按是否备份全部数据可以将备份划分为: 

 

l 完全备份

 

l 增量备份:指的是备份自上一次备份以来(增量或完全)以来变化的数据; 特点: 节约空间、还原麻烦。

 

l 差异备份:指的是备份自上一次完全备份以来变化的数据 特点: 浪费空间、还原比增量备份简单。

 

一般情况下,根据备份策略组合使用:完全+增量;完全+差异。


015—备份、还原和数据迁移


常用备份工具:

1. mysqldump : 逻辑备份工具, 适用于所有的存储引擎, 支持温备、完全备份、部分备份、对于InnoDB存储引擎支持热备 

2. cp, tar 等归档复制工具: 物理备份工具, 适用于所有的存储引擎, 冷备、完全备份、部分备份 

3. lvm2 snapshot: 几乎热备, 借助文件系统管理工具进行备份 

4. Mysqlhotcopy: 名不副实的的一个工具, 几乎冷备, 仅支持MyISAM存储引擎 

5. xtrabackup: 一款非常强大的InnoDB/XtraDB热备工具, 支持完全备份、增量备份, 由percona提供

 

备份策略:


针对不同的场景下, 我们应该制定不同的备份策略对数据库进行备份, 一般情况下, 备份策略一般为以下4种:

 

a. 直接cp,tar复制数据库文件

 

b. mysqldump+复制BIN LOGS

 

c. lvm2快照+复制BIN LOGS

 

d. xtrabackup

 

以上的几种解决方案分别针对于不同的场景:

 

Ø 如果数据量较小, 可以使用第一种方式, 直接复制数据库文件。【如果是将复制的文件拷贝到新的数据库时,需要新数据的版本号高于旧数据库,仅有MYISAM引擎支持,INNODB不支持】

 

Ø 如果数据量还行, 可以使用第二种方式, 先使用mysqldump对数据库进行完全备份, 然后定期备份BINARY LOG达到增量备份的效果。

 

Ø 如果数据量一般, 而又不过分影响业务运行, 可以使用第三种方式, 使用lvm2的快照对数据文件进行备份, 而后定期备份BINARY LOG达到增量备份的效果。

Ø 

Ø 如果数据量很大, 而又不过分影响业务运行, 可以使用第四种方式, 使用xtrabackup进行完全备份后, 定期使用xtrabackup进行增量备份或差异备份。

 

 

1、Mysqldump实现备份恢复


windows环境下】

1) 备份单个数据库或单个数据库中的指定表: 

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

 

 

2) 备份多个数据库: 

mysqldump -h主机名  -P端口 -u用户名 -p密码 –database db1 db2 db3 > 文件名.sql


 

3) 备份所有数据库: 

mysqldump --all -databases > backupname.sql


 

4) 压缩备份:

mysqldump -h hostname -u username -p passWord -database databasename | gzip > backupfile.sql.gz


 

5) 还原MySQL数据库的命令:

 

mysql -hhostname -uusername -ppassword databasename < backupfile.sql


 

6) 还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -u username -p password dbname


 

 

数据迁移:

可以分为:同版本MYSQL迁移;不同版本MYSQL迁移;不同数据库迁移

 

1、直接迁移(备份还原同时进行)【同版本】

mysqldump -h hostname1-u root -p password=password1 -all-databases 
| 
mysql –h hostname2 -u root -password=password2


 

2、【不同版本】低版本可以向高版本迁移,高版本很难向低版本迁移。

 

3、不同数据库迁移,可以实现,但比较复杂。

 

 

===========================================提高==============================================================

增量备份


小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份。增量备份的原理就是使用了mysql的binlog志。

 

1、首先做一次完整备份:

 


mysqldump -h20.6.208.183 -utest2 -p123 -P3310 --single-transaction  --master-data=2  test>test.sql


这时候就会得到一个全备文件test.sql

 

在sql文件中我们会看到:

-- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;是指备份后所有的更改将会保存到bin-log.000002二进制文件中。

2、在test库的t_student表中增加两条记录,然后执行flush logs命令。这时将会产生一个新的二进制日志文件bin-log.000003,bin-log.000002则保存了全备过后的所有更改,既增加记录的操作也保存在了bin-log.00002中。

 

3、再在test库中的a表中增加两条记录,然后误删除t_student表和a表。a中增加记录的操作和删除表a和t_student的操作都记录在bin-log.000003中。

 

恢复


1、首先导入全备数据

 

mysql -h20.6.208.183 -utest2 -p123  -P3310 < test.sql,

也可以直接在mysql命令行下面用source导入

 

2、恢复bin-log.000002

 

mysqlbinlog bin-log.000002 |mysql -h20.6.208.183 -utest2 -p123  -P3310

 

 

3、恢复部分 bin-log.000003

 

   在general_log中找到误删除的时间点,然后更加对应的时间点到bin-log.000003中找到相应的position点,需要恢复到误删除的前面一个position点。

 

可以用如下参数来控制binlog的区间

 

--start-position 开始点 --stop-position 结束点

 

--start-date 开始时间  --stop-date  结束时间

 

找到恢复点后,既可以开始恢复。

 

 mysqlbinlog mysql-bin.000003 --stop-position=208 |mysql -h20.6.208.183 -utest2 -p123  -P3310


 

 

 参考:

1、学会4种MYSQL备份方法                    2、常用MSQL备份还原命令

 

 


您可能感兴趣的文档:

--结束END--

本文标题: 015—备份、还原和数据迁移

本文链接: https://www.lsjlt.com/news/43378.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 015—备份、还原和数据迁移
    备份: 按是否备份全部数据可以将备份划分为:  l 完全备份 l 增量备份:指的是备份自上一次备份以来(增量或完全)以来变化的数据; 特...
    99+
    2022-10-18
  • 备份、还原和迁移MongoDB数据库的方法是什么
    这篇文章主要介绍了备份、还原和迁移MongoDB数据库的方法是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mongodump是mongod...
    99+
    2022-10-18
  • MySQL数据备份、还原、数据库迁移以及表的导出和导入
    目录前言一、数据备份1、使用mysqldump命令备份2、直接复制整个数据库目录3、使用mysqlhotcopy工具快速备份二、数据还原1、使用mysql命令还原2、直接复制到数据库目录三、数据库迁移1、相同版本的MyS...
    99+
    2022-11-08
  • postgresql数据备份迁移
    前提背景: 项目开发的时候,我们一般都会分为测试环境和正式环境,当本地调试基本完成之后,项目向正式环境迁移的时候,数据相应的也要全量迁移到正式环境,因为我们使用的pgsql数据库,这里就为大家介...
    99+
    2023-09-16
    postgresql 数据库 服务器
  • mysql数据库备份和还原
    备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 备份MySQL数据库为带删...
    99+
    2022-05-27
    数据库备份 mysql
  • mysql备份和还原数据库
    备份数据库:/usr/local/kkmail/service/mysql/bin/mysqldump -u kkmail -p --databases kkmail |gzip>20180309.s...
    99+
    2022-10-18
  • MySQL数据备份、还原、数据库迁移及表的导出和导入怎么实现
    本篇内容介绍了“MySQL数据备份、还原、数据库迁移及表的导出和导入怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2022-11-30
    mysql
  • PostgreSQL数据库备份和还原(七)
    备份数据库三种方法:SQL转储文件系统级备份。持续存档。 SQL转储使用SQL命令生成一个文件。备份用法: pg_dump dbname>dumpfile pg_dump是一个常规的...
    99+
    2022-10-18
  • 如何备份和还原MySQL数据
    如何备份和还原MySQL数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用mysqldump进行备份和还原使用mysqld...
    99+
    2022-10-18
  • 03 SQL2005数据库备份和还原
    1、数据库备份的意义硬件故障或误操作2、数据库的恢复模式(数据库属性——选项——恢复模式)完整:可恢复到数据库故障时间点或指定时间点大容量日志:数据库日志不记录对数据修改的时间,效率高,通过日志只能恢复到故障时间点简单:事务日志,将不活跃的...
    99+
    2019-04-18
    03 SQL2005数据库备份和还原 数据库入门 数据库基础教程 数据库 mysql
  • Cacti数据备份与还原
    一.备份1.将数据库文件导出来,执行以下命令:mysqldump -ucactiuser -pcactipw cacti > mysql123.sql     意思是:m...
    99+
    2022-10-18
  • Oracle备份、还原数据库
    备份数据库 创建备份目录(用sys账号),若已创建备份目录,此步可忽略 create directory db_bak as "D: ECIMS_DB" --查看创建的目录 select * from dba_directo...
    99+
    2018-09-04
    Oracle备份 还原数据库
  • Mongodb 数据备份与还原
    1. mongodb 数据库的备份与还原 1.1 mongodump 命令参数mongodump --helpUsage:mongodump <options> Export the conte...
    99+
    2022-10-18
  • SQLServer之master数据库备份和还原
    知识部分系统数据库:SQL Server 2008 R2默认包括四个系统数据库,分别是master、model、msdb、tempdb。其中master数据库用以记录所有系统级别的信息、所有的登陆账户和系统...
    99+
    2022-10-18
  • SQL server数据库的备份和还原
    SQL server的备份有如下三种:1、完整备份:完整备份包括对整个数据库、部分事务日志、数据库结构和文件结构的备份。它代表的是备份完成时刻的数据库。是所有备份类型的基础。 2、差异备份:是指对上一次完...
    99+
    2022-10-18
  • 如何备份和还原MSSQL数据库
    这篇文章主要讲解了“如何备份和还原MSSQL数据库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何备份和还原MSSQL数据库”吧! 如何备份、还原MSS...
    99+
    2022-10-18
  • HANA数据库备份查看和还原
    1.检查trace文件cat backup.log |grep "/usr/sap/HEQ/HDB00/backup/data/"2.通过studio检查catalog3.查看视图M_BACKUP_CATA...
    99+
    2022-10-18
  • 基于xtrabackup实现数据备份还原——高效的数据备份还原工具
    准备一个干净的备份目录;[root@mysql ~]$ll /backups/ total 0 MariaDB [(none)]> show&nbs...
    99+
    2022-10-18
  • 数据库的备份与还原系列——全备份+两增量的备份与还原
    场景:周日全备份,周一,周二增量备份,周三出现问题,数分钟后发现; 数据库的安装: yum install mariadb-server -y systemctl s...
    99+
    2022-10-18
  • MySQL数据备份及还原(一)
    关于删库跑路的事故现在已经屡见不鲜了,数据备份的必要性是企业数据管理极其重要的一项工作。关于数据备份、恢复也有很多场景及方法,本系列也会将主要的几种工具通过案例进行演示。 本系列将从逻辑备份及恢复开始讲起,逻辑备份的工具主要有my...
    99+
    2021-08-19
    MySQL数据备份及还原(一)
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作