数据库学习案例20240324--mysql数据库备份脚本部署

1 mysq备份脚本

在mysql数据库部署完成后,需要增加对数据库的逻辑备份策略,保障数据库安全。

---添加存储过程,触发器以及事件的备份内容

#!/bin/bash  

# 获取当前时间并格式化,用于备份文件夹命名  
DATE=$(date +%F%H%M%S)  
  
# 数据库连接信息  
HOST=localhost  
USER=root  
PASS=123  
  
# 备份文件存储基础目录  
BACKUP_DIR=/data/db_backup  
  
# 获取所有需要备份的数据库列表(排除系统数据库)  
DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null | egrep -v "Database|information_schema|mysql|performance_schema")  
  
# 遍历数据库列表进行备份  
for DB in $DB_LIST; do  
    # 为每个数据库创建一个备份文件夹  
    BACKUP_DB_DIR=$BACKUP_DIR/${DB}_${DATE}  
    [ ! -d $BACKUP_DB_DIR ] && mkdir -p $BACKUP_DB_DIR &>/dev/null 
    # 获取当前数据库中的所有表  
    TABLE_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "use $DB; show tables;" 2>/dev/null)  
      
    # 遍历表列表进行备份  
    for TABLE in $TABLE_LIST; do  
        # 拼接备份文件名  
        BACKUP_NAME=$BACKUP_DB_DIR/${TABLE}.sql  
          
        # 使用mysqldump命令备份单个表  
        if ! mysqldump -h$HOST -u$USER -p$PASS $DB $TABLE > $BACKUP_NAME 2>/dev/null; then  
            echo "$BACKUP_NAME 备份失败!"  
        fi  
    done 
    #备份数据库下面所有的存储过程以及触发器
    if ! mysqldump -h$HOST -u$USER -p$PASS $DB --no-create-info --no-data --routines --events --compact --set-gtid-purged=off  >$BACKUP_DB_DIR/pro_trigger_event_${DB}.sql 2>/dev/null; then
            echo "$BACKUP_NAME 备份失败!"
        fi 
done

mysql -uroot -p123 -d orcl  -v  (-f)<123.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值