视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MYSQL学习总结(四):MYSQL的恢复和备份
2020-11-09 09:14:40 责编:小采
文档

#使用mysqldump备份所有库
Mysqldump –opt –master-data –single-transaction –u root –ppassword –all –database > all.sql
参数说明:--opt 好像是默认选项,不加也可以,主要作用是防止库太大,不加的话会把结果先放进内存,这样会出问题
--master-data 这个主要是在结果上显示导出的位置(二进制日志的pos)
--single-transaction 这个是相对于innoDB引擎起作用的,类似于flush table with read lock吧;
#使用mysqldump备份一个库
Mysqldump –u root –ppassword databasename > databasename.sql
#使用mysqldump备份一个表(即导出一个表数据)
Mysqldump –u root –ppassword –databases databasename –tables tablename > tablename.sql
#使用mysqldump压缩备份
Mysqldump –u root –ppassword databasename | gzip > databasename.sql.gz
#mysqldump的恢复
Gunzip < databasename.sql.gz | mysql –u root –ppassword databasename
Mysql –u root –ppassword databasename < databasename.sql
也可以登陆进mysql,然后运行source /tmp/databasename.sql


#使用mysqlhotcopy备份库
Mysqlhotcopy –uroot –p=password databasename /bakup/备份目录
#使用mysqlhotcopy备份某一个表
Mysqlhotcopy –u root –p=password databasename./tablename/ /backup/备份目录
#使用mysqlhotcopy备份库并增加备份记录
Mysqlhotcopy –u root –p=password –checkpoint=hotcopy.checkpoint databasename /bakup/备份记录
参数说明:将每次执行备份的记录保存在hotcopy库-checkpoint表中,需要事先创建好库和表
如:create databases hotcopy;
Use hotcopy;
Create table checkpoint (time_stamp timestamp not null,src varchar(32),dest varchar(32),msg varcher(255));
#恢复hotcopy备份的库
直接将数据库目录拷贝至数据库的数据目录即可,注意目录的权限。
#mysqldump和mysqlhotcopy的区别和个人理解
Mysqlhotcopy只适用于MYISAM引擎的表;
使用mysqlhotcopy必须要安装perl-DBI、perl-DBD-mysql模块
二者执行时都会自动锁表
恢复时mysqlhotcopy的备份文件需要拷至目标目录覆盖,mysqldump需要把备份文件导入到原库
#基于二进制日志的恢复
Mysqlbinlog mysql-bin.XXXXX | mysql –u root –ppassword // 恢复整个mysql-bin.XXXX二进志文件
Mysqlbinlog –start-datatime=”2014-02-28 10:00:00” –stop-datatime=”2014-02-28 12:00:00” mysql-bin.XXXX | mysql –u root –ppassword //恢复mysql-bin.XXXX中从10点到12点的部分操作
Mysqlbinlog –start-position=’3000’ –stop-position=’5000’ mysql-bin.XXXX | mysql –u root –ppassword //恢复mysql-bin.XXXX 中位置从3000-5000的部分。可以使用mysqlbinlog工具将二进制日志导出后,找到位置。 如:mysqlbinlog /var/mysql-bin.XXXX >/tmp/binlogXXXX.txt

下载本文
显示全文
专题