zoukankan      html  css  js  c++  java
  • MySQL备份

    MySQL 分为 热备和冷备 

      (一) 热备  

        物理备份的缺点

          (1)跨平台差

          (2)备份时间长、冗余备份、浪费存储时间

        热备

          备份中不锁表适合生产环境

        1. 安装

          (1)libev-4.15-1.el6.rf.x86_64.rpm (依赖包)

          (2)XtraBackup软件包

        2. 常用的选项

          (1)--host(主机名)

          (2)--user(用户名)

          (3)--port(端口号)

          (4)--password(密码)

          (5)--databases(数据库名)

            例子:

              --databases="库名"  为一个库

              --databases="库名 库名"    多个库空格隔开

                 --databases="库名.表名"     表的话"库名.表名"

          (6)--redo-only(日志合并,备份的会有一个日志文件 在备份过程中也会有数据写入那么这些数据也会有一个备份的文件。日志合并就是把这两个文件合成一个)

          (7)--apply-log(准备数据恢复)

          (8)--copy-back(拷贝数据)

          (9)--incremental  目录名 (增量备份)

          (10)--incremental-basedir=目录名 (增量备份时,指定上一次备份数据存储的目录名)

          (11)--incremental-dir=目录名 (准备恢复数据时,指定增量备份数据存储的目录名)

          (12)--export(导出表信息)

          (13)--import(导出表空间)

        3. 命令

          (1)完全备份/恢复     (恢复时要求数据库为空)

            innobackupex  --user  用户名  --password  密码   备份目录     (备份)

            innobackupex   --redo-only  --apply-log  目录名                     (准备数据恢复)

            innobackupex   --copy-back    目录名             (数据恢复)

          (2)增量备份/恢复  (增量备份要求为innodb引擎,引擎查看 show engines)

            innobackupex  --user  用户名  --password  密码   --incremental 增量目录  --incremental-basedir=目录名    --no-timestamp                 (增量备份)

               innobackupex   --redo-only  --apply-log  目录名   --incremental-dir=目录名            (准备恢复数据)

            

            innobackupex   --copy-back   目录名      (数据恢复)

        4. 恢复完之后 查看权限是否为MySQL 不是的话改为MySQL(chwon  -R   mysql:mysql   /var/lib/mysql)

        5.恢复单张表 (完全备份之后在操作恢复单张表,误删除表数据)

          (1)表空间(*.ibd)和表结构(*.frm)

              表空间里边放着一张表的数据

              表结构(desc 查表的结构)

          (2)mysql> alter table 库名.表明 discard  tablespace;         (删除表空间 ibd)

          (3)innobackupex --apply-log --export   数据完全备份目录      (导出表信息 ,导出表信息会出现 *.cfg文件和*.exp文件  存储这表的信息数据)

          (4)把导出的表信息的两个文件和ibd表结构文件 拷贝到数据库目录下,给数据库目录mysql 所有者/所有组 权限 

          (5)mysql> alter table db3.user2 import tablespace;        (导入表空间)

          (6)查看表数据删除数据库目录下的两个表信息文件  *.cfg  *.exp

      (二)冷备 (可以直接 tar cp 备份,直接备份/var/lib/mysql/* 所有文件)

        1. mysqldump (权限要查看)

          (1)mysqldump -u root  -p 密码  库名   >   *.sql                       (完全备份)

              -B 库名1 库名2   (用空格隔开)

              -A 所有库

              库名 表明      (用空格隔开)

          (2)mysql -u root -p 密码  库名   <  *.sql

        2. binlog日志增量备份

          (1)开启日志

             指定server_id

          (2)mysqlbinlog 日志文件  (查看  以commit为界限 at偏移量  回复日志)

          (3)命令

            mysqlbinlog --start-datetime="2017-04-12 12:06:55" --stop-datetime="2017-04-12 12:07:23"  /var/lib/mysql/mysql-bin.000002 | mysql -u root -p     (这是以时间为恢复点 还可以 以偏移量为恢复点   只需要吧 datetime 替换为position)

  • 相关阅读:
    面向对象一
    模块二:os模块、sys模块、json模块、pickle模块,包
    模块一:时间模块、random模块、hashlib模块、日志模块
    异常处理、迭代器、推导式、生成器
    有参装饰器
    匿名函数、高阶函数
    装饰器
    函数对象、函数嵌套、闭包函数
    名称空间与作用域
    day17 django 相关
  • 原文地址:https://www.cnblogs.com/zshBlos/p/13126939.html
Copyright © 2011-2022 走看看