MySQL备份与恢复

备份与恢复

一、备份的原因

1、完整系统恢复:

如果系统发生故障,则拥有系统的备份至关重要,因为可以恢复系统。实施怎样的备份和恢复策略取决于被恢复数据要达到的完整性和时效性。

2、审计功能:

对于某些系统及关联的流程,可能需要审计或分析独立于主生产环境的环境中的数据。可以使用备份创建这样一个独立的环境。

3、常见 DBA 任务:

在需要执行常见的 DBA 任务(例如将数据从一个系统传输到另一个系统,根据特定的生产服务器状态创建开发服务器,或者将系统的特定部分恢复到用户出错前的某个状态)时使用备份。

4、热备份:

这些动态备份在读取或修改数据的过程中进行,很少中断或者不中断传输或处理数据的功能。使用热备份时,系统仍可供读取和修改数据的操作访问。

5、冷备份:

这些备份在用户不能访问数据时进行,因此无法读取或修改数据。这些脱机备份会阻止执行任何使用数据的活动。这些类型的备份不会干扰正常运行的系统的性能。但是,对于某些应用程序,会无法接受必须在一段较长的时间里锁定或完全阻止用户访问数据。

6、温备份:

这些备份在读取数据时进行,但在多数情况下,在进行备份时不能修改数据本身。这种中途备份类型的优点是不必完全锁定最终用户。但是,其不足之处在于无法在进行备份时修改数据集,这可能使这种类型的备份不适用于某些应用程序。在备份过程中无法修改数据可能产生性能问题。

二、

1、磁盘:

可以使用复制或 RAID 镜像之类流程,或者使用 DRBD 之类的外部应用程序,将数据直接备份到其他磁盘。这些技术提供实时(或几乎实时)备份,以及快速恢复数据的方法。

2、二进制日志:

二进制日志记录对数据的修改。因此,二进制日志对恢复自上次完整备份以来发生的事件很有用。备份二进制日志的优点是其中包含了各个时间对数据所做的所有更改的记录,而不是数据的快照。可以按顺序创建多个二进制日志备份。根据修改的数据量以及完成完整备份的频率,决定要在备份之间创建的二进制日志备份的数量。二进制日志的不足之处是必须恢复自序列中最后一次完整备份以来创建的所有按顺序的二进制日志。此外,从系统故障中恢复的速度可能会很慢,具体取决于必须恢复的二进制日志的数量。

3、逻辑/文本备份:

可以使用 mysqldump 进行完整数据转储。这些数据转储基于特定的时间点,但是是所有备份副本中速度最慢的。使用 mysqldump 的优点是所创建的文件是简单的 SQL 脚本,其中包含可在 MySQL 服务器上运行的语句。不足之处在于 mysqldump 会在转储过程中锁定表,这会阻止用户在备份过程中读写文件。

三、使用MySQL备份

MySQL 备份可以是下列备份之一:

1、逻辑备份;

逻辑备份会产生一个文本文件,其中包含重构数据库的 SQL 语句

2、物理备份:

这是 MySQL 数据库文件的二进制副本.

3、基于快照的备份

4、基于复制的备份

5、增量备份(通过刷新 MySQL 二进制日志创建的备份)

在备份后所做的更改

备份只是在损失或损坏后进行数据恢复所需的组件之一。另一个组件是二进制日志,其中包含了数据更改的记录。要恢复数据库,可使用备份将数据恢复到其在备份时的状态。在恢复了备份之后,需应用二进制日志的内容以应用自备份创建以来的所有数据更改。要确保为所有 MySQL 服务器启用二进制日志记录。

6、备份工具

 

 7、

(1)备份还原指定数据库的一张表

mysqldump -uroot -p classicmodels employees >/u01/data/bak/emp.sql

如果无法写入配置主参数文件:vim /etc/my.cnf加入以下内容

secure_file_priv=''

mysql -uroot -p suwen < /home/mysql/backup/emp.sql

(2)备份还原指定数据库

mysqldump -uroot -p -B classicmodels>/u01/data/bak/classicmodels.sql

mysql -uroot -p < /u01/data/bak/classicmodels.sql

-B会将创建数据库的语句也备份出来

(3)备份还原多个数据库

mysqldump -uroot -p classicmodels suwen mysql >/u01/data/bak/more

mysql -uroot -p </u01/data/bak/more

mysqldump -uroot -p -S /tmp/mysql.sock

参数-S指定备份协议,更加安全

(4)压缩备份生成压缩备份文件

mysqldump -uroot -p -S /tmp/mysql.sock -B classicmodels|gzip > /home/mysql/backup/classicmodels.sql.gz

(5)不登陆MySQL查看数据库信息

8、

9、处理二进文件内容

 

四、MySQL复制

1、

MySQL一个主服务器对应多个从服务器,一般准则是将每个主服务器的从属服务器数量不超过30个。

2、

中继从属服务器:一个从属服务器可以作为另一个从属服务器的主服务器,每一个从属服务器仅能具有一个主服务器,一个从属服务器不能从多个主服务器复制。如果一个从属服务器作为其他服务器的主服务器,该从属服务器称为中继服务器。

3、

4、

5、

复制拓扑中的每个服务器必须具有唯一的 server-id,一个无符号的 32 位整数,值从 0(默认)到 4,294,967,295。server-id 为 0 的服务器(无论是从属服务器还是主服务器)拒绝使用其他服务器进行复制。

(1)配置主服务器

(2)在主机上配置数据库参数文件,添加参数,重启服务

server_id=13

log_bin=ON

(3)备份数据库到本机,并在备机上还原

mysqldump -uroot -poracle -B classicmodels>/u01/data/bak/classicmodels.sql

mysqldump -uroot -poracle -B world>/u01/data/bak/world.sql

(4)将备份数据库传到备机

(5)在备机上还原数据库

mysql -uroot -poracle </msl/data/mysql/bak/classicmodels.sql

mysql -uroot -poracle </msl/data/mysql/bak/world.sql

(6)在主机上创建复制用的用户并授权:

grant replication slave on *.* to ‘root’@’localhost’ identified by ‘oracle’;

(7)主机上锁住表,进行数据一致性同步

flush tables with read lock;

(8)主机上查看日志与日志位置

show master status;

(9)在备机上配置

修改参数文件加入以下内容

server_id=11

 

stop slave;

change master to master_host=’192.168.10.113’,master_user=’root’,

master_password=’oralce’,master_log_file=’ON.000003’,master_log_pos=191;

start slave;

(10)主机上把表解锁

unlock tables;

(11)验证

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值