mysql读书笔记--备份还原

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql读书笔记--备份还原相关的知识,希望对你有一定的参考价值。

2mysqldump多个命令参数生产标准备份实战


mysqldump -uroot -p‘oldboy123‘ -B d-name|gzip >/tmp/mysql.sql.gz


-B        添加建库建表的语句

          同时备份多个数据库

-A        备份全部数据库

--compact 减少输出注解,生产不用

gzip       压缩数据库

-F         切割bin-log日志,刷新binlog参数 

--master-data=1   增加binlog日志文件名及对应的文置点 

--master-data=2  添加了注释

-x  --local-all-tables

-l  --local-tables      Lock all tables for read 

-d         只备份表结构

-t         只备份数据

--single-transaction  适合innodb事务数据库备份 


  

备注:在/etc/my.cnf的[mysqld]里启用log-bin=mysql-bin所有的更改都会写在里面

过滤多余信息

egrep -v "#|^$|/*|--"  /tmp/mysql.sql

mysqldump属于逻辑备份


恢复数据库

mysql -uroot -p‘oldboy‘ </tmp/mysql.sql(备份时叫了-B,所以恢复时不需要指定数据库?)



备份数据库单表

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

      mysqldump -uroot -p oldboy student > /tmp/mysql_oldboy_student.sql


分库多表备份脚本


#!/bin/bash

user=root

pwd=oldboy

time=$(date +%F)

if [ ! -d /tmp/${time} ];then

mkdir -p /tmp/${time}

fi

for dbname in $(mysql -u${user} -p‘${pwd}‘ -e "show databases;"|egrep -v "information_schema|performance_schema|Database|mysql")

do

  for tname in $(mysql -u${user} -p‘${pwd}‘ -e "use $dbname;show tables;"|egrep -v "Tables")

  do

  mysqldump -u${user} -p‘${pwd}‘ ${dbname} ${tname} >/tmp/${time}/${dbname}_${tname}.sql

  done

done


Warning: Using a password on the command line interface can be insecure

sh /tmp/mysql.sh >/dev/null 2>&1


06只备份MySQL表结构及只备份MySQL数据


mysql -uroot -p‘oldboy‘ -d oldboy(只备份表结构)

mysql -uroot -p‘oldboy‘ -t oldboy(只备份数据 )


7企业生产场景不同引擎备份命令参数详解

myisam:

mysqldump -uroot -poldboy123 -A -B -F --master-data=2 -x|gzip>/tmp/oldboy_all.sql.gz


innodb:

mysqldump -uroot -poldboy -A -B -F --master-data=2 --single-transaction|gzip>/tmp/oldboy_all.sql.gz


8利用source恢复mysql数据讲解及实战

进入mysql命令行

source /tmp/mysql_bal_B.sql


9分库备份后mysql如何分库恢复实战

解压数据库

gzip -d /tmp/oldboy_B.sql.gz


  

mysql -uroot -p‘oldboy123‘ </tmp/odboy_B.sql  (备份时加了-B参数)


mysql -uroot -p‘oldboy123‘ oldboy</tmp/odboy_B.sql  (备份时没加-B参数,要指定数据库名,而且要先建立数据库)


还原数据库备份

ls /tmp

mysql.sql

oldboy.sql

oldboy_gbk.sql

wiki.sql


for dbname in `ls /tmp/*.sql|sed ‘s#\.sql##g‘`;do mysql -uroot -p‘lodboy‘ <${dbname}.sql;done


以上是关于mysql读书笔记--备份还原的主要内容,如果未能解决你的问题,请参考以下文章

关于sql server2012备份还原出现的2个介质问题的解决方法?

MySql必知必会读书笔记 -- 基础

Pro Git 读书笔记

《mysql必知必会》读书笔记--存储过程的使用

[redis读书笔记] 第二部分 单机数据库 RDB持久化

高性能mysql读书笔记:Schema与数据类型优化