logo
关于我们

技术分享

技术分享 mysql读书笔记--备份还原

mysql读书笔记--备份还原

2021-04-25

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


云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 其他

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载