|——好友说:有些知识就是石头,走上这条路就没法绕过,就是牙齿啃碎了也要把它啃下来。

——————————————————————————————————————————

针对当前备份做一个总结记忆:

当前策略是保存一个星期的全量备份,体积在几百M,已经相当大。随着数据量的增大并非长久之计。

|——备份出文件  mysqldump

#!/bin/bash
 
BACKDIR=/data/backupSql
 
if [ ! -d ${BACKDIR} ]
then
mkdir -p ${BACKDIR}
fi
 
cd ${BACKDIR}
DumpFile=`date +%F`.sql.gz
SevenDaysAgoFile=`date +%F -d "-7 days"`.sql.gz
 
/usr/local/services/mysql/bin/mysqldump -S /tmp/mysql5.sock -R --opt --all-databases --single-transaction  --flush-logs --master-data=2 | gzip > /${BACKDIR}/${DumpFile}
 
if [ $? -ne 0 ]
    then
    echo "############################################"
    echo "#Wanning : mysqldump commend running fail!!#"
    echo "############################################"
else
    rm -f ${SevenDaysAgoFile};
    echo "############################################"
    echo "#Ok : mysqldump commend running success!!#"
    echo "############################################"
fi
 
 

在备份中的这个几分钟或者几小时时间段内,数据库还是一直在不断的产生新数据,但是从mysqldump备份文件恢复数据会丢失掉从备份点开始的更新数据,

所以还需要结合mysqlbinlog二进制日志增量备份。确保my.ini或者my.cnf中包含下面的配置以启用二进制日志,或者

mysqld ---log-bin:

[mysqld]
log-bin=mysql-bin

mysqldump命令必须带上--flush-logs选项以生成新的二进制日志文件:

脚本中使用 --flush-logs --master-data=2

这样生成的增量二进制日志文件比如为mysql-bin.000003,那么恢复数据时如下:

shell> mysql -uroot -pPwd < backup_sunday_1_PM.sql

shell> mysqlbinlog mysql-bin.000003 | mysql -uroot -pPwd

http://www.cnblogs.com/feichexia/p/MysqlDataBackup.html  MySQL数据备份之mysqldump使用
 
http://www.cnblogs.com/baseCode/archive/2011/12/08/2281081.html mysql 5.5 mysqldump 原文翻译

 

--single-transaction 保持数据一致性的加锁设置

http://www.itpub.net/thread-1410940-1-1.html

 

|——使用备份出来的文件恢复数据库

http://www.blogjava.net/alpha/archive/2007/08/10/135694.html  MySQL的mysqldump工具的基本用法

 

|——恢复出来的数据报了几个错误:

mysql之导入错误----Cannot load from mysql.proc解决办法 http://blog.sina.com.cn/s/blog_888269b20100zv4t.html

mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法  http://hi.baidu.com/liyanqin2288/item/5de086da8c94ef3348e1dd59

 

|——填坑:

https://dev.mysql.com/doc/refman/5.1/en/mysqldump.html :4.5.4 mysqldump — A Database Backup Program

 

http://www.cnblogs.com/xuejie/archive/2013/01/11/2856911.html  Mysql备份还原数据库之mysqldump实例及参数详细说明

 

http://www.imhdr.com/mysql/mysqldump-import-export-database-summarizes/  mysqldump导入导出数据库总结

 

 

|——改进版本

#!/bin/bash
#author:logonmy@126.com
#desc:
# 可以做到第一次全量备份,后面几天增量备份[待研究,这里是7天全量]
# AND the database Engine is innodb
 
BACKDIR=/data/backup
 
if [ ! -d ${BACKDIR} ]
then
mkdir -p ${BACKDIR}
fi
 
cd ${BACKDIR}
 
#每日生成新的备份DIR
DumpDir=${BACKDIR}/`date +%F`
 
FullDumpFile=full_`date +%F`.sql.gz
AddDumpFile=add_`date +%H`.sql.gz
 
if [ ! -d ${DumpDir} ]
then
mkdir -p ${DumpDir}
fi
 
#7天之前的备份DIR
SevenDaysAgoDir=`date +%F -d "-7 days"`
 
# Index="`grep log-bin /etc/my.cnf |awk -F'[=.]' '{print $2".index"}'|head -n 1`"
# binFileName=`tail -n1 $index`
 
mysqldump=/usr/local/services/mysql/bin/mysqldump
 
Sock=/tmp/mysql5.sock
Opt="-R --single-transaction --flush-logs --master-data=2"
 
DB="--databases vmeipai cpa"
 
# day=`date +%F`
# hour=`date +%H`
 
#-h$host -u$user -p$passwd 本来命令后面要跟这样的参数,这里默认root所以没有使用。
#host=localhost
#user=root
#passwd=
 
#全量
dumpFull()
{
    ${mysqldump} -S ${Sock} ${opt} ${DB} | gzip > ${DumpDir}/${FullDumpFile}
}
 
#删除7天以前的备份
delSevenAgo()
{
    [ -d ${BACKDIR}/${SevenDaysAgoDir} ] && rm -rf ${BACKDIR}/${SevenDaysAgoDir}; 
}
 
dumpFull
 
if [ $? -ne 0 ]
    then
    echo "############################################"
    echo "#Wanning : mysqldump commend running fail!!#"
    echo "############################################"
else
    delSevenAgo
 
    echo "############################################"
    echo "#Ok : mysqldump commend running success!!#"
    echo "############################################"
fi

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 

参考:

http://hi.baidu.com/xingxuejun/item/290772760302d411d1dcb349 mysql完全备份+增量备份脚本

http://hi.baidu.com/urzalknsyzchrur/item/c15e9392a72fbbbfcc80e5eb 在MySQL中使用更新日志文件

http://www.linuxidc.com/Linux/2012-07/66138.htm      MySQL不能启动 mysql-bin.index' not found

数据库备份mysqldump的更多相关文章

  1. MySQL数据库备份--mysqldump用法

    导出要用到MySQL的mysqldump工具,基本用法是:   shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出. ...

  2. mysql数据库备份 mysqldump

    一.--all-databases /application/mysql3307/bin/mysqldump -uroot -S /application/mysql3307/logs/mysql.s ...

  3. MYSQL之视图、触发器、存储过程、函数、事物、数据库锁和数据库备份

    一.视图 -- view 视图:是一个虚报表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据. 视图有如下特点: 1.视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系 ...

  4. MySQL之 视图,触发器,存储过程,函数,事物,数据库锁,数据库备份

    1.视图 视图: 是一个虚拟表,其内容由查询定义: 视图有如下特点;  1. 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系.  2. 视图是由基本表(实表)产生的表(虚表).  3. ...

  5. mysql数据库备份和恢复

    1.数据库备份 mysqldump -uroot -proot jira736 > jira736.sql 2.数据库恢复 mysql -uroot -proot jira762 < ji ...

  6. Linux MySQL数据库文件同步及数据库备份

    Mysql数据库链接 mysql -uroot -p -hdatacenter.jiaofukeyan.com -P33069 1.文件同步 rsync -avz --delete root@(需要同 ...

  7. Mysql基础(六):索引、数据库备份、锁和事务、慢查询优化、索引命中相关

    目录 数据库05 /索引.数据库备份.锁和事务.慢查询优化.索引命中相关 1. 什么是索引 2. 索引的原理 3. 索引的数据结构(聚集索引.辅助索引) 4. 索引操作 5. 索引的两大类型hash与 ...

  8. 【摘】Mysql备份还原数据库之mysqldump实例及参数详细说明

    原文http://www.cnblogs.com/xuejie/archive/2013/01/11/2856911.html   我们在运营项目的过程中肯定会遇到备份数据库,还原数据库的情况,我们一 ...

  9. Mysql备份还原数据库之mysqldump实例及参数详细说明

    [root@localhost myexport]# mysqldump -h211.100.75.204 -uroot -p@^#coopen -P5029 --single-transaction ...

随机推荐

  1. Tachyon:Spark生态系统中的分布式内存文件系统

    转自: http://www.csdn.net/article/2015-06-25/2825056  摘要:Tachyon把内存存储的功能从Spark中分离出来, 使Spark可以更专注计算的本身, ...

  2. java如何实现Socket的长连接和短连接

    讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...

  3. 【异常记录(五)】C# 无法发送具有此谓词类型的内容正文错误

    今天请求接口直接调了以前写好的方法,结果报了(405)不支持方法的错误,一看是GET写成POST了,改成GET之后,又报了无法发送具有此谓词类型的内容正文错误的错误 原来之前的方法里面有GetRequ ...

  4. 分布式系统理论:一致性协议Paxos

    Paxos算法是莱斯利·兰伯特(Leslie Lamport)于1990年提出的一种基于消息传递的一致性算法. Paxos 算法是一个解决分布式系统中,多个节点之间就某个值(注意是某一个值,不是一系列 ...

  5. Android 进行解析并显示服务端返回的数据

    例子说明:用户通过访问web资源的最新电影资讯,服务器端生成XML或JSON格式数据,返回Android客户端进行显示. 此案例开发需要两个方面 WEB开发和Android开发. 一.web开发相对比 ...

  6. [spring]xml配置文件中的"classpath:"与"classpath*:"的区别

    <bean id="sessionFactorySaas" class="org.mybatis.spring.SqlSessionFactoryBean" ...

  7. C# 终于写完了简单的ORM

    实现单表 增 .删. 改 .查 使用接口定义表实体数据.实体对象动态创建,使用 Email 进行数据读取. 存储过程调用示例

  8. Nginx安装和使用

    Nginx简介 nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态.静态页面的分离,可以按照轮询.ip哈希.URL哈希.权重等多种方式对后 ...

  9. 08day03

    一.eclipse的使用 可能是全宇宙最好用的IDE debug 查看执行过程 查看源码 二.模块的常用方法 __name__ __file__ __doc__ 三.函数 参数 参数默认值 可变参数 ...

  10. h1标签

    h1标签一.每个网页只能拥有一个<H1>标签 H2,H3,H4可以有多个...但多个H1造成的后果是搜索引擎不知道你这个页面哪个标题内容最重要,会淡化这个页面的标题和关键词.H1用得好的话 ...