MYSQL学习总结(四):MYSQL的恢复和备份

#使用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    mysql –u root –ppassword databasename 也可以登陆进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

以上就是MYSQL学习总结(四):MYSQL的恢复和备份的内容,更多相关内容请关注PHP中文网(www.php.cn)!

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享