首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

MySQL 的备份步骤

2012-12-27 
MySQL 的备份方法逻辑备份通过一些普通的SQL SELECT查询语句的集合,通过表扫描创建逻辑备份。优缺点:速度慢

MySQL 的备份方法
逻辑备份        通过一些普通的SQL SELECT查询语句的集合,通过表扫描创建逻辑备份。    优缺点:速度慢,可在线备份。
物理备份        通过对原始二进制数据的复制获得的备份。    优缺点:速度快,但必须离线备份(数据库系统必须关闭)。
备份实用程序和操作系统及方案?
1、InnoDB Hot Backup应用        备份InnoDB引擎的商业产品,在备份时保持数据库的查询和更新,无需离线或显示锁定表。        也可备份MyISAM表,但需要在备份的过程中阻塞MyISAM表的更新。        可备份部分或全部数据库、压缩备份的输出文件、进行有选择的备份(如备份指定的表)。        包含两个文件 ibbackup和innobackup
    使用ibbackup备份:在命令行中指定两个备份所需的文件作为参数,第一个为标准的my.cnf 配置文件,第二个文件包含用于保存备份的文件信息。    shell> ibbackup my.cnf backup.cnf    文件的参数如下:        datadir = directory        innodb_data_home_dir = directory        innodb_data_file_patch = parameter-list        innodb_log_group_home_dir = directory        innodb_log_file_in_group = group_number        innodb_log_file_size = size
    实例:        [mysqld]        datadir = /usr/local/mysql/data        innodb_data_home_dir = /usr/local/mysql/data        innodb_data_file_patch = ibdata1:10M:autoextend        innodb_log_group_home_dir = /usr/local/mysql/data        innodb_log_file_in_group = 2        innodb_log_file_size = 20M    假设要将备份文件写入 /home/cbell/backup 目录,则 backup.cnf 如下:        datadir = /home/cbell/backup        innodb_data_home_dir = /home/cbell/backup        innodb_data_file_patch = ibdata1:10M:autoextend        innodb_log_group_home_dir = /home/cbell/backup        innodb_log_file_in_group = 2        innodb_log_file_size = 20M    还可以使用 --compress 选项压缩备份        ibbackup --compress my.cnf  backup.cnf
    应用日志备份:由于备份过程中InnoDB数据库仍在运行,如果想得到完全一致的备份,必须将当前日志应用到备份文件中以同步数据。    执行此操作只需要备份配置文件和 --applylog 选项,如:    shell$ ibbackup --applylog  /home/cbell/backup.cnf    如果使用了 compress 选项,那么还需要提供 --uncompress 选项,如:    shell$  ibbackup --applylog --uncompress /home/cbell/backup.cnf
    使用ibbackup还原数据        直接启动MySQL实例即可,如:        shell$  mysqld --defaults-file=/home/cbell/backup.cnf
    innobackup脚本:是一个perl脚本,可以自动执行ibbackup的许多操作        a) 执行备份            perl innobackup  /etc/mysql/my.cnf  /home/cbell/backup            perl innobackup --apply-log  /etc/mysql/my.cnf  /home/cbell/backup
        b) 恢复数据            perl innobackup --apply-log /etc/mysql/my.cnf /home/cbell/backup            mysqladmin -uroot shutdown            perl innobackup --copy-file /etc/mysql/my.cnf  /home/cbell/backup            service mysqld start                c) 支持PITR(及时恢复)(http://www.innodb.com/doc/hot_backup/manual.html)
2、物理文件的复制        需要停止服务器,常见方法使用 tar 命令创建归档,然后将归档复制到另一个系统上并恢复数据目录。    或者在备份的过程中保证没有数据更新的情况下就不需要关闭服务器,如锁定所有表并执行 flush tables 命令,然后在复制文件之前将服务器离线。    mysqlhotcopy.sh 位于安装文件目录的 ./scripts文件夹下,允许对数据库进行热备份,但只能用来备份MyISAM或文档引擎。(unix上使用)
3、mysqldump工具    优缺点:使用灵活、方便;速度慢、更大的存储空间    mysqldump -uroot --all-databases    mysqldump -uroot db1, db2    mysqldump -uroot my_db t1    可以非常方便转储数据库模式,如使用--no-data选项
4、XtraBackup    XtraDB的热备份方案,可备份InnoDB、XtraDB、MyISAM表。    http://www.percona.com/docs/wiki/percona-xtrabackup:xtrabackup_manual
5、逻辑卷管理器快照备份    LVM快照        lvm文件系统快照备份的前提是系统中有不小于当前数据库文件所在卷的空闲磁盘空间。    ZFS快照        a) 创建可管理的ZFS文件系统            zpool create -f mypool c0d0s5            zfs create mypool/mydata        b) 创建备份(执行新文件系统的快照)            zfs snapshot mypool.mydata@backup_12_dec_2012        c) 将文件系统恢复到某个指定的备份            cd /mypool/mydata            zfs rollback mypool/mydata@backup_12_dec_2012

热点排行