精华内容
下载资源
问答
  • LinuxMySQL增量备份恢复 一.增量备份与恢复 1.增量备份的优点 没有重复数据,备份量不大,时间短; 2.缺点 需要上次完全备份以及完全备份之后的所有增量备份才能恢复,而且对所有增量备份进行逐个反推恢复,操作...

    Linux—MySQL增量备份与恢复

    一.增量备份与恢复

    1.增量备份的优点

    没有重复数据,备份量不大,时间短;

    2.缺点

    需要上次完全备份以及完全备份之后的所有增量备份才能恢复,而且对所有增量备份进行逐个反推恢复,操作较为繁琐

    3.MySQL没有直接提供增量备份的方法,但是通过MySQL的二进制日志间接实现增量备份
    4.二进制日志保存了所有更新或者可能更新或者可能更新数据库的操作
    5.二进制日志在启动MySQL服务器后开始记录,并且在文件达到max_binlog_size所设置的大小或者接收到的flush logs命令之后重新创建日志文件
    6.只需要定时执行flush logs 方法重新创建新的日志,生成日志文件序列,并及时把这些日志保存到安全的地方就完成了一个时间段的增量备份

    二.具体操作

    1.开启二进制日志功能,重启服务(mysqld里添加)
    [root@localhost opt]# vim /etc/my.cnf
    
    log-bin=mysql-bin
    [root@localhost opt]# systemctl restart mysqld.service 
    
    2.使用mysqldump工具进行完全备份
    [root@localhost data]# mysqldump -uroot -pabc123 school > /opt/school.sql
    [root@localhost data]# ls /opt
    mysql-2020-01-09.tar.xz  mysql-5.7.20  rh  school.sql
    
    3.创建增量备份支持的文件
    [root@localhost data]# mysqladmin -uroot -pabc123 flush-logs
    
    4.进行误操作
    [root@localhost data]# mysql -u root -pabc123
    
    mysql> use school;
    mysql> select * from info;
    +----+-------+-------+
    | id | name  | score |
    +----+-------+-------+
    |  1 | stu01 |  88.0 |
    |  2 | stu02 |  77.0 |
    +----+-------+-------+
    mysql> insert into info (name,score) values ('test01',66);
    mysql> select * from info;
    +----+--------+-------+
    | id | name   | score |
    +----+--------+-------+
    |  1 | stu01  |  88.0 |
    |  2 | stu02  |  77.0 |
    |  3 | test01 |  66.0 |
    +----+--------+-------+
    
    mysql> delete from info where name='stu01';
    
    mysql> insert into info (name,score) values ('test02',99);
    
    mysql> select * from info;
    +----+--------+-------+
    | id | name   | score |
    +----+--------+-------+
    |  2 | stu02  |  77.0 |
    |  3 | test01 |  66.0 |
    |  4 | test02 |  99.0 |
    +----+--------+-------+
    
    5.查看记录:
    [root@localhost data]# mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 > /opt/bak.txt
    
    6.基于完全备份进行恢复:
    [root@localhost opt]# mysql -u root -pabc123
    
    mysql> use school;
    
    mysql> drop table info;
    
    mysql> source /opt/school.sql
    
    mysql> show tables;
    +------------------+
    | Tables_in_school |
    +------------------+
    | info             |
    +------------------+
    
    mysql> select * from info;
    +----+-------+-------+
    | id | name  | score |
    +----+-------+-------+
    |  1 | stu01 |  88.0 |
    |  2 | stu02 |  77.0 |
    +----+-------+-------+
    
    基于时间:
    [root@localhost opt]# mysqlbinlog --no-defaults --stop-datetime='2020-01-09 19:48:35' /usr/local/mysql-bin.000002 | mysql -u root -p
    
    [root@localhost opt]# mysqlbinlog --no-defaults --start-datetime='2020-01-09 19:50:25' /usr/local/mysql-bin.000002 | mysql -u root -p
    
    基于位置:
    [root@localhost opt]# mysqlbinlog --no-defaults --stop-postion='443' /usr/local/mysql-bin.000002 | mysql -u root -p
    
    [root@localhost opt]# mysqlbinlog --no-defaults --start-postion='456' /usr/local/mysql-bin.000002 | mysql -u root -p
    
    [root@localhost data]# mysql -u root -pabc123
    
    mysql> use school;
    mysql> select * from info;
    +----+-------+-------+
    | id | name  | score |
    +----+-------+-------+
    |  1 | stu01 |  88.0 |
    |  2 | stu02  |  77.0 |
    |  3 | test01 |  66.0 |
    |  4 | test02 |  99.0 |
    +----+--------+-------+
    
    展开全文
  • 我用的时候mysql数据库在进行数据库的增量恢复的时候怎么恢复都没有效果,数据库一点儿变化也没有。就是按照网上说的一点儿一点的就行操作 增量回复的时候**直接运行的增量备份的文件**。 重点就在直接运行的增量...
    	我用的时候mysql数据库在进行数据库的增量恢复的时候怎么恢复都没有效果,数据库一点儿变化也没有。就是按照网上说的一点儿一点的就行操作 增量回复的时候**直接运行的增量备份的文件**。
    重点就在直接运行的增量备份的文件的原因,增量备份的二进制文件会记录你的一切数据库的操作所以。在没有理解二进制文件的前提下我是这样操作:
      1.重置二进制文件00001=====》二进制文件初始化
      2 添加数据添加数据 后 mysqladmin -uroot -p123123 flush-logs ##重新建立二进制日志文件 000002    (此时我以为这个文件中保存了我刚刚添加了的新增数据)
      3 删除刚刚添加了的数据 (我以为此时二进制文件不进行记录只在执行mysqladmin -uroot -p123123 flush-logs后记录一下之前的数据)
      4 运行刚才   000002二进制文件 
      5 发现数据一点变化也没有 
       啊哈哈哈   被自己傻笑了断断续续的弄了好几天才搞明白
       记住 **根据pos来进行回复  或者时间来进行恢复数据**         
    
    展开全文
  • 但相当来说,数据更加重要,而数据最核心的就是数据库数据,所以数据库的备份恢复就显得十分重要。 2.备份的几个参数 mysqldump是mysql自带的一个备份呢命令。 命令:mysqldump -u 用户名 -p 数据库名>...

    1.备份的意义

         运维工作:保护公司的数据     、  网站7*24小时服务

         但相当来说,数据更加重要,而数据最核心的就是数据库数据,所以数据库的备份和恢复就显得十分重要。 

    2.备份的几个参数

       mysqldump是mysql自带的一个备份呢命令。

       命令:mysqldump -u 用户名  -p  数据库名>备份的文件

      1)导出oldboy库里面的所有表结构和数据: mysqldump -uroot -p'oldboy124' oldboy >/dangjingwei/mysql_bak.sql

      2)导入oldboy库里面的所有表结构和数据:mysql -uroot -poldboy124  oldboy</dangjingwei/mysql_bak.sql

      查看导出的mysql_bak.sql文件:egrep -v "#|\*|--|^$" /dangjingwei/mysql_bak.sql如下,这里有3个点需要说明:

       1. 可以看出,在导出中有drop,那么在导入的时候,如果库中有相应的表,就会删除此表

       2.会有锁表机制,lock,在导入的时候,是禁止别的人写入的

       3.这里可以看到,导入的时候,是一条语句,减少IO输出

      

      3)导出加入B:mysqldump -uroot -p'oldboy124' -B  oldboy >/dangjingwei/mysql_bak_B.sql 最大的特点是加入了库,在导入的时候,直接导入,无需创建库

      4)导入加入B:mysqldump -uroot -p'oldboy124' </dangjingwei/mysql_bak_B.sql

      5)导出加压缩:mysqldump -uroot -p'oldboy124' -B  oldboy|gzip >/dangjingwei/mysql_bak_B.sql.gz

    3.mysqldump的原理

        利用mysqldump命令备份数据的过程,实际上就是把数据从mysql库里以逻辑的sql语句的形式直接输出或者生成备份的文件的过程。

        物理备份:就是直接对文件进行打包

    4.备份多个库:

         命令:mysqldump -u 用户名  -p  数据库名  库名>备份的文件

    5.备份单个表:

         mysqldump -u 用户名  -p  数据库名  库名  表名 >备份的文件

    6. 备份数据库/表的表结构

         mysqldump -u 用户名  -p  数据库名 -d   库名  (表名)>备份的文件

    7.备份数据库/表的数据

        mysqldump -u 用户名  -p  数据库名 -t   库名  (表名)>备份的文件

    8.备份数据库所有库表等为-A,需要bin-log日志切割为-F

       mysqldump -u 用户名  -p  数据库名  -A -B  -F 库名  (表名)>备份的文件

    9.备份数据库所有库表日志刷新的位置--master-data增加binlog日志文件名及对应位置点

       mysqldump -u 用户名  -p --master-data=1或者 2   数据库名    >备份的文件

    10.关于参数 --single-transaction,适合innodb事务数据库备份

       InnoDB表在备份时,通常启用选项--single-transaction来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:repeatable read,保证在备份期间看不到新的提交的数据

    11.恢复/导入:  

           1)source  (库名)sql文件---如果导出的时候有-B则完全可以不用指定库名

           2)mysql -uroot -p'oldboy124'  库名   < sql文件

    12.非交互式参数:-e用法

          mysql -uroot -poldboy124 -e "use oldboy;select *from test;"

     

     

     13.数据库的连接情况,在某种情况下,如果慢查询,哪里这里是没有变化的,运维需要抓住,交由开发优化,添加索引。show processlist 查看正在执行的sql语句

    [root@djw1 ~]# mysql -uroot -poldboy124 -e "show processlist;"           
    +----+------+-----------+------+---------+------+-------+------------------+
    | Id | User | Host      | db   | Command | Time | State | Info             |
    +----+------+-----------+------+---------+------+-------+------------------+
    | 39 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |

    [root@djw1 ~]# mysql -uroot -poldboy124 -e "show full processlist;"
    +----+------+-----------+------+---------+------+-------+-----------------------+
    | Id | User | Host      | db   | Command | Time | State | Info                  |
    +----+------+-----------+------+---------+------+-------+-----------------------+
    | 40 | root | localhost | NULL | Query   |    0 | NULL  | show full processlist |
    +----+------+-----------+------+---------+------+-------+------------------

     14.查进程的参数show variables,它是mysql的变量,my.cnf里面参数的生效情况。

    mysql -uroot -poldboy124 -e "show variables;"---例如my.cnf里面参数的生效情况

      如何不重启数据库让参数生效

       mysql> show variables like 'key_buffer%';

     

    mysql> set global key_buffer_size=1024*32;

     

     15.查看mysql的状态status,show status是当前会话的数据库状态信息,常用的是global全局状态,表示查看整个数据库运行状态信息,show golbal status ; 这里有一些计数器和性能参数

    mysql -uroot -poldboy124 -e "show global status;"|grep select(等)

     16.mysqlbinlog--》解析mysql的binlog日志

     就是数据目录下的如下文件就是mysql的binlog日志

       mysql-bin.000001

      mysql的binlog日志作用用来记录mysql内部增删改查等对mysql数据库有更新的内容的记录。查询是不记录的。binlog记录的是mysql数据库中的所有的库,如果只是想要恢复其中的一个库,用如下语句:mysqlbinlog  -d oldboy mysql-bin.000020 >oldboy.sql

    按照位置截取: 

     mysqlbinlog  mysq-lbin.000020 --start-position=365  --stop-position=456 -r pos.sql

    按照时间截取:

     mysqlbinlog  mysq-lbin.000020 --start-datetime='2014-10-16 17:00:11'  --stop-datetime='2014-10-16 17:10:11' -r time.sql

    17. master-data参数是非常重要的一个参数,如果恢复主库,可以选择master-data=2,如果是从库,那么需要master-data=1

     

     

     

     

     

         

    转载于:https://www.cnblogs.com/dangjingwei/p/11440111.html

    展开全文
  • linuxmysql5.7.19数据库备份(增量备份恢复)1.查看备份文件mysqlbinlog /var/lib/mysql/mysql-bin.000002 > /var/lib/mysql/tmp.sql 查看转换后的sql文件内容:cat /var/lib/msql/tmp.sqltmp.sql文件内容,如下:...

    linux下mysql5.7.19数据库备份(增量备份恢复)

    1.查看备份文件

    mysqlbinlog  /var/lib/mysql/mysql-bin.000002 > /var/lib/mysql/tmp.sql
    

    查看转换后的sql文件内容:

    cat /var/lib/msql/tmp.sql

    这里写图片描述

    tmp.sql文件内容,如下:

    /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
    /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
    DELIMITER /*!*/;
    # at 4
    #170830  0:00:01 server id 1  end_log_pos 123 CRC32 0x42351239  Start: binlog v 4, server v 5.7.19-log created 170830  0:00:01
    # Warning: this binlog is either in use or was not closed properly.
    BINLOG '
    gY+lWQ8BAAAAdwAAAHsAAAABAAQANS43LjE5LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
    ATkSNUI=
    '/*!*/;
    # at 123
    #170830  0:00:01 server id 1  end_log_pos 154 CRC32 0x1645578e  Previous-GTIDs
    # [empty]
    # at 154
    #170830 15:03:55 server id 1  end_log_pos 219 CRC32 0x1b689222  Anonymous_GTID  last_committed=0    sequence_number=1   rbr_only=yes
    /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
    SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
    # at 219
    #170830 15:03:55 server id 1  end_log_pos 294 CRC32 0x83ddff05  Query   thread_id=73    exec_time=0 error_code=0
    SET TIMESTAMP=1504076635/*!*/;
    SET @@session.pseudo_thread_id=73/*!*/;
    SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
    SET @@session.sql_mode=1436549152/*!*/;
    SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
    /*!\C utf8 *//*!*/;
    SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
    SET @@session.lc_time_names=0/*!*/;
    SET @@session.collation_database=DEFAULT/*!*/;
    BEGIN
    /*!*/;
    # at 294
    #170830 15:03:55 server id 1  end_log_pos 351 CRC32 0x257dafb4  Table_map: `szsjrjg`.`a_Test` mapped to number 219
    # at 351
    #170830 15:03:55 server id 1  end_log_pos 392 CRC32 0xa9297bb8  Write_rows: table id 219 flags: STMT_END_F
    
    BINLOG '
    W2OmWRMBAAAAOQAAAF8BAAAAANsAAAAAAAEAB3N6c2pyamcABmFfVGVzdAACDw8EKAAoAAC0r30l
    W2OmWR4BAAAAKQAAAIgBAAAAANsAAAAAAAEAAgAC//wBNwI3N7h7Kak=
    '/*!*/;
    # at 392
    #170830 15:03:55 server id 1  end_log_pos 423 CRC32 0x5aa60d51  Xid = 153
    COMMIT/*!*/;
    SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
    DELIMITER ;
    # End of log file
    /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
    /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
    

    2.还原数据的基本语句

    linux系统下,还原mysql-bin.000001到数据库test_database

    mysqlbinlog /var/lib/mysql/mysql-bin.000001 | mysql -uroot -p --one-database test_database
    展开全文
  • linux中的mysql增量备份是通过数据库日志来实现备份恢复的一种备份方法,备份过程中只备份标记或者选中的文件和文件夹,这个标记可以是时间、也可以是系统默认自己做的动作标记,这些都会在MySQL的日志中体现出来。...
  • 增量备份的原理就是使用了mysql的binlog日志。本次操作的MySQL版本为5.5.40 for Linux (x86_64)。 增量备份要确保打开了二进制日志,参考mysql的日志系统: mysql> show variables like '%l...
  • MySQL增量备份恢复实例

    千次阅读 2016-11-09 09:03:38
    增量备份的原理就是使用了mysql的binlog日志。 本次操作的MySQL版本为5.5.40 for Linux (x86_64)。 增量备份要确保打开了二进制日志,参考mysql的日志系统: 1 mysql> show variables like '%l
  • 小量的数据库可以每天进行...增量备份的原理就是使用了mysql的binlog日志。本次操作的MySQL版本为5.5.40 for Linux (x86_64)。 增量备份要确保打开了二进制日志,参考mysql的日志系统: mysql> show varia...
  • linuxMysql全量备份及增量备份

    千次阅读 2019-04-17 11:59:11
    四、数据库增量备份及其恢复; 方式一:二进制文件备份、mysqlbinlog恢复 五、生产环境Mysql数据库备份策略; 具体过程 一、数据库备份概述; 数据库备份概述:将数据库中存在的现有数据,进行存放成为副本数据,可...
  • 数据库备份概述 备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等。 1.数据备份的重要性 程序错误 人为操作错误 运算错误 磁盘故障 ...增量备份 数据库完全备份 1.
  • 2,专用备份工具mydump或mysqlhotcopy三,MYsql完全备份与恢复优点缺点数据库完全备份分类案例四,MYSQL增量备份恢复 一,数据库备份介绍 1,数据备份的重要性 在生产环境中,数据的安全性至关重要 任何数据的...
  • 详细的、完整的LINUX系统下MYSQL数据库完全备份、定期增量备份恢复文档。
  • 第三十三章 MySQL备份恢复进阶-增量恢复一、什么情况下需要数据库增量恢复1、主库或从库因硬件损坏宕机,是否需要增量恢复?不需要,主库宕机,只需将一个同步最快的从库切换为主库即可。从库宕机,不影响使用,...
  • linux系统——Mysql备份恢复详解 一个公司最重要的价值所在就是用户数据,所以对数据库的备份是十分重要的,同时对数据库的备份策略是多种多样的,这里简单介绍一下percona-xtrabackup工具,和自带的mysqldump工具...
  • 2、增量备份 –备份上次备份以后所产生的新数据 3、差异备份 –在完全备份后,只备份所有新产生的数据 物理备份和恢复 备份: cp -rp /var/lib/mysql/数据库 备份目录 tar -zcvf xxx.tar.gz /var/lib/mys...
  • 备份可分为从数据库的备份策略角度,备份可分为常见的备份方法物理冷备专用备份工具启动二进制日志进行增量备份第三方工具备份MySQL 恢复物理冷备份与恢复mysqldump 备份与恢复完全备份恢复增量备份与恢复增量备份恢复
  • 2、恢复增量备份到完全备份(开始恢复增量备份要添加–redo-only参数,到最后一次增量备份去掉–redo-only参数) 3、对整体的完全备份进行恢复,回滚那些未提交的数据 备份 在另外一台测试上面做了一个全量备份和...
  • linux系统——Mysql备份恢复详解 一个公司最重要的价值所在就是用户数据,所以对数据库的备份是十分重要的,同时对数据库的备份策略是多种多样的,这里简单介绍一下percona-xtrabackup工具,和自带的mysqldump工具...
  • 1.全量备份 全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份备份所有库: mysqldump -uroot -ppoldboy -S /data/3306/mysql.sock -F -B -A|gzip >/server/backup/mysqlbak_$...
  • MySQL备份恢复1、备份工具1、逻辑备份工具1、mysqldump2、mysqldump应用3、参数应用1.连接参数2.备份参数3.全备4.恢复2、物理备份xtarbackup1.下载安装2.配置3.xbk原理4.备份1.全备2.全备恢复2.增量1.原理3.恢复1....
  • 1.下载地址:https://www.percona.com/downloads/XtraBackup/LATEST/ 选择...解压软件包:tar -zxvf percona-xtrabackup-2.4.13-Linux-x86_64.libgcrypt145.tar.gz3.进入bin目录:这里innobackupex是xtrabackup的一...

空空如也

空空如也

1 2 3 4 5 6
收藏数 111
精华内容 44
关键字:

linuxmysql增量备份恢复

linux 订阅
mysql 订阅