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

Docker 下MySQL数据库的备份和恢复的操作方法

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

Docker 下MySQL数据库的备份和恢复的操作方法

docker

最近迷恋使用doker容器,在docker容器进行部署MySQL,以前针对容器的安全性一直存在怀疑的态度,不过如果能够通过容器也能数据库备份问题,就这样开始docker容器备份

备份和恢复:

第一种方式

#全部备份
[root@localhost home]# docker  exec  c_mysql sh -c 'exec mysqldump --all-databases -uroot -p123456 --all-databases' > /home/movice202302.sql
#备份数据转移
[root@localhost home]# docker cp /home/movice202302.sql salve-mysql:/var # salve-mysql 是容器 
#全部恢复
root@6faa12ee2d96:/# mysql -uroot -p123456 < /var/movice202302.sql

#查看恢复数据库情况:
mysql -uroot -p123456 -e 'drop database SCHOOL;'
mysql -uroot -p123456-e 'SHOW DATABASES;'

恢复:

导出数据库的表结构和表数据
mysqldump -uroot -pdbpasswd db_name >db.sql;

[root@localhost home]# docker exec c_mysql sh -c 'exec mysqldump  -uroot -p123456 movice_fuli' > /home/movie0216.sql
Warning: Using a password on the command line interface can be insecure.
导出数据库表数据
mysqldump -uroot -pdbpasswd -t db_name >db.sql;

root@localhost home]# docker exec c_mysql sh -c 'exec mysqldump  -uroot -p123456 -t movice_fuli' > /home/movie.sql

导出数据库表结构
mysqldump -uroot -pdbpasswd -d db_name >db.sql;
root@localhost home]# docker exec c_mysql sh -c 'exec mysqldump  -uroot -p123456 -d movice_fuli' > /home/movie.sql
导出数据库中某个表的表结构
mysqldump -uroot -pdbpasswd -d db_name table_name >db.sql
root@localhost home]# docker exec c_mysql sh -c 'exec mysqldump  -uroot -p123456 -d movice_fuli user' > /home/movie.sql
导出数据库中某个表的表结构和表数据
mysqldump -uroot -pdbpasswd db_name table_name >db.sql;

root@localhost home]# docker exec c_mysql sh -c 'exec mysqldump  -uroot -p123456  movice_fuli user' > /home/movie.sql

自动化备份mysql

1 创建目录/usr/data用于存放mysql的数据存放

root@localhost ~]# cd /usr
[root@localhost usr]# ls
bin  etc  games  include  lib  lib64  libexec  local  sbin  share  class="lazy" data-src  tmp
[root@localhost usr]# mkdir data
[root@localhost usr]# ls
bin  data  etc  games  include  lib  lib64  libexec  local  sbin  share  class="lazy" data-src  tmp
[root@localhost usr]# cd data
[root@localhost data]# ls 
[root@localhost data]# touch back_clean.sh 
[root@localhost data]# touch backup .sh
[root@localhost data]# mkdir logs
[root@localhost data]# mkdir mysql_bak
[root@localhost data]# ls
back_clean.sh  backup  logs  mysql_bak
[root@localhost data]# rm backup
rm:是否删除普通空文件 "backup"?y
[root@localhost data]# touch backup.sh
[root@localhost data]# ls
back_clean.sh  backup.sh  logs  mysql_bak

2 编辑 备份脚本和清除大于给定期限的备份数据backup.sh,back_clearn.sh

vi backup.sh

BACKUP_ROOT=/usr/data/
BACKUP_FILEDIR=$BACKUP_ROOT/mysql_bak
#当前日期
DATE=$(date +%Y%m%d)
# 获取容器
mysqlid=docker ps  -aqf "name=c_mysql"
#查询所有数据库
DATABASES=$(docker exec -i ${mysqlid}  mysql  -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql")
#循环数据库进行备份
for db in $DATABASES
do
echo
if [[ "${db}" =~ "+" ]] || [[ "${db}" =~ "|" ]];then
echo "jump over ${db}"
else
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN----------
docker exec -i ${mysqlid}  mysqldump -uroot -p123456 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz
echo ${db}
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE----------
echo
fi
done

echo "备份完成"
vi back_clear.sh
echo ----------CLEAN BEGIN----------
find /usr/data/mysql_bak/ -mtime +7 -name "*.gz" -exec rm -rf {} \;
echo ----------CLEAN COMPLETE---------

设置定时任务

利用linux crontab 进行设置定时任务

查看定时任务

crotab -l

修改定时任务

crontab -e

#每天02:00自动清理大于7天的mysql备份
00 2 * * * /usr/data/backup_clean.sh > /usr/data/logs/backup_full_clean.log 2>&1

#每天11:00自动备份mysql
00 11 * * * /usr/data/backup.sh > /usr/data/logs/backup.log 2>&1

到此这篇关于Docker 下MySQL数据库的备份和恢复的文章就介绍到这了,更多相关MySQL数据库的备份和恢复内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

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

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

Docker 下MySQL数据库的备份和恢复的操作方法

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

下载Word文档

猜你喜欢

Docker 下MySQL数据库的备份和恢复的操作方法

这篇文章主要介绍了Docker 下MySQL数据库的备份和恢复操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-02-17

Docker 下MySQL数据库的备份和恢复的操作方法

目录docker备份和恢复:恢复:自动化备份mysql设置定时任务docker最近迷恋使用doker容器,在docker容器进行部署MySQL,以前针对容器的安全性一直存在怀疑的态度,不过如果能够通过容器也能数据库备份问题,就这样开始do
2023-02-17

mysql数据库备份和恢复的方法是什么

MySQL数据库备份和恢复的方法有以下几种:使用mysqldump命令行工具备份和恢复数据库:使用mysqldump命令可以将整个数据库或者特定的表导出为SQL语句文件,然后使用mysql命令将SQL文件导入到数据库中进行恢复。备份数据库:
mysql数据库备份和恢复的方法是什么
2024-04-09

Python中如何对MySQL数据库进行备份和恢复操作?(通过Python如何实现MySQL数据库的备份与恢复?)

本文介绍了如何使用PythonMySQLdb库对MySQL数据库进行备份和恢复。备份涉及导出数据库到文件,而恢复涉及从文件导入数据库。自动化过程可以使用调度器(如cron)来安排定期备份和恢复。本文提供了详细的步骤和代码示例,使读者能够轻松地实施这些操作,确保数据的安全性和完整性。
Python中如何对MySQL数据库进行备份和恢复操作?(通过Python如何实现MySQL数据库的备份与恢复?)
2024-04-02

sql数据库备份和恢复的方法有哪些

SQL数据库备份和恢复的方法有以下几种:1. 物理备份:将数据库的物理文件进行备份,包括数据文件、日志文件等。这种备份方式通常是通过文件复制或镜像技术进行的,恢复时直接将备份文件复制回原始位置即可。2. 逻辑备份:将数据库中的数据逻辑地导出
2023-09-05

oracle数据库备份和恢复的方法是什么

Oracle数据库备份和恢复的方法主要有以下几种:使用Oracle RMAN(Recovery Manager)进行备份和恢复。RMAN是Oracle数据库提供的备份和恢复工具,可以通过RMAN命令行或图形界面进行备份和恢复操作,包括完全备
oracle数据库备份和恢复的方法是什么
2024-04-09

sql数据库备份和恢复数据的方法有哪些

SQL数据库备份和恢复数据的方法有以下几种:1. 使用数据库管理工具:大多数数据库管理工具提供了备份和恢复数据库的功能,用户可以通过这些工具来进行数据的备份和恢复操作。例如,MySQL提供了mysqldump和mysql命令来备份和恢复数据
2023-09-09

Aurora数据库中怎么进行备份和恢复操作

Aurora数据库是一种云数据库服务,它是兼容MySQL和PostgreSQL的关系型数据库。备份和恢复操作对于数据库的安全性和可靠性非常重要。以下是在Aurora数据库中进行备份和恢复操作的步骤:备份操作:登录到账号,并选择Aurora
Aurora数据库中怎么进行备份和恢复操作
2024-04-09

掌握数据库操作:索引、视图、备份和恢复

介绍在本实验中,我们将学习和练习索引、视图、备份和恢复。这些概念对于数据库管理员来说非常重要。学习目标创建索引创建视图备份与恢复准备开始之前,我们需要准备好环境。启动mysql服务并以root身份登录。cd ~/projectsudo
掌握数据库操作:索引、视图、备份和恢复
2024-08-17

ecshop数据库备份和数据库恢复的步骤

1、数据库备份 如图 1 所示:(1)备份类型: 有四种备份类型: 全部备份: 就是备份ECShop所有的表。一般选择这个方式,这个方式可以在灾难恢复的时候快速恢复。 标准备份www.cppcns.com:备份一些常用的表。 最小备份: 备
2022-06-12

编程热搜

目录