服务端启用二进制日志

如果日志没有启开,必须启用binlog,要重启mysql,首先,关闭mysql,打开/etc/my.cnf,加入以下几行:

[mysqld]
log-bin

然后重新启动mysql,会产生hostname-bin.000001以及hostname-bin.index,前面的日志文件是记录所有对数据的更新操作,后面的文件是存储所有二进制文件的索引,不能轻易被删除。

重启

[root@localhost ]# service mysqld start (.0版本是mysqld)
[root@localhost ]# service mysql start (5.5.7版本是mysql)

查看日志状态

Mysqldump备份执行脚本

# Name:backup.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
#备份地址
backupdir=/var/lib/mysql-files/mysqlbackup
#备份文件后缀时间
time=_` date +%Y_%m_%d_%H_%M_%S `
#需要备份的数据库名称
db_name=bike_system
#mysql 用户名
db_user=root
#mysql 密码
db_pass=bicycle
#mysqldump命令使用绝对路径,-flush-logs刷新biglog日志
mysqldump -flush-logs -u$db_user -p$db_pass --databases $db_name | gzip > $backupdir/$db_name$time.sql.gz
#删除7天之前的备份文件
find $backupdir -name $db_name"*.sql.gz" -type f -mtime + -exec rm -rf {} \; > /dev/null >&
echo "success"

设置脚本定时执行

输入:crontab -e

选择一个编辑器

在文件末尾添加:

  * * * /var/lib/mysql-files/backup.sh
#每晚1点半执行数据库备份脚本

Mysqldump用法参考

用法:mysqldump[options][db_name[tbl_name...]]
主要选项解释:
--all-databases,-A:备份所有数据库
--databases,-B:要备份的数据库,可以同时备份多个,使用空格分隔
--flush-logs,-F:备份前、请求到锁之后滚动日志,要记录下复制时的二进制日志
--flush-privileges:通知数据库重读授权表
--host=host_name,-hhost_name:要备份的数据库的主机名,可以基于网络备份
--lock-all-tables,-x:请求锁定所有表之后再备份,对MyISAM,InnoDB,Aria做温备
--single-transaction:能够对InnoDB存储引擎实现热备
-uusename备份的用户名
-ppassword登陆数据库的密码
--events:备份事件调度器代码
--routines:备份存储过程和存储函数
--triggers:备份触发器
--master-date={||},0表示不记录,1表示距离为changemaster语句,2表示记录为注释的changemaster语句
  • 1.备份全部数据库的数据和结构 mysqldump -uroot -p123456 -A >F:\all.sql
  • 2.备份全部数据库的结构(加 -d 参数) mysqldump -uroot -p123456 -A-d>F:\all_struct.sql
  • 3.备份全部数据库的数据(加 -t 参数) mysqldump -uroot -p123456 -A-t>F:\all_data.sql
  • 4.备份单个数据库的数据和结构(,数据库名mydb) mysqldump -uroot-p123456 mydb>F:\mydb.sql
  • 5.备份单个数据库的结构 mysqldump -uroot -p123456 mydb-d>F:\mydb.sql
  • 6.备份单个数据库的数据 mysqldump -uroot -p123456 mydb-t>F:\mydb.sql
  • 7.备份多个表的数据和结构(数据,结构的单独备份方法与上同) mysqldump -uroot -p123456 mydb t1 t2>f:\multables.sql
  • 8.一次备份多个数据库 mysqldump -uroot -p123456 --databases db1 db2>f:\muldbs.sql

还原部分分(1)mysql命令行source方法 和 (2)系统命令行方法

1.还原全部数据库:

(1) mysql命令行:mysql>source f:\all.sql

(2) 系统命令行: mysql -uroot -p123456

(2) mysql -uroot -p123456 mydb

(2) mysql -uroot -p123456 mydb

(2) 系统命令行: mysql -uroot -p123456<f:\muldbs.sql

Biglog还原参考

mysqlbinlog --start-datetime=“时间” 日志文件路径 | mysql -u用户 -p 从规定的起始时间还原到现在

mysqlbinlog --stop-datetime=“时间” 日志文件路径 | mysql -u用户 -p 从最开始还原到规定的结束时间

mysqlbinlog --start-datetime=“时间” --stop-datetime=“时间” 日志文件路径 | mysql -u用户 -p 从规定的起始时间还原到规定的结束时间

通过位置还原:

--start-position="还原数据的起始位置"

--stop-position="还原数据的结束位置"

mysqlbinlog --start-position=“位置” 日志文件路径 | mysql -u用户 -p 从规定的起始位置还原到现在

mysqlbinlog --stop-position=“位置” 日志文件路径 | mysql -u用户 -p 从最开始还原到规定的结束位置

mysqlbinlog --start-position=“位置” --stop-position=“位置” 日志文件路径 | mysql -u用户 -p 从规定的起始位置还原到规定的结束位置

知识点:linux数据库备份的更多相关文章

  1. linux数据库备份

    linux数据库备份 服务端启用二进制日志 如果日志没有启开,必须启用binlog,要重启mysql,首先,关闭mysql,打开/etc/my.cnf,加入以下几行: [mysqld] log-bin ...

  2. linux数据库备份脚本

    数据库备份1.创建个备份存储目录mkdir /root/backup/2.以下内容写到dbbackup.sh(注意,使用VIM 或者VI命令新建文件,不要在WINDOWS下新建,否则可能提示 No s ...

  3. Linux下Mysql数据库备份

    今天一同事的电脑无缘无故坏了,找了IT部门检测说是硬盘坏了,数据无法恢复.好悲剧.自己博客也写了好久不容易,要是突然间数据丢了那怎么办!于是写了个数据库自动备份脚本,并创建任务计划,实现每天22:30 ...

  4. linux c数据库备份第一版

    使用linuxC实现的mysql数据库备份目标:通过alarm信号定时备份数据库备注:目前是第一个版,本身不能定时备份可以结合linux自动化实现定时备份.运行平台:Linux或类unix测试平台:u ...

  5. linux c数据库备份第五版

    linux下c实现的数据库备份程序终于迎来第五版啦,这样改程序就暂告一段落啦,有点小激动呢...接下来的一周(可能两周)时间里,我会用一个小型的网络游戏(比拼99乘法)作为我学习linux c的毕业之 ...

  6. linux c数据库备份第四版

    该版本算是比较成熟的啦,欢迎大伙拿来试用!!!1.新增数据库连接和备份时间配置文件conf2.新增日志文件,程序运行的一些异常会记录在log文件下 后续的工作:1.将代码切割为多个文件,分类存放代码2 ...

  7. linux c数据库备份第二版

    #想知道更多请查看第一版"linux c数据库备份第一版" #include<sys/types.h> #include<sys/wait.h> #incl ...

  8. mongodb数据库备份迁移 windows -> linux

    mongodb数据库备份迁移 windows -> linux cd 到本机mongodb的安装目录 如: C:\Program Files\MongoDB\Server\3.4\bin 可以发 ...

  9. Win和Linux定时备份数据库

    项目的数据库需要每天备份,但是手动备份太麻烦而且容易忘,所以通过定时任务执行脚本备份数据库,服务器有Windows和Linux,所以两种都记录一下. 一.Windows 首先写好脚本,这里不多说,因为 ...

随机推荐

  1. skipper lua 添加luarocks 包管理

    skipper 支持基于lua 的script 扩展,同时设计比较方便的filter模型,让我们可以方便 进行request.response的扩展,结合lua 社区的包我们可以快速的进行新功能的开发 ...

  2. 【转载】Win10打开U盘提示“文件或目录损坏无法读取”怎么办?

    以下文转载至系统之家 网址:http://www.xitongzhijia.net/xtjc/20190314/152334.html (PS:暂未亲测) Win10打开U盘提示“文件或目录损坏无法读 ...

  3. 利用反射--调用一个按钮的Click事件

    最基本的调用方法 (1)button1.PerformClick();(2)button1_Click(null,null);(3)button_Click(null,new EventArgs()) ...

  4. 我 支持 使用 async await

    这篇文章原来的 标题 是 <我 反对 使用 async await>, 但经过后来的一些研究, 发现 async await 是 良性 的, 所以 我把 标题 改成了 <我 支持 使 ...

  5. [转]JDK动态代理

    代理模式         代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间 ...

  6. python 术语

    python 术语 术语英文 术语中文 说明 PyPI(Python Package Index) 搜索python包的网站:https://pypi.org/ pip.easy_install 包管 ...

  7. Docker 制作自己的镜像

    1. 下载tomcat镜像 docker pull hub.c.163.com/library/tomcat:latest 2. 创建Dockfile vi Dockerfile from hub.c ...

  8. golang gorilla websocket例子

    WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信--允许服务器主动发送信息给客户端. WebSocket通信协议于2011年被IETF定 ...

  9. spring4与mongodb的集成

    新项目的辅助系统,需要用到mongo系统,今天再次将其使用环境进行了操作搭建.还是遇到一些问题,毕竟之前使用的场景和现在的不同.版本也不一样了. 本次使用的环境: mongo:3.4.4版本 OS: ...

  10. ML: 聚类算法R包 - 模型聚类

    模型聚类 mclust::Mclust RWeka::Cobweb mclust::Mclust EM算法也称为期望最大化算法,在是使用该算法聚类时,将数据集看作一个有隐形变量的概率模型,并实现模型最 ...