首页 > 数据库 >三分钟带你玩转数据库备份

三分钟带你玩转数据库备份

时间:2024-10-17 09:33:21浏览次数:10  
标签:-% 备份 三分钟 webhook 玩转 sql mysql backup

数据库备份

冷备份

rsync  -a    /var/lib/mysql/   10.0.0.2:/data/mysql

热备份(备份单独数据库)

mysqldump  -umysql  -p123456  -B  database   >  /backup/backup-`date +%F-%H-%M-%S`.sql

备份所有数据库(压缩)

mysqldumnp -umysql  -p123456  -A  | gzip   >    /backup/backup.sql

排除系统数据库不备份

for db in `mysql  -uroot -p123456 -e 'show databases' 2> /dev/null |grep -Ewv 'information_schema|performance_schema|Warning'`;do mysqldump -uroot -p123456 -B $db > /backup/$db-`date +%F-%H-%M-%S`.sql 2>/dev/null  ;done

增强版(定时任务)(排除一些系统数据库不备份)

#1、脚本
#!/bin/bash
#backup-mysql
for db in `mysql  -uroot -p123456 -e 'show databases' 2> /dev/null |grep -Ewv 'information_schema|performance_schema|Warning'`;do mysqldump -uroot -p123456 -B $db > /backup/${db}-`date +%F-%H-%M-%S`.sql 2>/dev/null  ;done

#2、定时任务(凌晨两点半备份)
crontab -e
PATH=/apps/nginx/sbin:/usr/local/mysql/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
30 2 * * *  /backup/mysql-backup.sh

还原

mysql  -uroot  -p123456 database_name < backup.sql

企业级MySQL数据库备份

1、定时任务
30 2 * * *  /bin/bash  /data/script/mysql_backup.sh  >/dev/null  2>&1
2、备份脚本
#!/bin/bash
MYSQL_USER="root"
MYSQL_PASSWORD="ABCabcdef100"
MYSQL_DATABASE="bk_db1"
BACKUP_DIR="/data/dbback/"
KEEP_BACKUPS_FOR=2
LAN_IP="172.24.255.100"

source  /data/install/utils.fc
if [ ! -d "$BACKUP_DIR" ]; then 
        mkdir -p "$BACKUP_DIR"
fi
BACKUP_FILENAME="${MYSQL_DATABSE}-$(date +"%F").sql.gz"

mysqldump -u "${MYSQL_USER}" -p"${MYSQL_PASSWORD}" -h "$LAN_IP"  --single-transaction -q --no-autocommit -R --triggers --default-character-set=utf8 --events --databases  "${MYSQL_DATABSE}" | gzip > "${BACKUP_DIR}/${BACKUP_FILENAME}" 

find "${BACKUP_DIR}" -name '*.gz' -mtime +$KEEP_BACKUPS_FOR  -exec rm {} \;

注意:生产环境按照个人环境和需求备份、脚本只供参考

MySQL备份天表的数据

1、因为做了分库分表:每天的表需要单独备份.
2、为什么远程调用webhook ? 因为数据库机器是内网、调不了。
3、数据库机器不保留备份数据、SCP拷贝到远程机器。
#!/bin/bash

# 设置生产和测试环境的 webhook_url
webhook_url_prod="AAA"
webhook_url_test="BBB"

# 选择要使用的 webhook_url
webhook_url=$webhook_url_prod  # 切换到测试环境,如果需要切换到生产环境,修改为 $webhook_url_prod

# 切换到备份目录
cd /ipudb/dbbak/file-xl-port/

# 当前日期到秒
DATE=$(date +'%Y%m%d_%H%M%S')

# 前一天的日期
DATES=$(date -d "-1 days" +'%Y%m%d')

# 记录备份开始时间到日志文件
echo "  cdr_call_item_${DATES}天表   begin backup db 开始时间:`date +'%Y%m%d_%H%M%S'`" >> /ipudb/dbbak/file-xl-port/xl-port_backup.log

# 备份数据库表
mysqldump --socket=/var/run/mysqld/mysqld.sock -uroot -pmysql123456 xl-port cdr_call_item_$DATES --default-character-set=utf8mb4 | gzip > /ipudb/dbbak/file-xl-port/cdr_call_item_$DATES.sql.gz

# 记录备份结束时间到日志文件
echo "  cdr_call_item_${DATES}天表   end   backup db 结束时间:`date +'%Y%m%d_%H%M%S'`" >> /ipudb/dbbak/file-xl-port/xl-port_backup.log

# 检查上一步操作的退出状态
if [ $? != 0 ]; then
    echo "failed" >> backup.log
    # 如果备份失败,发送失败消息到微信
    ssh -p 20000 [email protected] "curl -H 'Content-Type: application/json' -d '{\"msgtype\": \"text\", \"text\": {\"content\": \"cdr_call_item_${DATES}表备份成功\"}}' $webhook_url"
else
    echo "success" >> backup.log
    # 如果备份成功,发送成功消息到微信
    ssh -p 20000 [email protected] "curl -H 'Content-Type: application/json' -d '{\"msgtype\": \"text\", \"text\": {\"content\": \"cdr_call_item_${DATES}表备份成功\"}}' $webhook_url"
    scp -P 20000 cdr_call_item_$DATES.sql.gz  172.16.17.150:/records/data/mysql/prod_bak/   &&   rm   -f   cdr_call_item_$DATES.sql.gz
fi

标签:-%,备份,三分钟,webhook,玩转,sql,mysql,backup
From: https://www.cnblogs.com/guohao996/p/18471407

相关文章

  • MySQL8一键物理备份脚本分享
    一、Xtrabackup介绍xtrabackup是由Percona公司开发的一个用于MySQL数据库物理热备的工具,开源免费,目前官方最新版本是8.0.35,也支持8.0.37版本数据库,本文已经过测试。另外8.1,8.2和8.3也支持。它具有如下优点:(1)备份速度快,物理备份可靠;(2)在备份期间不间断地处理事务;(3)支持备份......
  • 文件同步文件备份软件 Goodsync 序列号
    GoodSync是一种简单和可靠的文件备份和文件同步软件。它会自动分析、同步,并备份您的电子邮件、珍贵的家庭照片、联系人,、MP3歌曲,财务文件和其他重要文件本地-之间的台式机,笔记本电脑,服务器,外部驱动器,以及WindowsMobile设备,以及通过FTP远程,网友的WebDAV等等。该版本已内置序......
  • clickhouse 备份
    此命令是在clickhouse22.7.5版本下执行:官方文档见:https://clickhouse.com/docs/en/operations/backup#command-summary参考文档: https://blog.csdn.net/lusklusklusk/article/details/139781360创建备份目录mkdir/backups/修改权限:chmod766/backups/logsudochown-Rc......
  • Python 数据库备份脚本
    importdatetimeimportosimportsubprocess#数据库备份目录BACKUP_DIR='/path/to/backup'#备份文件保留周期(天)RETENTION_PERIOD=7#备份数据库defbackup_database():current_time=datetime.datetime.now()backup_file=f"backup_{current_time.strf......
  • 122-bt-nginx 配置备份
    userwwwwww;worker_processesauto;error_log/www/wwwlogs/nginx_error.logcrit;pid/www/server/nginx/logs/nginx.pid;worker_rlimit_nofile51200;stream{log_formattcp_format'$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_......
  • excel戴你玩转
    自定义排序条件筛选冻结窗口右下角查看引用单元格CTRL+SHIFT+下(同时选中所有列)调整列宽去重函数=UNIQUE(B2:B883)sumif/sumifs,输入条件要放在“内容”,按住ctrl不用输入<,>=SUMIFS(C:C,A:A,">=2020/8/3",B:B,H2)=sumifs(C:C,A:A,">="&A261,B:B,H2)拖拽变化......
  • Veritas NetBackup 10.5 (Unix, Linux, Windows) - 领先的企业备份解决方案
    VeritasNetBackup10.5(Unix,Linux,Windows)-领先的企业备份解决方案The#1enterprisebackupandrecoverysolution.请访问原文链接:https://sysin.org/blog/veritas-netbackup-10/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org备份和恢复软件解决方案领......
  • 【Oracle DB故障分享】分享一次由于SGA设置太小导致的DP备份失败
    Listitem今天给客户做Oracle例行数据库健康巡检,过程中检出一些备份异常,分享如下。排查问题:打开DP备份软件,随即弹出如下提示:登录DP,查看备份情况:发现从10/6开始,DP备份就没有完全成功,部分文件备份失败:OracleRecoveryBackupCatalog“Oracle8”一直备份失败:查看DP日......
  • MySQL数据备份
    MySQL数据备份是数据库管理员非常重要的工作之一。系统意外崩溃或者硬件的损坏都可能导致数据的丢失,因此MySQL管理员应该定期地备份数据,使得在意外情况发生时最大限度地减少损失。本节将介绍数据备份的3种方法。11.1.1 使用mysqldump命令备份数据mysqldump是MySQL提供的一个非......
  • 好用的文件备份系统,一键安装无人值守、离线、实时、定时、跨端、多备份目标类别,雪里备
    一、引言在当今这个信息如潮水般涌动的时代,数据已成为企业和个人不可或缺的资产。然而,数据丢失的风险无处不在,无论是硬件故障、人为错误还是网络攻击,都可能让宝贵的数据瞬间化为乌有。在这样的背景下,拥有一款好用的文件备份系统显得尤为重要。雪里备份系统,正是为了解决这......