`

mysql备份及恢复

阅读更多
注意事项
一、确定要备份的表的存储引擎是事务型还是非事务性,两种不同的存储引擎备份方式在处理数据一致性方面是不太一样的。

二、确定使用全备份还是增量备份。全备份的优点是备份保持最新备份,恢复的时候可以花费更少的时间;缺点是如果数据量大,将会花费很多的时间,并对系统造成较长 时间的压力。增量备份则恰恰相反,只需要备份每天的增量日志,备份时间少,对负载压力也小;缺点就是恢复的时候需要全备份加上次备份到故障前的所有日志, 恢复时间会长些。

三、可以考虑采取复制的方法来做异地备份,但是记住,复制不能代替备份,它对数据库的误操作也无能为力。

四、要定期做备份,备份的周期要充分考虑系统可以承受的恢复时间。备份要在系统负载较小的时候进行。

五、确保MySQL打开log-bin选项,有了BINLOG,MySQL才可以在必要的时候做完整恢复,或基于时间点的恢复,或基于位置的恢复。

六、要经常做备份恢复测试,确保备份是有效的,并且是可以恢复的


热备份
mysqldump
介绍:mysqldump是MySQL自带的备份工具,他备份出来的是一个文本文件可以直接查看,里面记录的就是数据库语句,原理就是通过数据库语句把数据库或表重新建了到备份时状态,其实用图形工具备份原理是一样的(都是逻辑备份)


备份
注意:一定要检查备份文件,注意文件大小不是0,因为即使备份出错也会生成一个空文件

[root@zzh /]# mysqldump -u root -p --all-database > /beifeng/all.sql
备份所以数据库,保存为all.sql文件

[root@zzh /]# mysqldump -u root -p zzh > /beifeng/zzh.sql
备份指定zzh数据库,保存为zzh.sql文件

[root@zzh /]# mysqldump -u root -p zzh kt1 kt2 > /beifeng/biao.sql
备份zzh数据库中的kt1和kt2表,保存为biao.sql文件
-l参数
MyISAM存储引擎在备份的时候需要加,表示将所有表加上锁,在备份期间,所有表将只能读而不能进行数据更新
-F参数 表示生成一个新的日志文件,这个日志记录了之前的操作,用来完全恢复
-u参数 指定用户名
-p参数 指定密码
-h参数 指定服务器ip或者域名
-P(大写) 指定端口


完全恢复
[root@zzh /]# mysql -u root -p zzh < /beifeng/zzh.sql
恢复数据库时,数据库不受任何影响,注意:恢复的库时原库一定要存在
把数据恢复到最新状态
[root@zzh /]# mysqldump -F -u root -p kangte > /beifeng/kangte.sql
备份kangte数据库,加-F生成一个新日志文件恢复时好查找,注意:一定要检查一下备份的文件

这时备份以后数据库发生的操作都会记录到二进制日志里面

[root@zzh /]# cp /mysqldata/mysql-bin.000009 /beifeng/
特别注意:一定要在恢复之前把日志文件拷贝出来,否则日志也会记录恢复操作,把从备份生成后的所有二进制文件拷贝出来

[root@zzh /]# mysql -u root -p kangte < /beifeng/kangte.sql
执行完全恢复kangte数据库,恢复到备份数据库时的状态,此时备份时到数据库恢复之间的操作还没有恢复
[root@zzh /]# mysqlbinlog /beifeng/mysql-bin.000009 | mysql -u root -p kangte
用二进制日志把kangte数据恢复到最新状态


不完全恢复
一、基于时间点恢复(如果00:00:00——00:30:30中间出现问题,可以跳过这段时间恢复数据)
注意:恢复数据库之前最后把二进制文件备份一下
[root@zzh /]# mysqlbinlog --stop-date="2009-09-01 00:00:00" /mysqldata/mysql-bin.000009 | mysql -u root -p kangte
用二进制日志文件把kangte数据库恢复到故障前

[root@zzh /]# mysqlbinlog --start-date="2009-09-01 00:30:30" /mysqldata/mysql-bin.000009 | mysql -u root -p kangte
跳过故障时间点继续恢复kangte数据库

二、基于位置的恢复(可以更精确的恢复数据)
[root@zzh /]# mysqlbinlog --start-date="2009-09-01 00:00:00" --stop-date="2009-09-01 00:30:30" /mysqldata/mysql-bin.000009 > /jilu.txt
根据二进制日志生成00:00:00——00:30:30中间的操作记录文件,这里记录的是对所有数据库的操作

[root@zzh /]# more /jilu.txt
查看文件找出错误点前后对应的语句代号,如at 1000

[root@zzh /]# mysqlbinlog --stop-position="1000" /mysqldata/mysql-bin.000009 | mysql -u root -p kangte
把kangte数据库恢复到代号为1000的语句前,注意:不恢复代号为1000的语句

[root@zzh /]# mysqlbinlog --start-position="1010" /mysqldata/mysql-bin.000009 | mysql -u root -p kangte
恢复代号为1010的语句之后的语句


冷备份
直接拷贝数据库文件,根据情况备份需要备份的文件
[root@zzh /]# /usr/local/mysql/share/mysql/mysql.server stop
先关闭数据库

[root@zzh /]# mkdir beifeng
建立一个目录用来保存备份

[root@zzh /]# tar -zcvf /beifeng/2009.9.tgz ./mysqldata/
备份数据库,注意:备份时一定要清楚自己当前所在目录,这里用的相对路径

[root@zzh /]# /usr/local/mysql/share/mysql/mysql.server start
启动数据库

用冷备份文件还原
注意:如果是一个小文件还原,直接关闭数据库把文件复制还原回去就可以了,但是如果像全库回复,把文件拷回去时间就会很长时间,这时执行下面操作,先把文件解压到新数据库目录,修改my.cnf文件重新指定新数据库目录,这样关闭数据库时间就会很短
[root@zzh beifeng]# mv mysqldata /xindata/
先把备份放到新数据库目录

[root@zzh /]# chown -R mysql.mysql /xindata/
给新数据库目录权限



[root@zzh /]# /usr/local/mysql/share/mysql/mysql.server stop
关闭数据库,注意:一定要把数据库关闭后在修改下面的文件,要不修改完在关库会报错

[root@zzh /]# vim /etc/my.cnf
datadir         = /xindata
设置新数据库目录位置,注意:这个字段默认没有自己在[mysqld]标签下添加

[root@zzh /]# /usr/local/mysql/share/mysql/mysql.server start
分享到:
评论

相关推荐

    MySQL备份及恢复方法

    ### MySQL备份及恢复方法详解 #### 一、MySQL备份的重要性 在数据库管理中,定期进行数据备份是一项至关重要的任务。数据库备份不仅可以防止因系统故障、人为错误或恶意攻击导致的数据丢失,还可以确保业务连续性...

    l\MySQL备份及恢复方法

    ### MySQL备份及恢复方法 #### 方法一:使用图形化辅助工具 MySQL的图形化辅助工具是一种非常便捷的方式来处理数据库的管理、备份、迁移以及查询等工作。对于那些对SQL语言不甚熟悉的用户来说,这些工具提供了直观...

    nbu&mysql备份恢复.docx

    NBU&MySQL备份恢复 NBU(NetBackup)是一款功能强大的备份恢复软件,而MySQL是一款流行的关系型数据库管理系统。本文将详细介绍如何使用NBU来备份和恢复MySQL数据库。 NBU备份mysql的优势 使用NBU备份mysql数据库...

    实验报告六 MYSQL备份与恢复.docx

    根据提供的实验报告“MYSQL备份与恢复”的相关内容,我们可以总结出以下几个关键知识点: ### 一、MYSQL日志管理 #### 1. 错误日志 - **定义**: 记录MySQL运行过程中的错误信息和警告信息。 - **作用**: 帮助管理...

    MySQL数据库备份和恢复

    #### MySQL备份的重要性 备份是数据管理中最基础也是最重要的一环。它不仅能够防止数据丢失,还能在数据库遭遇故障时迅速恢复服务,避免业务中断造成的损失。此外,定期的数据库备份还能帮助组织满足合规性要求,...

    MySQL 备份和恢复

    MySQL的备份和恢复是数据库管理的关键环节,确保数据的...总的来说,MySQL备份和恢复需要根据不同的表类型和需求选择合适的工具和策略。定期备份、测试恢复过程以及了解备份参数的正确使用是保证数据安全的关键步骤。

    mysql备份和恢复方案

    MySQL备份和恢复是数据库管理中的关键环节,旨在保护数据免受意外损失,如硬件故障、软件错误或数据损坏。在本方案中,我们将探讨两种主要的备份策略,并讨论如何实施有效的恢复计划,确保数据安全和应用程序的连续...

    Mysql备份与恢复

    生产中Mysql备份恢复的形式,基于mysqldump备份及原理,基于Xtrabcackup备份及原理,表空间传输,binlog备份(增量),基于mysql全备+增备的恢复Tips

    MySQL 备份和恢复策略

    MySQL 数据库的备份和恢复是数据库管理中至关重要的环节,确保数据的安全性和可恢复性。本文将探讨两种常用的 MySQL 备份策略:直接拷贝数据库文件和使用 `mysqlhotcopy` 工具。 首先,直接拷贝数据库文件是一种...

    阿里云 RDS for MySQL 备份文件恢复至自建数据库 .docx

    首先,需要登录 RDS 管理控制台,选择正确的实例所在区域,例如:华北 2(北京),点击想要恢复的实例,在左侧导航栏中选择备份恢复。在数据备份标签中可以看到本实例的全部备份文件信息。找到想要恢复的时间点或者...

    Mysql数据库备份恢复测试报告-xtrabackup.docx

    通过这次测试,我们可以了解到MySQL数据库的备份恢复流程,以及如何验证恢复的正确性。同时,也强调了恢复过程中服务器性能的重要性,以及备份策略对于数据保护的关键性。在实际环境中,企业应根据自身需求制定合适...

    阿里MySQL备份恢复指南

    阿里MySQL备份恢复指南是针对使用阿里云数据库服务的用户,特别是那些依赖MySQL数据库的企业或开发者设计的一份详尽的操作手册。这份指南旨在提供一个简单易懂的流程,帮助用户有效地进行数据库备份和恢复,以确保...

    mysql数据备份恢复

    在本篇中,我们将深入探讨 MySQL 的三种主要备份恢复模式,以及如何利用工具如 `innobackupex` 实现高效的数据保护。 一、全量备份 全量备份是最基础的备份方式,它会拷贝数据库的所有文件,包括数据表、日志文件等...

    UNIX下MySQL 备份和恢复

    在UNIX环境下,MySQL数据库的备份和恢复是数据库管理...总之,UNIX环境下的MySQL备份和恢复需要根据表类型选择合适的工具和策略。理解并熟练运用这些工具的参数和选项,能有效确保数据安全,同时提高备份和恢复的效率。

    MySQL备份与恢复.ppt

    MySQL备份与恢复,里面都做了详细解析.ppt

    MySQL_Cluster备份与恢复

    MySQL_Cluster备份与恢复 MySQL_Cluster是一种高可用性的分布式关系数据库管理系统,它可以提供高性能、可扩展性和高可用性。由于其分布式架构,MySQL_Cluster需要特殊的备份和恢复机制。本文将介绍MySQL_Cluster的...

    mysql数据库备份与恢复

    本知识点将深入探讨如何在SpringBoot环境下对MySQL数据库进行备份与恢复,以确保数据的安全。 首先,`MysqlBackup.java` 文件很可能是实现备份和恢复功能的核心Java类。在SpringBoot中,我们可以利用JDBC(Java ...

    Mysql数据备份与恢复操作文档.md

    ### MySQL 数据备份与恢复操作详解 #### 一、直接替换 /var/lib/mysql 文件夹 这种方法适用于需要快速替换整个 MySQL 数据库实例的情况,如系统迁移、紧急恢复等场景。但需注意,这种做法可能会导致数据不一致的...

    MySQL备份与恢复记录

    MySQL备份与恢复是数据库管理中的关键任务,确保数据安全和业务连续性。在本文中,我们将探讨两种主要的MySQL备份方法——冷备份和工具备份,以及如何进行恢复操作。 首先,冷备份是最简单的备份方式,它涉及在...

Global site tag (gtag.js) - Google Analytics