Mysql基本用法(九)

版权声明:秉承开源精神,博主博文可以随机转载,但请注明出处! https://blog.csdn.net/zisefeizhu/article/details/81984493

目录

Mysql的备份和恢复

为什么要备份?

要注意的要点:

备份类型:

规则备份时需要考虑的因素:

备份什么?

设计备份方案:

备份工具:

备份方案之备份工具的选择:


本篇是系列性,由浅入深,主要是为了本人日后回看时再学习,如果道友对Mysql也是零基础的话,强烈建议从头开始看

Mysql基本用法(一)

Mysql的备份和恢复

为什么要备份?

            灾难恢复:硬件故障、软件故障、自然灾害、黑客攻击;误操作;测试;

要注意的要点:

            可容忍最多丢失多少数据;

            恢复需要在多长时间内完成;

            需要恢复哪些数据;

(1)做还原测试,用于测试备份的可用性

(2)还原演练

备份类型:

            完全备份,部分备份;

完全备份:整个数据集

                            部分备份:只备份数据子集

            完全备份,增量备份,差异备份

                            增量备份:仅备份从上次完全备份或增量备份之后变化的数据部分;

差异备份:仅备份最近一次完全备份以来变化的数据

            热备份、温度备份和冷备份;

                            热备份:在线备份,读写操作不受影响;

                            温备份:在线备份,读操作可继续进行,但写操作不允许;

                            冷备份:离线备份,数据库服务器离线,备份期间不能为业务提供读写服务;

 

                            MyISAM: 温备

                            InnoDB:热备

            物理备份和逻辑备份:

                            物理备份:直接复制数据文件进行的备份;

                            逻辑备份:从数据库中“导出”数据另存而进行的备份;

                            逻辑备份:与存储引擎无关;

规则备份时需要考虑的因素:

        持锁的时长;

        备份过程时长;

        备份负载

        恢复过程时长;

备份什么?

    数据、额外的数据(二进制日志和InnoDB的事务日志)、代码(存储过程和存储函数、触发器、时间调度器等)、服务器配置文件;

设计备份方案:

        完全备份+增量备份

备份手段:物理,逻辑;

备份工具:

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

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

            lvm2的快照:几乎热备;借助于文件系统工具实现物理备份;

            mysqlhotcopy:几乎冷备;仅适用于MyISAM存储引擎;

备份方案之备份工具的选择:

            mysqldump+binlog:

                mysqldump:完全备份;

复制binlog中指定实践范围的event;增量备份;

            lvm2快照+binlog:几乎热备,物理备份;

lvm2快照:使用cp或tar等做物理备份;完全备份

复制binlog中指定实践范围的event;增量备份;

            xtrabakup:

由Percona提供的支持对InnoDB做热备(物理备份)的工具;

                    对InnoDB:热备,支持完全备份

                    对MyISAM引擎:温备,只支持完全备份;

mysqldump工具介绍:

mysqldump:客户端,通过mysql协议连接至msyqld;

            -A,--all-databases

            MyISAM,InnoDB:温备

                    -x,--lock-all-tables:锁定所有表;

                    -l,--lock-tables:锁定备份的表;

            InnoDB:

                    --single-transaction:启动一个大的单一事务实现备份;

            -B,--databases db_name1 db_name2 …:备份指定的数据库

            -C,--compress:压缩传输;

命令的语法格式:

            mysqldump [OPTIONS] database [tables]:备份单个库,或库指定的一个或多个表

            mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3…]:备份一个或多个库;

            mysqldump [OPTIONS] --all-databases [OPTIONS]:备份所有库

        其它选项:

                    -E,--events:备份指定库的时间调度器;

                    -R,--routines:备份存储过程和存储函数;

                    --triggers:备份触发器

 

                    --master-data[=#]:

                            1:记录CHANGE MASTER TO 语句;此语句未被注释;

                            2:记录为注释语句;

                    --flush-logs,-F:锁定表之后执行flush logs命令;

        注意:二进制日志文件与数据文件不应该放置于同一磁盘;

 

几乎热备:lvm2快照,流程:

1.      请求锁定所有表;

mysql> FLUSH TABLES WITH READ LOCK;

2.      记录二进制日志文件及事件位置;

mysql> SHOW MASTER STATUS;

3.      创建快照;

lvcreate -L SIZE -s -p r -n NAME /dev/VG_NAME/LV_NAME

4.      释放锁;

mysql> UNLOCK TABLES

5.      挂载快照卷,复制数据进行备份;

cp, rsync, tar等命令复制数据;

6.      备份完成之后,删除快照卷;

猜你喜欢

转载自blog.csdn.net/zisefeizhu/article/details/81984493