MySQL逻辑备份mysqldump

一个用mysqldump做逻辑备份的小脚本

用于小数据量的备份,全库,按日期,按库,按表,进行分类

# date -s "2015/01/01" && bash mybackup.sh

#!/bin/bash

# 使用mysqldump进行逻辑备份
# 目录结构/backup/日期
# 每隔7天删除旧的备份目录

db_backup_root="/backup"
today=`date +%Y%m%d`

old_backup_dir=`date -d "-7 day" +%Y%m%d`

db_user="root"
db_passwd="geekoo"
sock=`mysql -u$db_user -p$db_passwd -e "show variables like ‘%sock%‘" | grep -v Variable_name | awk {‘print $2‘}`
mysql_client=`which mysql`
mysqldump_client=`which mysqldump`
xmysql="$mysql_client -S $sock -u$db_user -p$db_passwd"
xmysqldump="$mysqldump_client -S $sock -u$db_user -p$db_passwd"

if [ -d $old_backup_dir ]; then
	echo "delete old backup $old_backup_dir"
	rm -rf $old_backup_dir
fi

if [ ! -d $today ]; then
	mkdir -p $db_backup_root/$today
fi

$xmysql -e "show databases;" | grep -vE "(Database|_schema)" > $db_backup_root/$today/db_list

while read dbname
do
echo $dbname

if [ ! -d $db_backup_root/$today/$dbname ]; then
	mkdir -p $db_backup_root/$today/$dbname
fi

$xmysql -e "use $dbname; show tables;" | grep -v Tables_in > $db_backup_root/$today/$dbname/table_list

	while read tablename
	do
	echo $tablename
	$xmysqldump $dbname $tablename -R --events --triggers > $db_backup_root/$today/$dbname/$tablename.sql

	done < $db_backup_root/$today/$dbname/table_list
done < $db_backup_root/$today/db_list
时间: 2024-10-13 06:59:46

MySQL逻辑备份mysqldump的相关文章

(十二)MySQL逻辑备份mysqldump

(1)简介 语法 mysqldump -h服务器 -u用户名 -p密码 [-P端口号] [参数] 数据库名 >备份文件.sql 关于数据库: -A,--all-databases 所有库,会生成DDL语句(创建数据库的语句和进入数据库的语句,导入的时候不需要指定数据) test 数据库,没有指定其它参数,导入到数据的时候需要指定导入到哪个数据库,不会生成创建数据库的DDL语句,mysql -uroot -predhat testdb <1.sql test t1 t2 test数据库的表t1和

(4.12)mysql备份还原——mysql逻辑备份之mysqldump

关键词:mysql逻辑备份介绍,mysqldump 1.mysql逻辑备份介绍 [1.1]备份内容:数据库的结构定义语句+数据内容的插入语句,备份出来的文件可以编辑 [1.2]使用场景:数据量较少的库,比较适合100G数据量以内的 逻辑备份的特点 (1)sql语句组成的文件,可以编辑截取部分单独使用. (2)备份文件比物理文件小 (3)可以细化到表/表的内容 (4)速度慢 (5)可以跨平台恢复/迁移 2.逻辑备份工具 [1.1]mysqldump(单线程).mysqlpump(多线程,5.7以后

逻辑备份,mysqldump,SELECT…INTO OUTFILE,恢复

逻辑备份 mysqldump mysqldump备份工具最初由Igor Romanenko编写完成,通常用来完成转存(dump)数据库的备份以及不同数据库之间的移植,例如从低版本的MySQL数据库升级到高版本的MySQL数据库,或者从MySQL数据库移植到Oracle和SQL Server等数据库等. mysqldump的语法如下: mysqldump [arguments] > file_name 如果想要备份所有的数据库,可以使用--all-databaes选项: mysqldump --a

MySQL 逻辑备份神器

简介: Mydumper.Myloader 是一个第三方的.开源的 MySQL 逻辑备份工具. 支持多线程,比起 mysqldump 要快很多,也能解决 innobackupex 备份工具对 MyISAM 引擎备份的不便. 多线程快速逻辑备份,支持快照功能. 下载地址:https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz 一.安装 Mydumper shell > yum -y install gcc g

mysql逻辑备份2种方案

mysql逻辑备份方案: 针对db进行逻辑备份(由于数据量较小,正在生产环境使用). mysql_backup.sh #!/bin/bash date=`date +%F-%H-%M` mkdir /opt/backup/${date} -p usesize=`du -s /opt/mysql |cut -f 1` biaozhun=`df  /opt/ |awk 'END{print ("'$usesize'"+$3)/$2*100+0.5}'|cut -d. -f1` ip=`gr

mysql逻辑备份与还原工具mysqldump

(一)mysqldump介绍 mysqldump是MySQL自带的逻辑备份工具,类似于Oracle的expdp/impdp,mysqldump备份十分灵活,可以在以下级别对数据库进行备份: 实例下的所有数据库 某个或某几个数据库 某个数据库中的表 某个数据库中的表的某些记录 mysqldump的备份结果集有两种文件:一种是将数据转换为标准的SQL语句,另一种是按照指定的分隔符,输出为特定格式的平面文件. (二)mysqldump的用法 可以直接使用mysqldump命令查看mysqldump的用

MySQL逻辑备份利器-mydumper

关于mydumper的简介和下载请访问:https://launchpad.net/mydumper 简言之,mydumper是多线程逻辑备份,对于表和数据量很大的情况下,建议使用mydumper提高备份效率,比mysqldumper要快很多. 我为什么要用mydumper?是基于某个需求,比如我需要把某个库下的所有按日期分表的表备份并导入到新实例?如何实现? table_20170101 table_20170102 ...... table_20171231 一共三百多张表 开始我去尝试my

mysql逻辑备份(mysql dump的使用)

mysqldump 属于MySQL客户端工具 mysqldump备份工具对于MyISAM存储引擎实现备份是温备份,对innodb存储引擎是可以实现热备份. 使用mysqldump备份数据库可以实现完全备份 + 二进制日志文件,这样也算是完全备份 + 增量备份. 首先将这个数据库备份下来这就是完全备份,然后以后数据的变化再每天进行对二进制日志进行备份这就是增量备份. mysqldump命令的使用: 用法mysqldump  + 选项  +要备份的数据库 常用选项: db_name:      备份

mysql逻辑备份

逻辑备份一般用于数据迁移或者数据量很小事,逻辑备份采用的是数据导出的备份方式. 如果需要导出所有数据库,命令如下: mysqldump -uroot -p --single-transaction -A>all.sql 如果只是要导出其中的某几个数据库,则采用如下命令: mysqldump -uroot -p --single-transaction -B test1 test2>test1_test2.sql 如果要是导出的是一个库中的某几个表,可采用如下命令: mysqldump -uro