docker环境下数据库的备份(postgresql, mysql) 实例代码

posgresql 备份/恢复

1.备份

DATE=`date +%Y%m%d-%H%M`
BACK_DATA=xxapp-data-${DATE}.out # 这里设置备份文件的名字, 加入日期是为了防止重复
docker exec pg-db pg_dumpall -U postgres > ${BACK_DATA} # pg-db 是数据库的 docker 名称

2.恢复

docker cp ${BACK_DATA} pg-db:/tmp
docker exec pg-db psql -U postgres -f /tmp/${BACK_DATA} postgres

mysql 备份/恢复

1.备份

DATE=`date +%Y%m%d-%H%M`
BACK_DATA=xxapp-data-${DATE}.sql
# mysql-db 是数据库的 docker 名称, xxxpwd 是 root 用户密码, app-db 是要备份的数据名称
docker exec mysql-db mysqldump -uroot -pxxxpwd --databases app-db > ${BACK_DATA}

2.恢复 下面的 ${BACK_DATA} 要替换成实际生成的文件名称

docker cp ${BACK_DATA} mysql-db:/tmp
docker exec -it mysql-db mysql -uroot -pxxxpwd
mysql> source /tmp/${BACK_DATA}.sql
mysql> \q
Bye

补充

postgresql 是备份所有数据库的, mysql 是备份某一个数据库.

总结

以上所述是小编给大家介绍的docker环境下数据库的备份(postgresql, mysql) ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • docker备份linux系统的命令详解

    tar备份系统 sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/backup.tgz / 更多linux备份方法参考https://www.jb51.net/article/151167.htm 编写dockerflie 新建目录Dockerfile,在Dockerfile目录下编辑Dockerfile脚本,如下内容: FROM scratch COPY rootfs / RUN

  • 详解Docker中容器的备份、恢复和迁移

    今天,我们将学习如何快速地对docker容器进行快捷备份.恢复和迁移.Docker是一个开源平台,用于自动化部署应用,以通过快捷的途径在称之为容器的轻量级软件层下打包.发布和运行这些应用.它使得应用平台独立,因为它扮演了 Linux上一个额外的操作系统级虚拟化的自动化抽象层.它通过其组件cgroups和命名空间利用Linux内核的资源分离特性,达到避免虚拟机开销的目的.它使得用于部署和扩展web应用.数据库和后端服务的大规模构建组件无需依赖于特定的堆栈或供应者. 所谓的容器,就是那些创建自Do

  • Docker安装MySQL8的方法步骤

    一.下载镜像 docker Hub官网URL:https://hub.docker.com/_/mysql/ 下载最新版本:docker pull mysql 下载指定版本:docker pull mysql:verison(8.0.11,8.0,8) 二.启动镜像 复制代码 代码如下: docker run  -d --name mysql -v /data/datadir:/var/lib/mysql -v /etc/mysql/my.cnf:/etc/mysql/my.cnf -p 330

  • Docker容器中Mysql数据的导入/导出详解

    前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的mysql容器内去执行它,并且通过配置volumes让导出的数据文件可以拷贝到宿主机的磁盘上 所以操作步骤就可以分为: 配置docker的volumes 进入docker的mysql容器,导出数据文件 至于数据导入,太过简单,就不说了 先来看看mysqldump命令常见选项: --all-datab

  • 如何利用Docker容器实现代理转发与数据备份详解

    前言 我们将应用以Docker容器的方式部署到服务器上的时候,通常需要考虑两个方面的的问题:网络和存储. 网络方面,有些应用需要占用端口,而其中一部分应用甚至需要对外提供访问. 出于安全方面考虑,代理转发方式相对于直接开放防火墙端口方式更为合适. 存储方面,由于容器内部并不适合做数据持久化,所以一般通过挂载卷的方式将数据保存在服务器磁盘上. 但是服务器也不能保证绝对安全,所以数据也需要备份到云上. 代理转发 默认情况下容器之间的网络是互相隔离的,但是对于一些有关联的应用而言(web前端容器和服务

  • docker环境下数据库的备份(postgresql, mysql) 实例代码

    posgresql 备份/恢复 1.备份 DATE=`date +%Y%m%d-%H%M` BACK_DATA=xxapp-data-${DATE}.out # 这里设置备份文件的名字, 加入日期是为了防止重复 docker exec pg-db pg_dumpall -U postgres > ${BACK_DATA} # pg-db 是数据库的 docker 名称 2.恢复 docker cp ${BACK_DATA} pg-db:/tmp docker exec pg-db psql -U

  • Docker环境下升级PostgreSQL的步骤方法详解

    前段时间接到了要升级数据库的需求,在公司大佬的指导下搞定了升级的方案,在此记录一下. 查阅PostgreSQL 官方文档 可以得知,官方提供了两种方式对数据库进行升级--pg_dumpall与pg_upgrade. pg_dumpall是将数据库转储成一个脚本文件,然后在新版数据库中可以直接导入.这种方式操作简单,跟着官方文档就能轻松操作,但是明显只适用于数据量较少的情况,在我的测试环境里,导入一个2g的数据库用了将近10分钟. 所以我这里选用的是 pg_upgrade,这种方式是直接将数据文件

  • 在python3环境下的Django中使用MySQL数据库的实例

    我们在使用Django过程中,数据库往往是离不开的,比较长常用的是MySQL数据库,但在使用过程中,对Python不同的版本对用的库也不一样,用惯了Python2的人在使用Python3时经常会遇到下面的错误: Error loading MySQLdb module: No module named 'MySQLdb'. 这是因为Python3 MySQL的支持库为pymysql所致,所以我们要下载pymysql数据库. 并且在站点文件夹下的__init__.py(project同名目录下,而

  • 详解在Windows环境下访问linux虚拟机中MySQL数据库

    Linux虚拟机:VMware +ubuntu16.04.4 windows本机:Navicat for MySQL 1.虚拟机中下载安装MySQL VMware下载安装和ubuntu16.04.4下载安装,请自行百度查询,本文默认这些已经安装好了. 在虚拟机中Ctrl+Alt+T打开一个终端,输入命令 sudo apt-get install mysql-server mysql-client ,然后按照提示输入. 等待安装完成,可以输入命令:whereis mysql 查看mysql的安装位

  • window环境下使用VScode连接虚拟机MySQL方法

    一.虚拟机端 1.找到mysql的配置文件 :sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 按"i"键进入编辑模式,找到以下项,将地址修改为"0.0.0.0" 重新启动mysql服务 :sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 2.连接MySQL :mysql -uroot -hlocalhost -p 输入代码回车,提示输入数据库密码 3.对用户进行授权 >>gra

  • docker环境下安装jenkins容器的详细教程

    推荐docker学习资料:https://www.runoob.com/docker/docker-tutorial.html 一.Centos7环境 docker安装 先到官网下载镜像,docker镜像官方:https://hub.docker.com/ 1.最新版安装 yum install -y yum-utils device-mapper-persistent-data lvm2 2.加入docker源 yum-config-manager --add-repo https://mir

  • docker环境下分布式运行jmeter的教程详解

    1.构建jmeter的基础镜像 dockerfile文件如下: # Use Java 8 slim JRE FROM openjdk:8-jre-slim MAINTAINER QJP # JMeter version ARG JMETER_VERSION=5.1.1 # Install few utilities RUN apt-get clean && \ apt-get update && \ apt-get -qy install \ wget \ telnet \

  • Docker环境下Spring Boot应用内存飙升分析与解决场景分析

    目录 Spring Boot应用内存飙升 服务现状 JVM默认内存设置 优化 限制JVM内存 参数解释 JVM常见参数 java.security.egd 作用 优化后的Dockerfile文件 优化后的效果 JVM参数设置是否生效 基础镜像优化 OpenJ9 GraalVM Fabric8 优化后的Dockerfile文件 优化后的效果 备注 Xmx < limit 支持springboot多环境和jvm动态配置的Dockerfile 参考 Spring Boot应用内存飙升 一个简单的Spr

  • java实现连接mysql数据库单元测试查询数据的实例代码

    1.按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model .db.dao.test; 具体的架构详见下图: 2.根据搭建的项目架构新建数据库test和数据库表t_userinfo并且添加对应的测试数据; (这里我使用的是绿色版的数据库,具体的下载地址:http://pan.baidu.com/s/1mg88YAc) 具体的建立数据库操作详见下图: 3.编写包中的各种类代码,具体参考代码如下: UserInfo.java /** * FileName: UserInfo.jav

  • django 将自带的数据库sqlite3改成mysql实例

    在settings.py中将默认内容覆盖成 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'wechat', 'USER':'root', 'PASSWORD':'123456', 'HOST':'127.0.0.1', 'PORT':'3306', } } 然后 msql -u root -p 输入密码 create database wechat default charset=utf8; 补

随机推荐