Mysql数据库的备份恢复

来源:互联网 发布:江一燕 支教 知乎 编辑:程序博客网 时间:2024/04/30 02:41

1. 两种备份方法

一般来说,MySQL数据库有两种备份方式:逻辑备份和物理备份。

 逻辑备份物理备份做法用mysqldump将数据库内容导出成.sql的文件,恢复时执行sql语句就可以了将数据库文件复制到其它地方保存起来优点操作灵活、简单恢复非常快,只需要把文件拷回来就可以了缺点恢复操作非常慢,数据库很大时,恢复时间会长到不可接受操作相对复杂,需要的磁盘空间多

由于珍立拍数据库的数据量将来会非常大,所以建议采用物理备份为主,以便快速恢复。 除物理备份外,可以定期执行一次逻辑备份。

2. 怎样做物理备份

由于需要24小时提供服务,数据库服务不能停。备份的时候,很可能数据库文件还在变化,怎样保证文件的一致性呢。我们可以采用做快照的方法。 快照就是一个文件系统瞬间的镜像,创建后,文件无论再怎样改动,快照的内容保持不变。 在Linux操作系统上,创建镜像需要LVM,具体的方法如下:

2.1 创建逻辑卷

        1. 从硬盘驱动器,创建物理卷。假设有两块空闲磁盘sdb和sdc,先在两块磁盘上创建物理卷(pv)

            # pvcreate /dev/sdb
            # pvcreate /dev/sdc
            # pvdisplay
            
        2. 从物理卷创建卷组datavg
            # vgcreate datavg /dev/sdb /dev/sdc
            # vgdisplay
            
        3. 从卷组中创建逻辑卷data
            # lvcreate -L 38G -n data datavg
            # lvscan
            
        4. 创建文件系统,挂载到/data
            # mkfs.ext4 /dev/datavg/data
            # mkdir /data
            # mount /dev/datavg/data /data
            
        5. 设置启动时挂载
               添加这一行到 /etc/fstab 中
              /dev/datavg/data              /data                   ext4    defaults        1 2            

2.2 把mysql数据文件放在卷上

        # service mysqld stop
        # cd /var/lib
        # mv mysql /data
        # ln -s /data/mysql
        # service mysqld start   

2.3 为卷做快照, 备份快照

        # lvcreate  -L  1M  -s  -n  data_backup  /dev/datavg/data
        # mkdir  /data_backup
        # mount  /dev/datavg/data_backup  /data_backup
        # tar  zcvf  data_backup_20140529.tgz  /data_backup
        
        # umount /data_backup
        # lvremove -f /dev/datavg/data_backup
        # rm -rf /data_backup

        将生成的备份文件data_backup_20140529.tgz保存到其它地方。        

2.4 恢复试验    

        修改数据库
            # mysql -u root
            mysql> drop database vividcase;        
        
        恢复
            # service mysqld stop
           # tar zvxf data_backup_20140529.tgz
           # cd /data
           # mv mysql mysql.1
           # mv /data_backup_20140529/mysql .
           # service mysqld start

       登录进mysql, 可以看到被删除的数据库已经恢复了。       

0 0
原创粉丝点击