备份数据: mysqldump

#mysqldump -uroot -p123456 test > /test_bak.sql

#egrep -v "#|\*|--|^$" /test_bak.sql

指定对应字符集

#mysqldump -uroot -p123456 --default-character-set=utf8 test > /test_bak.sql

加 -B 参数: 备份多个库 (增加创建数据库和连接数据库的命令)

#mysqldump -uroot -p123456 -B test > /test_bak.sql

#mysqldump -uroot -p123456 -B test test2 > /test_bak.sql

加 --compact 参数: 减少备份文件的输出 (忽略drop table, 忽略set names, 忽略add locks, 忽略disable keys), 所以这个参数生产环境不用它

#mysqldump -uroot -p123456 --compact -B test > /test_bak.sql

备份单个表: 不能加 -B 参数

#mysqldump -uroot -p123456 test tb2 > /test_bak.sql

备份所有表: -A 参数

#mysqldump -uroot -p123456 -A -B test > /test_bak.sql

只备份数据: -t 参数

#mysqldump -uroot -p123456 -t -B test tb2 > /test_bak.sql

只备份结构: -d 参数

#mysqldump -uroot -p123456 -d -B test > /test_bak.sql

锁表: -x 锁定所有表,    -l 只读锁表

innodb事务数据库备份:  --single-transaction

#mysqldump -uroot -p123456 -A -B --master-data=2 --events --single-transaction|gzip > /all.sql.gz

myisam数据库库备份:

#mysqldump -uroot -p123456 -A -B --master-data=2 -x --events|gzip > /all.sql.gz

增量备份: 刷新binlog, -F 参数

#mysqldump -uroot -p123456 -F -B test > /test_bak.sql

增量备份: 不刷新binlog

#mysqldump -uroot -p123456 --master-data=1 test > /test_bak.sql

--master-data参数详解

mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1

当这个值是2的时候,chang master to也是会写到dump文件里面去的,但是这个语句是被注释的状态。

分库备份: .sh脚本

  1. #!/bin/sh
  2.  
  3. MYUSER=root
  4.  
  5. MYPASS
  6.  
  7. MYLOGIN="mysql -u$MYUSER -p$MYPASS"
  8.  
  9. MYDUMP="mysqldump -u$MYUSER -p$MYPASS -B"
  10.  
  11. MYDUMP2="mysqldump -u$MYUSER -p$MYPASS"
  12.  
  13. DATABASE="$($MYLOGIN -e "show databases;"|egrep -vi "database|infor|perfor")"
  14.  
  15. for dbname in $DATABASE
  16.  
  17. do
  18.  
  19. MYDIR=/mysqlbak/$dbname
  20.  
  21. [ ! -d $MYDIR ] && mkdir -p $MYDIR
  22.  
  23. $MYDUMP $dbname|gzip > $MYDIR/${dbname}_$(date +%F).sql.gz
  24.  
  25. for tbname in `$MYLOGIN -e "show tables from $dbname;"|sed '1d'`
  26.  
  27. do
  28.  
  29. $MYDUMP2 $dbname $tbname|gzip >$MYDIR/${dbname}_${tbname}_$(date +%F).sql.gz
  30.  
  31. done
  32.  
  33. done

恢复数据

#mysql -uroot -p123456 -e "use test;drop table te;"

#mysql -uroot -p123456 test < /test_bak.sql

查看mysql连接

两次show之后, 发现还有语句在呆着, 说明有慢查询, 可以用 show full processlist 来查看完整的sql语句, 注意查看 sleep / lock 是否过多

#mysql -uroot -p123456 -e "show processlist;"

查看mysql状态: 加上global表示整个数据库, 否则表示当前会话

#mysql -uroot -p123456 -e "show global status;"

不重启修改mysql参数

mysql> set global key_buffer_size=1024*1024*32;

mysql> show variables like 'key_buffer%';

mysql批量插入测试数据

一、建表语句

  1. use test;
  2.  
  3. create table student(
  4.  
  5. Sno ) NOT NULL COMMENT '学号',
  6.  
  7. Sname ) NOT NULL COMMENT '姓名',
  8.  
  9. Ssex ) NOT NULL COMMENT '性别',
  10.  
  11. Sage ) ' COMMENT '学生年龄',
  12.  
  13. Sdept ) default NULL COMMENT '学生所在系别',
  14.  
  15. PRIMARY KEY (Sno)
  16.  
  17. ) ENGINE DEFAULT CHARSET=utf8;

二、批量插入数据脚本

  1. #!/bin/bash
  2.  
  3. MysqlLogin="mysql -uroot -p123456"
  4.  
  5. i=
  6.  
  7. while true
  8.  
  9. do
  10.  
  11. ${MysqlLogin} -e "insert into test.student values ("$i",'oldboy"$i"','m','21','computer"$i"');"
  12.  
  13. ((i++))
  14.  
  15. ;
  16.  
  17. done

mysqlbinlog(增量恢复)

# vi /etc/my.cnf

  1. log-bin=binlog_file //去掉注释

# /etc/init.d/mysqld restart

  1. mysql> insert into ****** #插入测试数据

cd /usr/local/mysql/data/

mysqlbinlog binlog_file.000001 #查看文件内容
cp binlog_file* /bak/mysql/

mysqlbinlog /bak/mysql/binlog_file.000004 --start-date="2010-09-29 18:00:00" --stop-date="2010-09-29 23:00:00" -r time.sql
mysqlbinlog /bak/mysql/binlog_file.000004 --start-position=370 --stop-position=440 -r pos.sql
mysqlbinlog /bak/mysql/binlog_file.000004 -d test -r test.sql
mysqlbinlog /bak/mysql/binlog_file.000004 -h 192.1681.102 -r 102.sql
mysqlbinlog /bak/mysql/binlog_file.000004 -p 3306 -r 3306.sql
mysqlbinlog /bak/mysql/binlog_file.000004 --server-id=1 -r s1.sql

以上6个条件可以排列组合, 作为恢复数据的条件

binlog的文件内容, 示例:

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;

/*!40019 SET @@session.max_insert_delayed_threads=0*/;

/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER /*!*/;

# at 4

#160712 20:00:27 server id 1  end_log_pos 107   Start: binlog v 4, server v 5.5.32-log created 160712 20:00:27 at startup

# Warning: this binlog is either in use or was not closed properly.

ROLLBACK/*!*/;

BINLOG '

y66FVw8BAAAAZwAAAGsAAAABAAQANS41LjMyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAADLroVXEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA==

'/*!*/;

# at 107

#160712 20:02:51 server id 1  end_log_pos 351   Query   thread_id=1     exec_time=0    error_code=0

use `test`/*!*/;

SET TIMESTAMP=1468378971/*!*/;

SET @@session.pseudo_thread_id=1/*!*/;

SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;

SET @@session.sql_mode=0/*!*/;

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/*!*/;

CREATE TABLE `te` (

`id`  int(4) NOT NULL AUTO_INCREMENT ,

`a` char(5) NOT NULL,

`b` char(5) NOT NULL,

`c` char(5) NOT NULL,

PRIMARY KEY (`id`),

KEY `index_a_b_c` (`a`(3),`b`,`c`)

)

/*!*/;

# at 351

#160712 20:03:43 server id 1  end_log_pos 419   Query   thread_id=1     exec_time=0    error_code=0

SET TIMESTAMP=1468379023/*!*/;

BEGIN

/*!*/;

# at 419

#160712 20:03:43 server id 1  end_log_pos 524   Query   thread_id=1     exec_time=0    error_code=0

SET TIMESTAMP=1468379023/*!*/;

insert into te values(1,'aaa','bbb','ccc')

/*!*/;

# at 524

#160712 20:03:43 server id 1  end_log_pos 551   Xid = 14

COMMIT/*!*/;

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

;

mysql系列之5.mysql备份恢复的更多相关文章

  1. mysql用户授权及数据备份恢复

    用户授权与权限撤销 修改数据库管理员从本机登陆的密码测试: mysqladmin -hlocalhost -uroot -p password "新密码" Enter passwo ...

  2. MySQL基于LVM快照的备份恢复(临时)

    目录1.数据库全备份2.准备LVM卷3.数据恢复到LVM卷4.基于LVM快照备份数据5.数据灾难恢复6.总结 写在前面:测试环境中已安装有mysql 5.5.36数据库,但数据目录没有存放在LVM卷, ...

  3. MySQL for OPS 06:备份恢复

    写在前面的话 人在河边走,湿鞋是早晚是事情,操作服务器,数据库也一样.谁也不知道自己哪一天控制不住自己就手贱.这时候有两个东西能救我们,一是备份,二是 bin log,bin log 前面讲了,但是 ...

  4. mysql系列之6.mysql主从同步

    普通文件的数据同步 nfs: 网络文件共享 samba: 共享数据 定时任务或守护进程结合 rsync.scp inotify(sersync)+rsync 触发式实时数据同步 ftp数据同步 ssh ...

  5. mysql系列之2.mysql多实例

    使用场景 资金紧张; 并发访问不大; 门户网站; 实现 生产硬件配置: mem 32G / 双cpu 8核 / 磁盘6*600G sas 15k, 2-3个实例 安装组件 #yum install n ...

  6. mysql系列之4.mysql字符集

    针对mysql语句的临时办法: 先查看下mysql的各种编码设置情况, 如果结果显示有几项的编码不一致, 请先调整linux的系统编码 mysql> show variables like 'c ...

  7. mysql系列六、mysql创建用户、授权、备份及恢复命令

    一.创建用户和授权 下面的操作中,其中someusername为用户名,somepassword为密码,somedbname为数据库名 1.创建用户 create user 'someusername ...

  8. MySQL基于mysqldump及lvmsnapshot备份恢复

    一.备份对象 数据 配置文件 代码:存储过程,存储函数,触发器 跟复制相关的配置 二进制日志文件 二.备份工具 mysqldump:逻辑备份工具 InnoDB热备.MyISAM温备.Aria温备 备份 ...

  9. 关于MySQL 事务,视图,索引,数据库备份,恢复

      /*创建数据库*/ CREATE DATABASE `mybank`;/*创建表*/USE mybank;CREATE TABLE `bank`(    `customerName` CHAR(1 ...

随机推荐

  1. Algorithm | Sort

    Bubble sort Bubble sort, sometimes incorrectly referred to as sinking sort, is a simple sorting algo ...

  2. (持续集成)win7上部署Jenkins+MSBuild+Svn+SonarQube+SonarQube Scanner for MSBuild (第二发)

    这一篇进入实战,走起.... 登录jenkins,如下图 点击上图中的“新建”按钮,进入下图 输入项目名称,选择“构建一个自由风格的软件项目”即可,点击“ok”,跳转到下图 svn源代码管理(选择代码 ...

  3. Jenkins内存溢出的处理方法

    参考:http://openwares.net/java/jenkens_deploy_to_tomcat_error_of_outofmemoryerror.html上的说明,有如下解释: -Xms ...

  4. Zlib编译

    转自原文 编译和使用zlib 由于要编译Cesium Terrain Build,其中不仅需要gdal,还用到了zlib,所以此时不得不总结一下Zlib的编译之道了. 在windows下用到zlib库 ...

  5. django中引入json

    try: from django.utils import simplejson as jsonexcept: import simplejson as json

  6. 手动编译高速扫描器MasScan

    常见的端口扫描器有NMAP,ZMAP,superScan等,我们使用后各有千秋,ZMAP号称44分钟扫全球ip,那么有没有比ZMAP更快的端口扫描器呢,今天我们来研究下masscan,这款扫描器号称3 ...

  7. Linux进程的睡眠和唤醒

    1   Linux进程的睡眠和唤醒 在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状态标志位为TASK_RUNNING.一旦一个运行中的进程时间片用完, ...

  8. 【Salvation】—— 项目策划&市场分析

    写在前面:这个项目是2017年,我们评选校级创新基金项目的参加作品,小组4人,我为负责人,这个项目现在已经基本完成,目前处于后期收尾阶段. 一.项目的目标.内容及创新之处 1.研究目标 体现人类与自然 ...

  9. 关于使用Axure RP进行原型开发的一些心得体会

    Axure RP(Axure Rapid Prototyping)是一款高速实现.准确表达.带有交互效果且易于上手的原型设计工具. 本人在曾參与某系统需求分析时開始接触Axure RP,初步掌握了一定 ...

  10. UNP学习笔记(第三十章 客户/服务器程序设计范式)

    TCP测试用客户程序 #include "unp.h" #define MAXN 16384 /* max # bytes to request from server */ in ...