知识点:linux数据库备份
服务端启用二进制日志
如果日志没有启开,必须启用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数据库备份的更多相关文章
- linux数据库备份
linux数据库备份 服务端启用二进制日志 如果日志没有启开,必须启用binlog,要重启mysql,首先,关闭mysql,打开/etc/my.cnf,加入以下几行: [mysqld] log-bin ...
- linux数据库备份脚本
数据库备份1.创建个备份存储目录mkdir /root/backup/2.以下内容写到dbbackup.sh(注意,使用VIM 或者VI命令新建文件,不要在WINDOWS下新建,否则可能提示 No s ...
- Linux下Mysql数据库备份
今天一同事的电脑无缘无故坏了,找了IT部门检测说是硬盘坏了,数据无法恢复.好悲剧.自己博客也写了好久不容易,要是突然间数据丢了那怎么办!于是写了个数据库自动备份脚本,并创建任务计划,实现每天22:30 ...
- linux c数据库备份第一版
使用linuxC实现的mysql数据库备份目标:通过alarm信号定时备份数据库备注:目前是第一个版,本身不能定时备份可以结合linux自动化实现定时备份.运行平台:Linux或类unix测试平台:u ...
- linux c数据库备份第五版
linux下c实现的数据库备份程序终于迎来第五版啦,这样改程序就暂告一段落啦,有点小激动呢...接下来的一周(可能两周)时间里,我会用一个小型的网络游戏(比拼99乘法)作为我学习linux c的毕业之 ...
- linux c数据库备份第四版
该版本算是比较成熟的啦,欢迎大伙拿来试用!!!1.新增数据库连接和备份时间配置文件conf2.新增日志文件,程序运行的一些异常会记录在log文件下 后续的工作:1.将代码切割为多个文件,分类存放代码2 ...
- linux c数据库备份第二版
#想知道更多请查看第一版"linux c数据库备份第一版" #include<sys/types.h> #include<sys/wait.h> #incl ...
- mongodb数据库备份迁移 windows -> linux
mongodb数据库备份迁移 windows -> linux cd 到本机mongodb的安装目录 如: C:\Program Files\MongoDB\Server\3.4\bin 可以发 ...
- Win和Linux定时备份数据库
项目的数据库需要每天备份,但是手动备份太麻烦而且容易忘,所以通过定时任务执行脚本备份数据库,服务器有Windows和Linux,所以两种都记录一下. 一.Windows 首先写好脚本,这里不多说,因为 ...
随机推荐
- Java基础七(Eclipse工具)
今日内容介绍1.Eclipse开发工具2.超市库存管理系统 ###01Eclipse的下载安装 * A: Eclipse的下载安装 * a: 下载 * http://www.eclipse.org ...
- C# to IL 7 Pointers(指针)
Pointers are the heart and soul of a programming language. The only reason why the Cprogramming lang ...
- 无损压缩PNG工具
http://nullice.com/archives/1998 http://nullice.com/archives/1998 http://nullice.com/limitPNG/ https ...
- python 用type()创建类
type()可以查看一个类型,也可以查看变量的类型 class Hello1(object): def hello(self, name = 'world'): print('Hello, %s' % ...
- mysql查询相关问题
前言 本文实现的这个需求其实十分普遍,举例来说,我们存在一个用户来源表,用来标记用户从哪个渠道注册进来.表结构如下所示… 其中 origin 是用户来源,其中的值有 iPhone .Android . ...
- Linux常用文本操作命令整理
阅读目录 1.统计命令——wc 2.切分命令——cut 3.排序命令——sort 4.去重命令——uniq 5.查找命令——grep 6.替换/查找/删除命令——sed 7.强大的文本分析命令——aw ...
- win7重装系统笔记
制作U盘启动盘:链接 原文链接:链接 开机进入bios界面(华硕:F2) 按方向左右键进入:Boot选项,将“Lunch CSM”设置为“Enabled” 方向键选择“Security”,将“Secu ...
- iis上的aps.net1.1程序池如何添加
http://www.jb51.net/article/84668.htm iis上的aps.net1.1 的程序池是默认有的,如果不小心将其删掉,或者改成其他版本,将没办法在iis工具上还原或新建一 ...
- linux mv命令详解
Linux mv命令 Linux mv命令用来为文件或目录改名.或将文件或目录移入其它位置. 用法: mv [选项]... [-T] 源文件 目标文件 mv [选项]... 源文件... 目录 mv ...
- Hystrix 常用属性配置
配置参数 默认值 说明 命令-执行属性配置 hystrix.command.default.execution.isolation.strategy THREAD 配置隔离策略,有效值 THREAD, ...