物理备份与逻辑备份
来源:互联网 发布:const java 编辑:程序博客网 时间:2024/05/16 00:43
物理备份和恢复:
物理备份分为热备和冷备份,较逻辑备份,物理备份的备份和恢复的速度快,原理基于cp命令。
冷备:备份MySQL数据库的共享表空间、.frm、独立表空间(.ibd)、重做日志文件。- 优点:备份简单、恢复简单、备份的速度快
- 缺点:不是那么的容易跨平台、备份的文件比较大
- 冷备份的备份步骤:停掉MySQL服务,在操作系统级别备份MySQL的数据文件和日志文件到备份目录
- 冷备份的恢复步骤:停掉MySQL服务,在操作系统级别恢复MySQL的数据文件,然后重启MySQL服务,使用mysqlbinlog
逻辑备份:
a. mysqldump备份:
语法:mysqldump [arguments] >file_name
mysqldump -uuser -p --all-databases >file_name.sql #备份所有的数据库 mysqldump -uuser -p --databases db1 db2 db3 >file_name.sql #备份数据库db1,db2,db3 mysqldump -uuser -p --single-transaction test > file_name.sql #保证一致性的情况下备份test架构 #一致性备份在备份开始时开启一个事务,这个样可以达到不锁表锁库的情况下进行备份,如果不加--single-transaction的话备份就会锁库锁表 mysqldump -uuser -p --where='a<100' --single-transaction Nums Nums >file.sql #备份Nums架构下的Nums中a字段小于100的 mysqldump -uuser -p --single-transaction sakila --tab="/var/lib/mysql-files" #以csv的格式备份sakila数据库到/var/lib/mysql-files目录
b. select ... into outfile 语法:select column1,column2 ... into outfile 'file_name' where condition from table ; fields terminated by '\t' :表示每个字段的间隔符 enclosed by '' :表示对于字符串的包含符 escaped by '\\' :表示转义字符 lines starting by '' :表示行开始符号 terminated by '\n' :表示行结束符号 例如:
select * into outfile '/var/lib/mysql-files/city.txt' fields terminated by '\t' enclosed by '' escaped by '\\' lines starting by '' terminated by '\n' from city limit 10;
要求: 文件所在路径的权限必须是mysql:mysql 该文件不能已经存在mysqldump 和select ... into outfile的区别: mysqldump可以一次备份多个表且保证数据的一致性而select into outfile只能一次备份一个表,且不能保证数据的一致性mysqldump的导入: source 文件路径+文件名load data infile : 语法:load data infile '文件路径+文件名' into table table_name; 例如:
set @@foreign_key_checks=0; #关闭外键检查 load data infile '/var/lib/mysql-files/city.txt' into table city; set @@foreign_key_checks=1; #开启外键检查 #在load data infile前关闭外键检查,可以提高导入数据的效率
mysqlimport 工具: 语法:mysqlimport -uuser -p [参数] file_name
mysqlimport -uuser -p --use-threads /var/lib/mysql-files/t.txt /var/lib/mysql-files/city.txt
mysqlimport和load data infile的联系和区别: mysqlimport 是load data infile的接口,由一个或者多个load data infile 组成,也就是说load data infile一次只能导入一张表,但是mysqlimport可以导入一张或者多张表二进制日志备份和恢复: 备份日志步骤: 1.flush logs; #刷新日志 2.备份之前的日志
#恢复日志的方式: mysqlbinlog lzg-Lenovo-G40-70m-bin.000001 |mysql -uuser -p db_name #可以同时恢复两个日志,效率更高: mysqlbinlog lzg-Lenovo-G40-70m-bin.000001 lzg-Lenovo-G40-70m-bin.000002|mysql -uuser -p db_name
mysqlbinlog的参数: --start-position :开始位置 --stop-position :结束位置 --start-datetime :开始时间 --stop-datetime :结束时间有一点不解: 就是删了一张表中的数据是可以恢复的,但是删除一个表就不能恢复 解jue:后来百度了一下解决了,原因是二进制恢复分为完全恢复、基于时间点的恢复和基于位置点的恢复。对于有删表操作的恢复,日志中保存有删表的sql语句,所以我们要基于时间或者位置点进行恢复点
mysqlbinlog --start-position=560 --stop-position=650 lzg-Lenovo-G40-70m-bin.000001 | mysql -uuser -p mysqlbinlog --start-datetime="2017-07-10 08:00:00" --stop-datetime="2017-07-10 09:00:00" lzg-Lenovo-G40-70m-bin.000001 | mysql -uuser -p
xtrabackup的用法在下面的文章中记录
今天衡阳阴天。。
阅读全文
0 0
- 物理备份与逻辑备份
- Oracle逻辑备份与物理备份
- 逻辑备份和物理备份
- Oracle备份与恢复介绍(物理备份与逻辑备份)
- Oracle备份与恢复介绍(物理备份与逻辑备份)
- Mysql的数据备份类型——物理备份与逻辑备份,全量与增量
- oracle物理备份和逻辑备份理解
- 如何理解逻辑备份和物理备份?
- D_backup and restore(物理与逻辑备份)与重建
- oracle数据库备份:物理备份和逻辑备份
- MySQL数据库备份之逻辑备份和物理备份概述
- 数据库的逻辑备份和物理备份--非RMAN
- MySQL数据库的逻辑备份和物理备份
- MySQL备份与恢复之逻辑备份
- PostgreSQL物理备份与恢复
- postgres物理备份与恢复
- 逻辑备份,冷备份与热备份步骤过程
- 逻辑备份与恢复实战
- apache hadoop 2.7.2 yarn node label测试结果
- git: git操作遇到的坑 & 解决方法
- 升级Angular2 到 Angular4
- 数组冒泡升序降序
- UIlabel
- 物理备份与逻辑备份
- 启动OpenOffice服务
- AFNetworking的请求头的cookie的值的获取和使用
- 对C语言中argc和argv的理解
- C# DirectInput游戏手柄开发心得
- 1.1Android 学习+进度之一
- Service详解
- C/C++毫秒时间戳函数
- 能不做自己写个类,也叫java.lang.String