我的编程空间,编程开发者的网络收藏夹
学习永远不晚

线上mysql数据库备份

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

线上mysql数据库备份

#!/bin/bash
#=============================================================================
# FileName: MySQLBackup.sh
# Desc: MySQL Databases backup tool.
# Author: chenzm
# Email:969113439@qq.com
# HomePage: http://chenzm0592.blog.51cto.com/
# Version: 0.0.1
# LastChange: 2013-11-15 09:16:39
# History:
#=============================================================================

cd /opt/MySQLBackup
. /etc/profile

USERNAME='root'
PASSWORD='password'

U_ID=0
G_ID=

# 设置mysqldump参数
MYSQLDUMP="mysqldump --opt --default-character-set=utf8 --skip-lock-tables -C"

# 设置压缩参数 从stdin读取
COMPRESS="gzip -9"

# 设置压缩文件的后缀名, 请与压缩参数相对应
COMPRESS_EXT="gz"

DATE=$(date +%Y-%m-%d)
mkdir -p logs/

# 定义日志输入
function log() {
    #echo -ne ${1}
    echo -ne ${1} >>logs/backup-${DATE}.log
}

# 计算字符时,分, 秒
function charDate() {
    DATE=$1
    if [ ${DATE} -lt 60  ]; then
        echo "${DATE}秒"
    elif [ ${DATE} -ge 60 ] && [ ${DATE} -lt 3600 ]; then
        echo "$((DATE/60))分$((DATE%60))秒"
    else
        M=$((DATE%3600))
        echo "$((DATE/3600))小时$((M/60))分$((M%60))秒"
    fi
}

TIME_HOST_START=$(date +%s)
retry=0
while :
do
    data=$(mysql -u${USERNAME} -p${PASSWORD} -h IP -e 'SHOW DATABASES' 2>&1)
    if [ $? == 0 ]; then
        break
    elif [ ${retry} -ge 5 ]; then
        log "连接到数据库失败...退出.\n"
        exit 1
    fi
    ((retry++))
done

DBS=$(echo ${data} | awk 'BEGIN{split("test|information_schema",arr,"|"); for (i in arr) b[arr[i]]} END{for(i=2;i<=NF;i++) if($i in b==0) print $i}')
DB_TOTAL=$(echo ${DBS} | awk '{print NF}')

log "总计数据库数量: ${DB_TOTAL}\n"
log "正在备份,请稍后....\n"

mkdir -p /databak/IP/db/${DATE}
for DB in ${DBS}
do
    TIME_DB_START=$(date +%s)
    log "正在导出: ${DB}..."
    ${MYSQLDUMP} -u${USERNAME} -p${PASSWORD} -h IP ${DB} 2>>logs/error.log | ${COMPRESS} > /databak/IP/db/${DATE}/${DB}.sql.${COMPRESS_EXT}

    # 使用$PIPESTATUS获取管道之前的exit status
    if [ ${PIPESTATUS[0]} != 0  ]; then
        log "失败"
    else
        ((OK++))
        log "成功"
    fi
    TIME_DB_END=$(date +%s)
    ELAPSED=$((TIME_DB_END - TIME_DB_START))
    log " - 耗时: $(charDate ${ELAPSED})\n"
done
#chown -R ${U_ID}:${G_ID} /db/ip/${DATE}

TIME_HOST_END=$(date +%s)
ELAPSED=$((TIME_HOST_END - TIME_HOST_START))
log "总计: ${DB_TOTAL} 成功: ${OK} 失败: $((DB_TOTAL-OK)) - 耗时: $(charDate ${ELAPSED})\n"
log "$(printf '%30s\n' | tr ' ' -) $(date "+%Y-%m-%d %H:%M:%S") $(printf '%30s\n' | tr ' ' -)\n"
                                                                                           

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

线上mysql数据库备份

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL 备份数据库

原文:https://www.cnblogs.com/better-farther-world2099/articles/10276087.htmlMySQL 备份数据库原文地址:https://www.cnblogs.com/guxingy/p/134341
MySQL 备份数据库
2021-07-21

shell 备份数据库、代码上线的脚本

Shell 脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
2022-06-04

python备份mysql数据库

原本可以用shell完成的功能,现在学习python,就照抄照改。完成数据库备份。 #!/usr/bin/python#-*-coding:utf-8-*-#MYSQL BACKimport string,time,os,datetimei
2023-01-31

mysql数据库怎么备份数据库

mysql 数据库备份有两种方式:物理备份(复制文件)和逻辑备份(导出 sql 语句)。物理备份可以通过 mysqldump 或 innobackupex 工具实现,而逻辑备份可以使用 mysqldump 或第三方工具。恢复备份可通过复制或
mysql数据库怎么备份数据库
2024-08-13

《MySQL数据库》MySQL备份恢复

前言MySQL数据库最重要的部分就是数据,所以保证数据不被损坏尤为重要,大家都知道911事件,当时非常多的数据丢失,导致经济混乱。接下来我们就来讲讲MySQL是如何保障数据完整,应对特殊情况,如何恢复等。备份备份检查:保证备份没有问题,并且定期演练恢复数据。备
《MySQL数据库》MySQL备份恢复
2016-12-27

MySQL数据库备份策略

MySQL数据库备份策略是确保数据安全性和业务连续性的关键。以下是一些常见的备份策略及其优缺点:备份类型完全备份:备份整个数据库,恢复时简单快捷,但备份耗时较长,占用空间大。增量备份:在上次备份基础上,只备份变化的数据,备份速度快,恢复
MySQL数据库备份策略
2024-10-20

mysql数据库怎么备份数据

有多种方法可以备份MySQL数据库中的数据,以下是其中一种简单的方法:使用命令行工具进行备份:在命令行中输入以下命令,使用“mysqldump”工具来备份数据库:mysqldump -u username -p dbname > back
mysql数据库怎么备份数据
2024-05-21

MySQL 数据库自动备份

MySQL 数据库自动备份MySQL 数据库自动备份MySQL 备份命令mysqldump 介绍数据备份数据恢复gzip 介绍MySQL 备份脚本Linux 定时任务-crontabMySQL 备份命令手抖、写错条件、写错表名、错连生产库造成的误删库表和数据总
MySQL 数据库自动备份
2021-04-06

编程热搜

目录