近来项目的业务量开始大了,感觉如果数据不周期性地备份一下,很可能会出现问题,虽然我每天都有阿里云的自动快照,上网找了一下方法,找到两种相对简单而又适合中小项目或者中小公司的数据备份策略,以下都是数据库数据的完全备份。

  一.cp命令备份mysql数据

  此方法简单粗暴,直接复制mysql下的数据,也印证了linux下的万物皆是文件的原则,管你是啥,直接复制过来,出问题直接cp过去就好了,数据库的数据是存储在mysql目录下的data,里面有对应的数据库名字的文件夹,比如说我有个test数据库,那么在mysql/data下就有test文件夹,里面存放的是test数据库的数据。

  具体步骤:

  1.找到mysql的目录,一般而言是在/var/lib/mysql,如果找不到mysql目录,你可以用locate命令查找一下

  2.cp -a 复制mysql目录下的data文件,如果你想存放对应数据库的文件,直接cp对应的文件夹就好了

  3.在你需要还原数据的时候,把文件复制到原来的目录就好了,即cp -a  备份目录  mysql/data/就可以了,注意:如果还原之后不能操作数据库,有可能是权限问题。执行chown  -R mysql:mysql  数据库文件  就好了。

  方法分析:

  优点:执行速度快,导入sql的时候,执行了10多秒,但是cp只需要1秒左右,相对其他方法的一条条sql执行,这个方法更显得简单粗暴

  缺点:同样的备份文件,直接cp出来数据相对sql文件会比较大,而且很可能移植到其他的服务器上,不识别某些表。

  二.mysqldump

  mysqldump是mysql自带的工具,可以把数据库,表的数据导出来,导出来的是sql文件。

  命令格式:

mysqldump  -uName  -pPassword  databaseName  tableName  >  name.sql;

  如果不指定tableName,则是指导出数据库全部数据。

  也可以选择导出全部数据

mysqldump  -uName  -pPassword  mysql --all-databases tableName  >  name.sql;

  当然你也可以结合crontab创建定时任务,每日定时备份数据库

  首先写个shell脚本,这里我用时间作为保存文件的名字

#!/bin/bash
time=$(date +%Y-%m-%d-%H-%M-%S)
mysqldump -uroot -ppassword test> /backup/$time.sql

  保存之后chmod赋予权限之后就可以./脚本名字就可以一键备份数据库文件了

  再输入crontab -e里面添加任务就行了。

两种适用于中小量数据的mysql数据备份的更多相关文章

  1. 10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.创建MySQL数据 create database solr; use solr; DROP TABLE ...

  2. RNA seq 两种计算基因表达量方法

    两种RNA seq的基因表达量计算方法: 1. RPKM:http://www.plob.org/2011/10/24/294.html 2. RSEM:这个是TCGAdata中使用的.RSEM据说比 ...

  3. highcharts.js两种数据绑定方式和异步加载数据的使用

    一,我们先来看看异步加载数据的写法(这是使用MVC的例子) 1>js写法 <script src="~/Scripts/jquery-2.1.4.min.js"> ...

  4. Asp.Net 中Grid详解两种方法使用LigerUI加载数据库数据填充数据分页

    1.关于LigerUI: LigerUI 是基于jQuery 的UI框架,其核心设计目标是快速开发.使用简单.功能强大.轻量级.易扩展.简单而又强大,致力于快速打造Web前端界面解决方案,可以应用于. ...

  5. koa2实现session的两种方式(基于Redis 和MySQL)

    一.基于MySQL的实现方式 这种方式需要安装koa-session-minimal和koa-mysql-session两个依赖. 执行 npm install koa-session-minimal ...

  6. Spark Streaming连接Kafka的两种方式 direct 跟receiver 方式接收数据的区别

    Receiver是使用Kafka的高层次Consumer API来实现的. Receiver从Kafka中获取的数据都是存储在Spark Executor的内存中的,然后Spark Streaming ...

  7. spark2.2jdbc写入mysql 的两种方法(append,Overriedwrite)-不用Mysql建表

    import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.{SQLContext, SaveMode} ...

  8. 两种常用的启动和关闭MySQL服务

    本博文的主要内容有 .通过图形界面来启动和关闭MySQL服务 .通过DOS窗口来启动和关闭MySQL服务 1.通过图形界面来启动和关闭MySQL服务 2.通过DOS窗口来启动和关闭MySQL服务 感谢 ...

  9. 定义一个Map集合,key和value不规定类型,任意放入数据,用keySet()和 entrySet()两种方式遍历出Map集合的数据

    package com.lanxi.demo1_1_1; import java.util.HashMap; import java.util.Iterator; import java.util.M ...

随机推荐

  1. Xcode7.1环境下上架iOS App到AppStore 流程③(Part 三)

    前言部分 part三 部分主要讲解 Xcode关联绑定发布证书的配置.创建App信息.使用Application Loader上传.ipa文件到AppStore 一.Xcode配置发布证书信息 1)给 ...

  2. (转)SqlServer 数据库同步的两种方式 (发布、订阅),主从数据库之间的同步

    最近在琢磨主从数据库之间的同步,公司正好也需要,在园子里找了一下,看到这篇博文比较详细,比较简单,本人亲自按步骤来过,现在分享给大家. 在这里要提醒大家的是(为了更好的理解,以下是本人自己理解,如有错 ...

  3. BroadcastReceiver几种常见监听

    1.BroadcastReceiver监听拨号 <intent-filter android:priority="1000" > <action android: ...

  4. Linux归档压缩、分区管理与LVM管理

    归档和压缩命令: 命令格式: gzip [-9] 文件名 bzip2 [-9] 文件名 gzip –d .gz格式的压缩文件 bzip2 –d .bz2格式的压缩文件 选项: -9:高压缩比,多用于压 ...

  5. ng-option指令使用记录,设置默认值需要注意

    ng-options一般有以下用法: 数组作为数据源: label for value in array select as label for value in array label group ...

  6. [deviceone开发]-Star分享的优惠券商户管理端App开源

    一.简介 这是一个优惠券的商主端,也就是配置发送优惠券的App 页面和交互还是像纳豆那样非常漂亮流畅,大家可以参考一下二.效果图 三.相关下载 https://github.com/do-projec ...

  7. iOS之在写一个iOS应用之前必须做的7件事(附相关资源)

    本文由CocoaChina--不再犹豫(tao200610704@126.com)翻译 作者:@NIkant Vohra 原文:7 Things you must absolutely do befo ...

  8. Xcode自定义代码块

    到现在才发现原来Xcode有自定义代码块这么神奇的功能,能简化很多无聊的敲重复代码的工作,真是感叹我怎么才知道!!! 具体的设置流程见:http://nshipster.cn/xcode-snippe ...

  9. iOS:frame访问、设置简化

    看到一些程序都有这种写法,也不知道原创者是谁了.先在博客保存下. 在.m文件 #import "UIView+MyFrameCategory.h" @implementation ...

  10. [译]Angular2 和TypeScript -- 一次简要的预览

    原文链接:https://www.infoq.com/articles/Angular2-TypeScript-High-Level-Overview 作者:  Yakov Fain Posted o ...