MySQL基本用法(十)

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

目录

演示1:利用mysqldump工具备份;

1.      创建备份目录,存放备份文件;

2.      使用mysqldump工具,备份到备分目录;

3.      我们的策略是完全+增量+binlog备份方式,如果要使用binlog二进制日志重读,就要确定从备份的那一刻开始,binlog的起始文件位置,这是就哟啊使用--master-data=[#]选项;(确保二进制日志是开启的)

        1)      首先开启二进制日志;

        2)      备份;

        3)      查看二进制文件;

4.      修改数据库内容;

5.      删除hellodb数据库,模拟数据库崩溃,

6.      数据库恢复;

        1)      准备好要做时间点恢复的二进制文件;

        2)      查看二进制日志,把最后数据库删除操作的position截取掉,重定向一个新的文件中;

        3)      将二进制文件重定向新的文件;

        4)      恢复数据会执行大量的写操作,可以先关闭二进制日志文件;

        5)      利用二进制文件,恢复到数据库崩溃之前的时间点;

演示2:基于lvm2快照备份;

1.      创建分区;

2.      创建lvm

3.      创建mysql数据库目录,并将逻辑卷挂载至此目录;

4.      更改此目录的属组属主;

5.      修改mysql配置文件/etc/my.cnf,修改数据目录;

6.      开启服务,查看数据目录文件;

7.      先关闭数据库二进制日志进行数据写入;

8.      开启二进制日志,创建备份;

        1)      开启二进制日志;

        2)      请求锁定所有表,FLUSH TABLES为将所有内存的数据写入磁盘中;

        3)      记录二进制时间位置;

        4)      创建快照;

        5)      释放锁;

        6)      挂载快照卷并进行拷贝操作,文件属性需要保留;

        7)      备份完成后,删除快照;

9.      快照备份完成,对数据库进行一些修改,方便后面时间点还原;

10.  恢复;

        1)      手动模拟宕机并模拟数据库丢失;

        2)      复制备份文件到数据目录,登录数据库,还原到备份的状态;

        3)      利用二进制日志回滚还原;

备份还原工具:Xtrabackup

大概流程:

备份

恢复:

注意:


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

Mysql基本用法(一)

注:本文出处来自51CTO,因为是本人早些时候保存在Word中,以至于联系不到作者,特此声明 很是抱歉。为了MySQL部分的完整性,所以本人斗胆借用此篇,请作者看到后可以留言,本人好注明出处。特此声明,很是抱歉!!!

MySQL备份原理

 

演示1:利用mysqldump工具备份;

1.      创建备份目录,存放备份文件;

    

2.      使用mysqldump工具,备份到备分目录;

Note:用--databases指明数据库时,备份的语句中有创建数据库的语句,如果不用--databases指明,则要手动创建;

3.      我们的策略是完全+增量+binlog备份方式,如果要使用binlog二进制日志重读,就要确定从备份的那一刻开始,binlog的起始文件位置,这是就哟啊使用--master-data=[#]选项;(确保二进制日志是开启的)

        1)      首先开启二进制日志;

            

        2)      备份;

        3)      查看二进制文件;

            

4.      修改数据库内容;

    

5.      删除hellodb数据库,模拟数据库崩溃,

    

6.      数据库恢复;

        1)      准备好要做时间点恢复的二进制文件;

            

        2)      查看二进制日志,把最后数据库删除操作的position截取掉,重定向一个新的文件中;

            

        3)      将二进制文件重定向新的文件;

        4)      恢复数据会执行大量的写操作,可以先关闭二进制日志文件;

        复制备份文件为.sql结尾;

            

        导入数据库;

          

        可以看出数据库恢复到了备份时的状态;

          

        5)      利用二进制文件,恢复到数据库崩溃之前的时间点;

          

        查看表中数据;

          

演示2:基于lvm2快照备份;

1.      创建分区;

    

2.      创建lvm

    

3.      创建mysql数据库目录,并将逻辑卷挂载至此目录;

    

4.      更改此目录的属组属主;

    

5.      修改mysql配置文件/etc/my.cnf,修改数据目录;

    

6.      开启服务,查看数据目录文件;

    

7.      先关闭数据库二进制日志进行数据写入;

    

查看导入的数据库;

    

8.      开启二进制日志,创建备份;

        1)      开启二进制日志;

            

        2)      请求锁定所有表,FLUSH TABLES为将所有内存的数据写入磁盘中;

            

        3)      记录二进制时间位置;

            

        4)      创建快照;

          

        5)      释放锁;

          

        6)      挂载快照卷并进行拷贝操作,文件属性需要保留;

            

        7)      备份完成后,删除快照;

          

9.      快照备份完成,对数据库进行一些修改,方便后面时间点还原;

    

10.  恢复;

        1)      手动模拟宕机并模拟数据库丢失;

         

        2)      复制备份文件到数据目录,登录数据库,还原到备份的状态;

         

        3)      利用二进制日志回滚还原;

过程跟上面利用mysqldump工具一样。

 

备份还原工具:Xtrabackup

        Percona,www.percona.com

        Innobackupex:客户端工具,以mysql协议连入mysqld,不支持离线备份

                --user=

                --password=

大概流程:

备份

        完全备份策略:完整备份+增量备份+二进制日志

        全量备份:# innobackupex --user=USER --password=PASSWORD  BACKUPDIR(生成的备份目录为BASEDIR)

        第一次增量备份:# innobackupex –user=USER –password=PASSWORD --incremental BACKUPDIR --incremental-basedir=BASEDIR(基于上一次 全量备份,生成的备份目录basedir为BASEDIR1)

        第二次增量备份:# innobackupex --user=root --password=taoxiu --incremental BACKUPDIR --incremental-basedir= BASEDIR1

准备:# innobackupex --apply-log --redo-only BASEDIR

# innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1

# innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

恢复:

        # innobackupex –copy-back BASEDIR

改变属主属组:

        # cd /datadir

        # chown –R mysql.mysql ./*

NOTE:查看备份目录中的xtrabackup-binlog-info,可以查看最后一次增量备份的end-points;最后可通过二进制日志还原到机器崩溃时的状态;

注意:

1)      将数据和二进制文件放置于不同的设备;二进制日志也应该周期性地备份;

2)      将数据和备份分开存放,建议不在同一设备、同一主机、同一机房、同一地域;

3)      每次灾难恢复后都应该立即做一次完全备份;

4)      备份后的数据应该周期性地做还原测试;

从备份中恢复应该遵循的步骤:

1)      停止mysql服务器;

2)      记录服务器配置和文件权限;

3)      将备份恢复到mysql数据目录;此步骤依赖具体的备份工具;

4)      改变配置和文件权限;

5)      以限制方式启动mysql服务器;比如通过网络访问;

[mysqld]

skip-networking

socket=/tmp/mysql-recovery.sock

6)      载入额外的逻辑备份;而检查和重放二进制日志;

7)      检查已经还原的数据;

8)      以完全访问模式重启服务器;

 

猜你喜欢

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