mysql数据备份还原,计划任务
2013-05-04 23:59
1121 查看
一)mysqldump是线上的逻辑备份。备份的是建表、建库、插入等操作所执行SQL语句。
mysqldump导出的数据时刻迁移到其它数据库的表。它的备份速度要比直接copy慢。
1,备份一个数据库或者一张表
mysql>mysqldump [option] dbname [tablename]
#mysqldump 数据库 表名 表名 …… -u username -p
2,同时备份多个数据库语法
mysql>mysqldump [option] --database [dbname1,dbname2]
3,备份服务器上的所有数据
mysql>mysqldump --all-database
4,命令行下
$mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
例子:
备份
[mysql@~]$mkdir /backup
[mysql@mysql]$ mysqldump -uroot -p123 -h 1.1.1.20 --all-database > /backup/alldb.sql
[mysql@mysql]$mysqldump -uroot -p123 -h 1.1.1.20 -B school service > /backup/school+service.sql
[mysql@mysql]$ mysqldump -uroot -p123 -h 1.1.1.20 -B school > /backup/school.sql
恢复:
[mysql@backup]$mysql -uroot -p123 -h 1.1.1.20 < /backup/school+service.sql
附)可以再加一个计划任务的小脚本方便自己。
#!/bin/bash
back_dir=/backup
back_date=`date +%F`
user=root
pass=123
if [ ! -d /backup ];then
mkdir -p /backup
fi
mysql -uroot -p123 -e 'flush logs'
for dbname in school service
do
mysqldump -u${user} -p${pass} -B ${dbname} > ${back_dir}/${back_date}_${dbname}.sql
done
二)如果没备份的情况下误删除可以利用mysql的binlog日志文件进行恢复。
恢复前先截断一下日志
mysql -uroot -p123 -e 'flush logs' //截断并产生新的binlog
恢复(一般倒数第二个为最近截断出来的日志):
按文件
mysqlbinlog 倒数第二个binlog |mysql -uroot -p123 整个文件全部执行
按时间:
mysqlbinlog 倒数第二个binlog --start-datetime="2000-12-05 10:02:56"
mysqlbinlog 倒数第二个binlog --stop-datetime="2000-12-05 11:02:54"
mysqlbinlog 倒数第二个binlog --start-datetime="2000-12-05 10:02:56" --stop-datetime="2000-12-05 11:02:54"
mysqlbinlog 倒数第二个binlog --start-datetime="2000-12-05 10:02:56" --stop-datetime="2000-12-05 10:02:56" 错误
按字节数:(如果时间点有重合)
mysqlbinlog 倒数第二个binlog --start-position=260
mysqlbinlog 倒数第二个binlog --stop-position=260
mysqlbinlog 倒数第二个binlog --start-position=260 --stop-position=930
mysqldump导出的数据时刻迁移到其它数据库的表。它的备份速度要比直接copy慢。
1,备份一个数据库或者一张表
mysql>mysqldump [option] dbname [tablename]
#mysqldump 数据库 表名 表名 …… -u username -p
2,同时备份多个数据库语法
mysql>mysqldump [option] --database [dbname1,dbname2]
3,备份服务器上的所有数据
mysql>mysqldump --all-database
4,命令行下
$mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
例子:
备份
[mysql@~]$mkdir /backup
[mysql@mysql]$ mysqldump -uroot -p123 -h 1.1.1.20 --all-database > /backup/alldb.sql
[mysql@mysql]$mysqldump -uroot -p123 -h 1.1.1.20 -B school service > /backup/school+service.sql
[mysql@mysql]$ mysqldump -uroot -p123 -h 1.1.1.20 -B school > /backup/school.sql
恢复:
[mysql@backup]$mysql -uroot -p123 -h 1.1.1.20 < /backup/school+service.sql
附)可以再加一个计划任务的小脚本方便自己。
#!/bin/bash
back_dir=/backup
back_date=`date +%F`
user=root
pass=123
if [ ! -d /backup ];then
mkdir -p /backup
fi
mysql -uroot -p123 -e 'flush logs'
for dbname in school service
do
mysqldump -u${user} -p${pass} -B ${dbname} > ${back_dir}/${back_date}_${dbname}.sql
done
二)如果没备份的情况下误删除可以利用mysql的binlog日志文件进行恢复。
恢复前先截断一下日志
mysql -uroot -p123 -e 'flush logs' //截断并产生新的binlog
恢复(一般倒数第二个为最近截断出来的日志):
按文件
mysqlbinlog 倒数第二个binlog |mysql -uroot -p123 整个文件全部执行
按时间:
mysqlbinlog 倒数第二个binlog --start-datetime="2000-12-05 10:02:56"
mysqlbinlog 倒数第二个binlog --stop-datetime="2000-12-05 11:02:54"
mysqlbinlog 倒数第二个binlog --start-datetime="2000-12-05 10:02:56" --stop-datetime="2000-12-05 11:02:54"
mysqlbinlog 倒数第二个binlog --start-datetime="2000-12-05 10:02:56" --stop-datetime="2000-12-05 10:02:56" 错误
按字节数:(如果时间点有重合)
mysqlbinlog 倒数第二个binlog --start-position=260
mysqlbinlog 倒数第二个binlog --stop-position=260
mysqlbinlog 倒数第二个binlog --start-position=260 --stop-position=930
相关文章推荐
- mysqldump+系统计划任务定时备份MySql数据
- 备份服务器数据(IIS配置备份还原、任务计划、服务列表和APP)
- mysql备份还原,在win7系统上可以,在winservice2008中不能成功备份大数据。
- MySQL 数据备份与还原
- 利用批处理及计划任务实现服务器间的数据自动备份
- Mysql大数据备份和增量备份及还原
- MySQL(十四)之数据备份与还原
- Mysql大数据备份和增量备份及还原
- mysql的数据备份和还原 - 如何使用mysqldump和mysqlbinlog
- MySQL 数据备份与还原
- 介绍备份和还原MySQL数据的两种方法
- mySQL教程 第13章 数据备份和还原
- mysql学习笔记--数据备份与还原
- mysql数据备份与还原命令
- Navicat for MySQL如何备份和还原数据
- MySQL学习笔记20:数据备份与还原
- MySQL 数据备份与还原
- mysql数据备份与还原命令
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- mysql数据备份与还原