iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >线上mysql数据库备份
  • 272
分享到

线上mysql数据库备份

2024-04-02 19:04:59 272人浏览 八月长安
摘要

#!/bin/bash #=============================================================================# FileName: M

#!/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"
                                                                                           

您可能感兴趣的文档:

--结束END--

本文标题: 线上mysql数据库备份

本文链接: https://www.lsjlt.com/news/35767.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • mysql 数据库备份
    目录 数据库备份的方式 一、备份整个 $datadir  二、用mysqldump备份 备份某个库 只备份某个库下某个表 备份某个库,排除库中一些表以外,备份剩余的表 有很多库时候,一次性备份所有的库 一次指定备份某几个库  只备份表结构,...
    99+
    2023-09-09
    数据库
  • python备份mysql数据库
    原本可以用shell完成的功能,现在学习python,就照抄照改。完成数据库备份。 #!/usr/bin/python #-*-coding:utf-8-*- #MYSQL BACK import string,time,os,dateti...
    99+
    2023-01-31
    备份 数据库 python
  • MySQL数据库怎么备份
    小编给大家分享一下MySQL数据库怎么备份,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!导出表数据到一个文本文件的最简单方法是使...
    99+
    2024-04-02
  • 定时备份MySQL数据库
    MySQL 提供了 mysqldump 命令来实现导出数据库,命令用法如下: mysqldump -u root -p[password] [database_name] > [backup].sql...
    99+
    2023-09-28
    数据库 mysql linux
  • 备份MySql数据库方法
    这篇文章主要讲解了“备份MySql数据库方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“备份MySql数据库方法”吧!使用MYSQL进行数据库备份,有很正...
    99+
    2024-04-02
  • 如何备份mysql数据库
    本篇文章为大家展示了如何备份mysql数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如何备份mysql数据库1.进入mysql客户端连接数据库2.选择需要备份...
    99+
    2024-04-02
  • mysql怎么备份数据库
    mysql怎么备份数据库?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。mysql怎么备份数据库1.进入mysql客户端连接数据库2.选择需要备...
    99+
    2024-04-02
  • mysql数据库如何备份
    这篇文章主要介绍mysql数据库如何备份,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、打开开始菜单,下方搜索框中搜索cmd,打开cmd命令行2、输入命令,就可备份数据库格式为:m...
    99+
    2024-04-02
  • mysql——数据库备份——使用mysqldump命令备份所有数据库
    mysqldump命令备份所有数据库; 语法格式:mysqldump -u username -ppassword --all-databases  > backupname.sql --all-databases:这个选项表示后面跟一...
    99+
    2023-10-09
    数据库 mysql java sql mybatis
  • MySQL定时备份数据库(全库备份)的实现
    目录一、MySQL数据备份 1.1、 mysqldump命令备份数据 1.2、 mysqldump常用操作示例 1.3、 还原mysql备份内容 二、 编写脚本维护备份的数据库文件 ...
    99+
    2024-04-02
  • mysql如何备份数据库
    本篇文章为大家展示了mysql如何备份数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。mysql如何备份数据库1.进入mysql客户端连接数据库2.选择需要备份...
    99+
    2024-04-02
  • 怎么备份MySql数据库
    这篇文章将为大家详细讲解有关怎么备份MySql数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。mysqldump工具备份备份整个数据库$>&nbs...
    99+
    2024-04-02
  • MySQL数据库全库备份及增量备份脚本
    脚本网盘链接下载。 1、全库备份脚本如下: #!/bin/bash ############### 定义默认值 ################# user='root' passwd='123.com...
    99+
    2024-04-02
  • MySQL定时全库备份数据库
    目录一、MySQL数据备份1.1、 mysqldump命令备份数据1.2、 mysqldump常用操作示例1.3、 还原mysql备份内容二、 编写脚本维护备份的数据库文件2.1、 ...
    99+
    2024-04-02
  • mysql数据库备份的命令
    这篇文章主要介绍“mysql数据库备份的命令”,在日常操作中,相信很多人在mysql数据库备份的命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql数据库备份的命令”...
    99+
    2024-04-02
  • linux怎么备份mysql数据库
    有多种方法可以备份MySQL数据库,其中一种常见的方法是使用mysqldump命令行工具。以下是使用mysqldump备份MySQL...
    99+
    2024-04-22
    linux mysql
  • mysqlpump - MySQL 数据库备份程序
    mysqlpump 客户端实用程序执行逻辑备份,从而生成一组 SQL 语句,执行这些语句可重现原始数据库对象定义和表数据。它有助于转储一个或多个 MySQL 数据库以进行备份或传输到另一台 SQL 服务器。mysqlpump 的功能让我们了...
    99+
    2023-10-22
  • 怎么样备份MySql数据库
    小编给大家分享一下怎么样备份MySql数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、数据备份捷径 因为这个方法没有得到...
    99+
    2024-04-02
  • MySQL数据库中备份数据的方法
    MySQL数据库中备份数据的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!想进行数据库的备份首先要在命令行窗口进入My...
    99+
    2024-04-02
  • Mysql数据库实现数据定时备份
    为了防止数据丢失,在进行软件交付时通常会要求对数据库进行定期备份。 测试使用mysqldump进行数据库备份。 mysqldump -h 192.168.248.138 -uroot -proot d...
    99+
    2023-09-02
    数据库 mysql sql 定时备份 crontab
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作