Rumah >pangkalan data >tutorial mysql > MariaDB/MySQL之备份及恢复

MariaDB/MySQL之备份及恢复

WBOY
WBOYasal
2016-06-07 17:22:111050semak imbas

数据备份是包装数据安全的重要策略之一,怎么做备份和怎么备份对于数据库日常管理十分重要;但是备份的最主要作用就是恢复,不能恢复的备份就不仅仅是做无用功的

   数据备份是包装数据安全的重要策略之一,怎么做备份和怎么备份对于数据库日常管理十分重要;但是备份的最主要作用就是恢复,不能恢复的备份就不仅仅是做无用功的问题了,所以经常做一下备份的恢复测试就必不可少了,这一点甚至比备份本身更加重要。那么就说说备份和恢复。

           (1)根据备份时,数据库服务器是否在线:
cold backup:冷备,停机备份;

warm backup :温备,施加全局锁,进行备份,只可读不可写;

hot backup:热备,,生产中进行备份,只有基于事务的存储引擎才能进行;

           (2) 根据备份的数据集:

full backup:完全备份;  

partial backup: 部分备份;

           (3)根据备份时的接口(直接备份数据文件还是通过mysql服务器导出数据),无论采取什    么方式备份,这两种方式都是必选一的:
 physical backup :物理备份,直接复制(归档)数据文件的备份方式;

                          ◆   优点:直接复制数据文件,不需其他工具

                          ◆   缺点:跨平台能力不好;        

logical backup :逻辑备份,把数据从库中提出出来保存为文本文件;

                          ◆   优点:

 ①、可以使用文本编辑器编辑;

                                       ②、跨平台能力强,恢复方式灵活;

                                       ③、有助于避免数据损坏;

                          ◆   缺点:

                                       ①、占用空间大(以现在存储硬件行情,这似乎不再是个问题了);

                                       ②、无法保证浮点数的精度;

                                       ③、数据恢复后,需要重新建立索引;

           (4) 根据备份时是备份整个数据还是仅备份变化的数据:
full backup:完全备份;
incremental backup:增量备份;
differential backup:差异备份;

2、备份策略

           没有一种备份策略是完美的和适用于所有场景的,制定备份策略应当从一下几个方面来考量:

           ◆  备份成本:包括加锁时间、备份时长、备份负载等;

           ◆  恢复成本:主要是恢复时长 ;

           ◆  备份对象:有数据、配置文件、代码、os相关的配置文件以及与复制相关的配置等;

           主要根据以上因素来选择备份方式、备份时间(无论采取什么样的备份方式,都会对数据库产    生影响的,一般要选择影响最小的时候),以进一步来制定备份的策略。

3、备份工具

           (1)mysqldump:逻辑备份工具

◆ 可以实现InnoDB热备、MyISAM温备、Aria温备;

                   ◆ 但是备份和恢复过程较慢;

mysqldump的用法:

(1)语法格式: # mysqldump [options] [db_name [tbl_name ...]] (2)备份单个库:mysqldump [options] db_name 恢复时:如果目标库不存在,需要事先手动创建 (3)常用选项 --all-databases: 备份所有库 --databases db1 db2 ...: 备份指定的多个库 备份前要加锁 --lock-all-tables:请求锁定所有表之后再备份,对MyISAM、InnoDB、Aria做温备 --single-transaction: 能够对InnoDB存储引擎实现热备; 备份代码: --events: 备份事件调度器代码 --routines: 备份存储过程和存储函数 --triggers:备份触发器 备份时滚动日志: --flush-logs: 备份前、请求到锁之后滚动日志; 复制时的同步位置标记: --master-data=[0|1|2] 0: 不记录 1:记录为CHANGE MASTER语句 2:记录为注释的CHANGE MASTER语句

备份步骤:

1、请求锁:--lock-all-tables或使用--singe-transaction进行innodb热备; 2、滚动日志:--flush-logs 3、选定要备份的库:--databases 4、记录二进制日志文件及位置:--master-data=

数据恢复:

恢复时,关闭二进制日志,关闭其它用户连接;

               导入数据恢复,Ex:# mysqldump

  一般mysqldump备份策略:

备份:mysqldump+二进制日志文件; 周日做一次完全备份:备份的同时滚动日志 周一至周六:备份二进制日志; 恢复: 完全备份+各二进制日志文件中至此刻的事件 对MySQL配置文件,以及与MySQL相关的OS配置文件在每次修改后都应该直接进行备份;


         (2)mysqldumper: 多线程的mysqldump

                   ◆ 很难实现差异或增量备份。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn