Docker环境下数据库的备份操作
1. MySQL备份:使用Docker容器执行mysqldump命令,将指定数据库的备份导出为SQL文件。2. MySQL备份压缩:使用gzip命令将备份文件压缩为tar.gz格式,以减小文件大小并提高传输效率。3. 自动清理超过7天的备份:通过find命令查找7天前生成的.gz文件,并删除这些文件。4. 在单个命令中导出和导入MySQL数据库:使用mysqldump命令直接从源数据库导出转储文件,然后使用mysql命令将其导入到目标数据库。5. 从完整的MySQL转储还原单个MySQL数据库:如果备份包含了所有数据库,可以使用--one-database选项从包含多个数据库的备份文件中还原单个数据库。6. 恢复数据库:使用docker exec命令执行mysql命令,从指定的SQL文件中恢复数据库。

MYSQL 备份

docker exec mysql sh -c 'exec mysqldump -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" --databases DATABASE_1 DATABASE_2' > /data/backup_database/backup_database_`date +%F`.sql

MYSQL 备份并压缩

docker exec mysql sh -c 'exec mysqldump -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" --databases DATABASE_1 DATABASE_2' |gzip > /data/backup_database/backup_database_`date +%F`.tar.gz

Mysql备份压缩,不影响业务运行,自动清理超过7天的备份


docker exec mysql sh -c 'exec mysqldump -u$"MYSQL_USERNAME" -p"$MYSQL_PASSWORD" --single-transaction --routines --triggers --flush-logs --databases DATABASE_1 DATABASE_2' |gzip > /data/backup_database/backup_database_`date +%F`.tar.gz && find /data/backup_database/ -name "*.gz" -mtime +7 -exec rm -f {} \;

在一个命令中导出和导入MySQL数据库

您可以使用以下单行代码,而不是从一个数据库创建转储文件,然后将备份导入另一个MySQL数据库:

  mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

从完整的 MySQL 转储还原单个 MySQL 数据库

如果使用--all-databases选项备份了所有数据库,并且要从包含多个数据库的备份文件中还原单个数据库,请使用如下所示的选项:--one-database

  mysql --one-database database_name < all_databases.sql

恢复数据库

docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql
咻兔哔
咻兔哔·2022年12月28日

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处

推荐文章

docker-mysql配置内存
运维技术

docker-mysql配置内存

这段代码是用于调整MySQL服务器的性能参数,以提高其运行效率。主要修改了以下几个参数:1. `performance_schema_max_table_instances`:将此参数设置为400,意味着MySQL可以同时打开的最大表实例数。2. `table_definition_cache`:将此参数设置为400,表示MySQL可以缓存的表定义数量。3. `performance_schema`:关闭此选项,以减少对监控MySQL服务器资源消耗和资源使用情况的依赖。4. `table_open_cache`:将此参数设置为64,表示MySQL可以打开的表的数量。5. `innodb_buffer_pool_chunk_size`:将此参数设置为64M,表示InnoDB缓冲池中块的大小。6. `innodb_buffer_pool_size`:将此参数设置为64M,表示InnoDB存储引擎的表数据和索引数据的最大内存缓冲区大小。

7月28日40
日常记录-GITLAB部署以及相关资料
运维技术

日常记录-GITLAB部署以及相关资料

Docker部署GitLab的步骤:1. 使用docker run命令,将GitLab容器设置为detach模式,并设置端口映射。2. 设置容器名称为gitlab,并重启容器,除非停止。3. 将容器挂载到本地路径,包括etc、log和data目录。4. 安装GitLab Ce(容器引擎)。5. 在runner执行过程中,如果遇到文件夹不存在或无权限的问题,可以尝试删除gitlab-runner并重新安装,或者更改用户和启动服务。

1月18日22
Let's Encrypt SSL 泛解析证书申请
运维技术

Let's Encrypt SSL 泛解析证书申请

本文介绍了使用`acme.sh`脚本自动申请泛域名SSL证书的过程。首先,通过API Token来获取必要的信息,然后配置`acme.sh`以自动生成证书。最后,通过命令行工具提交请求并查看证书结果。此外,还提供了一些关于证书续期的提示和链接。

10月26日39
七牛OSS支持HTTPS的方法
运维技术

七牛OSS支持HTTPS的方法

最近网站图片连接出问题,原来是Chrome规则限制了SSL/HTTPS。解决方法是用反向代理,具体步骤如下:1. 备案域名并确保七牛CNAME正常工作。2. 在服务器上新建站点,绑定SSL证书并修改配置文件。3. 配置反向代理规则,将请求转发到指定地址。

10月26日25