zoukankan      html  css  js  c++  java
  • 数据库备份及还原实战

    数据库备份及还原实战

    阅读(1,675)

    一:因某个业务使用的磁盘较小而且容量即将用完,因此将数据库目录更换到一个新的比较大的磁盘上,新的磁盘是对虚拟机动态添加的一块200G的磁盘,需要操作系统能够在不重启的情况下动态识别新添加的磁盘并将MySQL的数据目录进行备份并还原,即做到基本不影响业务的运行,本次使用XtraBacku,具体实现国学如下:

    1.1:添加一块较大的磁盘并分区:


    1.1.2:操作系统动态识别新硬盘:

    # ll /sys/class/scsi_host/host
    host0/ host1/ host2/ 
    # echo "- - -" > /sys/class/scsi_host/host0/scan #重新扫描总线上的磁盘
    # echo "- - -" > /sys/class/scsi_host/host1/scan
    # echo "- - -" > /sys/class/scsi_host/host2/scan
    # fdisk  -l
    
    Disk /dev/sda: 10.7 GB, 10737418240 bytes, 20971520 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0006ca14
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1            2048     2099199     1048576   82  Linux swap / Solaris
    /dev/sda2   *     2099200    20971519     9436160   83  Linux
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x000c88d6
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    41943039    20970496   83  Linux
    
    Disk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors  #识别到新添加的磁盘
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes

    1.1.3:分区及格式化,也可以不分区直接使用的:

    # fdisk  /dev/sdc
    #分区过程略。。。。
    # mkfs.xfs  /dev/sdc1 
    meta-data=/dev/sdc1              isize=256    agcount=4, agsize=13107136 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=0        finobt=0
    data     =                       bsize=4096   blocks=52428544, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
    log      =internal log           bsize=4096   blocks=25599, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0

    1.1.4:先临时挂在到某个路径:

    # mount /dev/sdc1  /mnt/

    1.2:安装XtraBackup并执行备份及还原:

    # yum install -y  https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.5/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.5-1.el7.x86_64.rpm 
    # /etc/init.d/zabbix_server  stop #停止服务,不然备份之后再写入的数据需要其他方式找回
    # innobackupex --user=root --password=xxx /mnt/ #备份当前数据,全部20G数据用了3分钟最有备份完毕,比使用mysqldump快了不止一个级别
    # innobackupex  --apply-log /mnt/2017-02-14_11-16-36/ #执行整理,也就一分钟
    # mkdir /mnt/mysql #新的mysql目录
    # chown  mysql.mysql /mnt/mysql/ #更改权限为mysql
    # vim /etc/my.cnf #将数据目录更改为新的目录
        datadir=/mnt/mysql #innobackupex读取my.cfg文件数据复制到新目录
    # innobackupex  --copy-back /mnt/2017-02-14_11-16-36 #执行copy还原,
    # umount /mnt/
    # umount /data/
    # mount /dev/sdc1  /data/  #将新的mysql数据磁盘挂载到/data作为以后的mysql数据目录
    # vim /etc/my.cnf #更改为/data,我喜欢将mysql数据目录配置在这个路径
        datadir=/data/mysql
    # chown  mysql.mysql /data/ -R
    # /etc/init.d/mysqld  start
    # /etc/init.d/zabbix_server  start
    # /etc/init.d/zabbix_agentd   start

    1.3:挂载后的新磁盘使用情况:

    1.4:验证旧数据以及新数据均可以写入到新的mysql数据路径并被zabbix读取:

    1.5:配置磁盘开机自动挂载:

    # blkid  /dev/sdc1 
        /dev/sdc1: UUID="7ec48cc7-7cb6-4f6b-83da-c8a831159c14" TYPE="xfs
    # vim /etc/fstab
        UUID=7ec48cc7-7cb6-4f6b-83da-c8a831159c14 /data                   xfs     defaults        0 0

    #完!

  • 相关阅读:
    学PHP应注意的问题与知识点
    php 的生命周期
    Pyhton中汉字的使用方法(转)
    院外培训:GIS数据处理与建模高级培训班学习心得体会 来自
    绕人的python汉字问题
    arcmap导出或者打印时插入的图片和对象绘制失败
    【百度地图API】如何获取行政区域的边界? (转)
    VS2010不能编译.Net3.5项目的解决方法(转)
    ArcGIS中Python汉字使用说明(转)
    ArcGIS10联网无法启动问题解决
  • 原文地址:https://www.cnblogs.com/dengbingbing/p/10302021.html
Copyright © 2011-2022 走看看