您的位置:首页 > 数据库 > MySQL

7. mysql备份和还原

2015-06-14 09:45 531 查看
1.逻辑备份

mysql中的逻辑备份就是将数据库中的数据备份为一个文本文件, 且此文本文件可以查看和编辑

mysqldump

[root@server2
~]# mysqldump

Usage:
mysqldump [OPTIONS] database [tables]

OR mysqldump [OPTIONS] --databases [OPTIONS]
DB1 [DB2 DB3...]

OR mysqldump [OPTIONS] --all-databases
[OPTIONS]

mysqldump -uroot -paixocm ds > ds.sql ---备份ds数据库

mysqldump
ds stu dept > ds.sql ---备份ds库下的stu,dept表

mysqldump
--databases ds ds2 > ds.sql ---备份多个库 (注意后面还原上的区别)

写锁: 本session增删改查均可, 其他session均为等待

读锁: 所有session只可select, 均不可增删改

flush tables with read lock; ----锁所有表

lock
tables stu read或write;

unlock
tables;

mysqldump -uroot -paixocm -lF ds > ds.sql

-l(小写)
给所有表加上读锁, 备份时只能读而不能写

-F
(flush logs)生成新二进制日志文件

还原

mysql -uroot -paixocm ds < ds.sql -- 输入重定向, cat ds.sql | mysql用管道也可

或 use ds后 source /tmp/ds.sql

注意以上情况是没有加 --databases 备份,需要先新建好一个空的数据库,而加了的话,可以不要建新库,还原时自动建好。

不完全恢复

基于时间点恢复,
基于位置恢复(更精确,因为一个时间点存在并发性)

mysqlbinlog mysql-bin.000001
--stop-datetime="2012-1-1 12:1:2" | mysql -uroot -paix ds
//可以参考bin日志

2.物理备份

cp数据库文件夹如ds

冷备份:
停服务后cp, 不停服务的话拷贝的数据不一致

热备份:
服务正常运行时cp(加读锁)

热备份例子(只对myisam表):

方法1:

/usr/local/mysql56/bin/mysqlhotcopy -u root
-p aixocm -S … ds /tmp ---自动加锁了

方法2
(手工加读锁):

flush tables with read lock; -- 锁所有表, lock tables t1 read;
只锁t1

cp文件夹

unlock
tables;

innodb表, 不支持,可以用第三方工具如:ibbackup工具, 收费。

还原:

cp -pr /tmp/ds
/database/

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: