设置密码

验证码错误,请重新填写

免费建站旅程马上开始

开始建站
建站中

已有帐号?直接登录

首页>森动学院>网站建设教程 > MySQL教程:备份与恢复
MySQL教程:备份与恢复
发布时间: 2014-09-17
1、备份与恢复的类型:
逻辑备份与物理备份
线上备份与线下备份
本地备份与远程备份:mysqldump,mysqlhotcopy(第三方PERL程序),select ... into outfile
快照备份(mysql自身不支持),可使用第三方工具Veritas,LVM,ZFS
全备份与增量备份
全恢复与时间点(point-in-time)(增量)恢复
2、数据库备份方法
     2.1 通过拷贝表文件进行备份
         如MyISAM表的三个数据文件:*.frm,*.MYD,*.MYI. 为了保证数据的完整性,需要停止服务或通过:LOCK TABLES先锁定表,再通过FLUSH TABLES 来将所有活动状态的索引页写入磁盘.
     2.2 带分隔符的文本文件备份
         i) 通过SELECT * INTO OUTFILE 'filename' FROM table_name,此方法只能在本在进行,且只包含表的数据信息,不包含结构信息.
         ii)通过mysqldump --tab,些方法可远程备份且包含表的结构信息
         采用以上两种办法备份的数据可以通过:LOAD DATE INFILE 或mysqlimport 进行恢复
    2.3 使用mysqldump or mysqlhotcopy 脚本进行备份
        i) mysqldump 作为最通用的方法,对所胡存储引擎都适用
          如:
               shell>mysqldump db_name > dump file
               shell>mysqldump --tab=/path/to/save/dir db_name
         ii)mysqlhotcopy作为第三方脚本只支持MyISAM数据库
如:
shell>mysqlhotcopy db_name /path/to/save/dir
如果备份innodb引擎的数据库需要使用:ibbackup 
     2.4 使用Binary Log来实现增量备份
MySQL支持增量备份,但必须开启--log-bin选项来记录二进制日志.以下是使用Binary log进行恢复的相关步骤:
         i) mysql> show binary logs; 来查看一共有多少条二进制日志记录
         ii) mysql>show master status; 来查看当前正在使用的日志文件是哪一个,可以通过FLUSH LOGS来开启新的日志
         iii) 通过 shell>mysqlbinlog binlog_file.00001 binlog_file.00002 ... | mysql -u root -p 来恢复某一或多个阶段的数据
      如果想查看log中的数据可以使用
        iiii) shell>mysqlbinlog binlog_files | more 或通过
             shell>mysqlbinlog binlog_files > tmpfile 导出成可读数据进行查看,当然此时可以通过
             shell>mysql -uroot -p <tmpfile 来导入数据
      如果同时有多个日志文件需要导出,且希望导出到一个文件内,可以采用>>进行增量导出,如
            shell>mysqlbinlog binlog_file.000001 > /tmp/backup.sql
            shell>mysqlbinlog binlog_file.000002 >> /tmp/backup.sql
      同时通过
            shell>mysql -uroot -p -e "source /tmp/backup.sql"  进行导入.sdetailC.php/63.html