zoukankan      html  css  js  c++  java
  • mysql本地异地备份

    1.所有数据库一起备份

    数据库地址: 192.168.1.50

    异地服务器地址: 192.168.1.202


    192.168.1.50操作:

    生成ssh秘钥对

    ssh-keygen


    在192.168.1.202操作,确保192.168.1.50可以免密登录1.202

    scp root@192.168.1.50:/root/.ssh/id_rsa.pub /root/.ssh/

    cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

    rm -rf /root/.ssh/id_rsa.pub


    192.168.1.50操作:

    确保免密连接没问题

    ssh 192.168.1.202

    exit

    2.备份脚本

    mkdir -p /bak/mysqlbak

    cd /bak/mysqlbak

    vim bakmysql.sh

    #!/bin/bash
    #name:bakmysql.sh
    #This is a mysql backup
    #本地存放备份数据库目录
    backupdir=/bak/mysqlbak
    #如果文件夹不存在,创建文件夹
    if [ ! -d $backupdir ]; then
       mkdir $backupdir
    fi
    #定义时间
    time=` date +%Y%m%d%H `
    #备份所有数据库到本地
    /usr/local/mysql/bin/mysqldump  -uroot -pGZml136 --opt --all-databases  > $backupdir/$time-all.sql

    #备份单个数据库

    #mysqldump  -uroot –pGZml136  --databases auth  > $backupdir/$time-auth.sql
    #只保留7天前的数据
    find $backupdir -name "name_*.sql" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1
    #把数据备份到异机
    scp -r  $backupdir  root@192.168.1.202:/opt

    chmod +x  bakmysql.sh

    ./bakmysql.sh

    image

    3.登录数据库删除一个测试数据库

    mysql -uroot –p

    mysql> show databases;

    image

    里面是有表有数据的

    image

    删除 atuh 测试数据库

    4.还原数据库

    还原所有库

    mysql –uroot –pGZml136 < /bak/mysqlbak/2021122315-all.sql

    还原单个库

    mysql –uroot –pGZml136 auth  < /bak/mysqlbak/2021122315-auth.sql


    5.定时备份

    vim /etc/crontab

    30 2 * * * root  /bak/mysqlbak/bakmysql.sh

    或者

    crontab  -e

    30 2 * * * /usr/bin/sh /bak/mysqlbak/bakmysql.sh > /dev/null 2>&1

  • 相关阅读:
    易错点集合
    [NOIP2014][题解]飞扬的小鸟
    [题解]P2014 选课-树型依赖的背包
    [题解]「一本通 1.3 练习 1」埃及分数
    【NOIP2015】斗地主 题解
    NOIP2015子串题解
    单人纸牌_NOI导刊2011提高(04) [题解]
    「一本通 1.3 例 5」weight 题解(玄学搜索对象)
    NOIP2017 跳房子题解
    P1850 换教室 题解
  • 原文地址:https://www.cnblogs.com/pengrj/p/15722540.html
Copyright © 2011-2022 走看看