首页 > 数据库 >mysql容器的定时备份脚本,有二种方法

mysql容器的定时备份脚本,有二种方法

时间:2024-05-16 21:51:59浏览次数:12  
标签:tar -- 备份 二种 echo mysql 备份文件 BACKUP DIR

mysqldump

[root@localhost node]# cat /root/mysqlbeifen.sh
#!/bin/bash

# 定义参数
CONTAINER_NAME="mysql"
HOST_BACKUP_DIR="/bak"
REMOTE_MACHINE_IP="192.168.0.29"
REMOTE_TARGET_DIR="/bak/cd"
MYSQL_USER="root"
MYSQL_PASSWORD="pass123"

# 获取MySQL容器的ID
CONTAINER_ID=$(docker ps -f "name=$CONTAINER_NAME" -q)

if [ -z "$CONTAINER_ID" ]; then
    echo "MySQL容器不存在,请确保MySQL容器正在运行."
    exit 1
fi

# 创建备份文件名
BACKUP_FILE="mysql_$(date +%Y%m%d_%H%M%S).sql"

# 备份MySQL数据库到主机
docker exec $CONTAINER_ID mysqldump --max_allowed_packet=512M -u $MYSQL_USER -p$MYSQL_PASSWORD --all-databases > $HOST_BACKUP_DIR/$BACKUP_FILE

if [ $? -eq 0 ]; then
    echo "MySQL数据库已成功备份到主机."
else
    echo "备份过程中发生错误,请检查日志."
    exit 1
fi

# 压缩备份文件为tar.gz格式
tar -czvf $HOST_BACKUP_DIR/$BACKUP_FILE.tar.gz -C $HOST_BACKUP_DIR $BACKUP_FILE 

if [ $? -eq 0 ]; then
    echo "备份文件已成功压缩为tar.gz格式."
else
    echo "压缩过程中发生错误,请检查日志."
    exit 1
fi

# 远程拷贝到其他机器
scp $HOST_BACKUP_DIR/$BACKUP_FILE.tar.gz $REMOTE_MACHINE_IP:$REMOTE_TARGET_DIR/ 

if [ $? -eq 0 ]; then
    echo "备份文件已成功远程拷贝到其他机器."
else
    echo "远程拷贝过程中发生错误,请检查网络连接和远程机器的权限."
    exit 1
fi

# 删除本机的备份文件
rm -rf $HOST_BACKUP_DIR/$BACKUP_FILE $HOST_BACKUP_DIR/$BACKUP_FILE.tar.gz

if [ $? -eq 0 ]; then
    echo "本机上的备份文件已成功删除."
else
    echo "删除本机备份文件过程中发生错误,请检查权限."
    exit 1
fi

 

 

mysql备份工具innobackupex 

#!/bin/bash
innobackupex --defaults-file=/docker/mysql/conf/my.cnf --host=127.0.0.1 --port=3306 --user=root --password='111111' --datadir=/docker/mysql/data/  --stream=tar ./ | gzip  | ssh [email protected] \ "cat - > /bak/zhi/`date +%Y-%m-%d`.tar.gz"

 

标签:tar,--,备份,二种,echo,mysql,备份文件,BACKUP,DIR
From: https://www.cnblogs.com/aldary/p/18196823

相关文章

  • DBA(Database Administrator)数据库运维-mysql
    一、开篇1、版本选择1、企业版2、社区版MySQL社区版则是由分散在世界各地的MySQL开发者、爱好者以及用户参与开发与测试的,包括软件代码的管理、测试工作,也是他们在负责。社区也会设立BUG汇报机制,收集用户在使用过程中遇到的BUG情况,相比于企业版,社区版的开发及测试环境没有那么......
  • mysql在select ······ for update 在什么情况下加什么锁
    准备环境:select@@version;select@@autocommit;set@@autocommit=0;CREATETABLE`user_info_tab`(`id`intNOTNULLAUTO_INCREMENT,1.1.`user_name`varchar(255)DEFAULTNULL,......
  • MySql5.6 关于视图访问权限问题记录
    问题描述使用zstack或root账号访问视图view3出现[root@172-26-52-170mariadb]#mysql-uzstack-pzstack.passwordzstack-e"select*fromview3"ERROR1045(28000)atline1:Accessdeniedforuser'zstack'@'localhost'(usingpassword:YES)......
  • DataX将MySql数据库数据同步到Oracle数据库
    1.下载DataX并解压(本地环境安装有python)DataX/userGuid.mdatmaster·alibaba/DataX(github.com) job文件夹下存放数据同步的json脚本{"job":{"setting":{"speed":{"channel":1}......
  • 10分钟搞定Mysql主从部署配置
    流程Master数据库安装Slave数据库安装配置Master数据库配置Slave数据库网络信息Master数据库IP:192.168.198.133Slave数据库IP:192.168.198.132配置Master数据库在Master数据库安装完毕后,修改/etc/my.cnf[mysqld]server-id=1\\指定ID,主从的两台虚拟机ID必须不同log......
  • lightdb mysql 8.0兼容之不可见主键
    数据库设计通常需要满足一定的范式要求,其中主键更是最基本的要求。不过,数据库管理系统却允许我们创建没有主键的表。这样的表在数据库中会带来查询性能低下、复制延迟甚至无法实现高可用配置等问题。为此,lightdb在22.1版本引入了一个新的功能,叫做不可见主键(GeneratedInv......
  • mysql存储过程中如何使用游标中的值进行查询
    在MySQL中,游标(Cursor)是一种用于从结果集中逐行访问数据的数据库对象。在存储过程(StoredProcedure)中,你可以使用游标遍历查询结果,并对每一行数据进行处理。下面是一个简单的示例,说明如何在MySQL存储过程中使用游标中的值进行查询:创建示例表首先,我们创建一个简单的示例表,用于演......
  • ElasticSearch系列---【备份或重命名索引】
    备份或重命名1.问题描述我们原有的索引main-data-202403,字段不足,需要新加入字段,原有索引不用了,但怕后面业务又需要这些数,所以我们需要新建一个索引bak-main-data-202403,把main-data-202403迁移过去,删除原索引main-data-202403,再新建加入了新字段的同名索引main-data-202403,其......
  • mysql命令行增删改查
    新增数据库shop:createdatabaseshop;查看数据库:showdatabases;查看创建数据库的命令:showcreatedatabaseshop;进入数据库: useshop;查看数据表: showtables;创建数据表name:   createtablename(idint,bsvarchar(50));进入数据表:descname可以查看创建表的命......
  • 聊聊MySQL是如何处理排序的
    本文分享自华为云社区《MySQL怎样处理排序⭐️如何优化需要排序的查询?》,作者:菜菜的后端私房菜。前言在MySQL的查询中常常会用到 orderby 和 groupby 这两个关键字它们的相同点是都会对字段进行排序,那查询语句中的排序是如何实现的呢?当使用的查询语句需要进行排序时有两种......