• day07_mysql备份


    【备份】
    1、冷备份【好处是:稳定,坏处是:得停库影响收入】
    2、热备份





    一、冷备份

    备份全部数据
    service mysql stop

    cp -frp /app/mysql/data/* /备份文件存放目录 【全部备份,直接把数据目录备份走,cat /etc/my.cnf |grep datadir 存放数据的目录】

    部分备份
    (1)
    cp myisam引擎类型(拷贝走此目录就可以,myisam引擎的表不会写表空间,不会写事务日志)

    (2)
     cd /app/mysql/data/
    cp -fr ibdata1 /备份文件存放目录  【ibdata1是所有Innodb表公用的系统表空间,无法单独备份,只能全备份】
    cp -fr innodb /备份文件存放目录  【innodb是所有Innodb表公用的库,无法单独备份,只能全备份】
    cp -rf ib_logfile1 dataib_logfile0 /备份文件存放目录 【事务日志保证undo和redo,Mysql启动时会检查,如果找不到,mysql认为非法的】



    数据还原
    (1)把数据拷贝回原目录
    (2)chown mysql.mysql /app/mysql/data/ -R 【千万注意】





    二、热备份(服务开启时备份)

    (一) mysql自带的

    【备份操作,备份的是sql语句】
      create database bak;
      use bak;
      create table a1(a int);
      insert into a1 values(1);
      
      service mysql status【热备份要求,mysql服务必须开启】
      
      mysqldump -u 用户 -p密码 库名  > backup文件
      
      mysqldump -u root -pmysql bak 【直接打印到屏幕】
      
      mysqldump -u root -pmysql bak >/tmp/bak.sql 【输出定位到/tmp/bak.sql文件中】
      
      drop database bak;
      
    【恢复操作】
      create database bak;【咱们备份的文件中,没有创建库的语句,所以要手工创建】    
      
     mysql -u root -pmysql bak < /tmp/bak.sql

    mysql> use bak;
    mysql> show tables;
    mysql> select * from a1;


    (二) 第三方工具【可以多线程,默认4个线程,比自带的备份工具要快】

    在tmp目录下安装mydumper

    export PATH=/usr/local/cmake/bin:$PATH



    1、解决依赖包
    yum install gcc gcc-c++ glib2-devel mysql-devel zlib-devel pcre-devel -y
    rpm -ivh cmake-2.6.4-7.el5.i386.rpm

    2、安装 

    cd /tmp
    tar fvxz mydumper-0.2.3.tar.gz
    cd mydumper-0.2.3
    cmake .
    make
    make install

    3、操作


    语法:mydumper -B 数据库 -u 用户名 -p 密码 -h 主机IP -o 备份文件存放的目录  -t 线程数【看cpu配置】 -r  分割的份数【表比较大,把表分割了】

       备份操作
       mkdir -pv /tmp/sqlbak   -------把备份的数据放在此目录
       mydumper -B bak -u root -p mysql  -o /tmp/sqlbak
       mysql -u root -pmysql
       mysql> use bak;
       mysql> drop table a1;


    语法:myloader -u root -p password -d /tmp/sqlbak  -B databasename
       
        恢复操作
        myloader -u root -p mysql -d /tmp/sqlbak  -B bak
        mysql -u root -pmysql
        mysql> use bak;
        mysql> show tables;
        mysql> select * from a1;




  • 相关阅读:
    数列(矩阵乘法+快速幂)
    最大公约数和最小公倍数问题
    解的个数(扩展欧几里得解不定方程)
    冒泡排序图(最长上升子序列变式)
    tomcat结合nginx使用小结
    ant构建web项目build脚本
    git分支合并到master
    oracle 存储过程,存储函数以及定时器的综合使用
    JPA 注解
    log4j简单应用
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/8cce8063a4eab526e75e667d81c15191.html
Copyright © 2020-2023  润新知