栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何对现有数据使用PostgreSQL容器?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何对现有数据使用PostgreSQL容器?

为了建立irakli的答案,这里有一个更新的解决方案:

  • 使用较新的版本2 Docker Compose文件
  • 单独的
    volumes
    部分
  • 多余的设置已删除

docker-compose.yml

version: '2'services:  postgres9:    image: postgres:9.4    expose:      - 5432    volumes:      - data:/var/lib/postgresql/datavolumes:  data: {}

演示

启动Postgres数据库服务器:

$ docker-compose up

显示数据库中的所有表。在另一个终端中,与容器的Postgres交谈:

$ docker exec -it $(docker-compose ps -q postgres9 ) psql -Upostgres -c 'z'

它不会显示任何内容,因为数据库为空白。创建一个表:

$ docker exec -it $(docker-compose ps -q postgres9 ) psql -Upostgres -c 'create table beer()'

列出新创建的表:

$ docker exec -it $(docker-compose ps -q postgres9 ) psql -Upostgres -c 'z'   Access privileges Schema |   Name    | Type  | Access privileges | Column access privileges --------+-----------+-------+-------------------+-------------------------- public | beer      | table |        |

好极了!现在,我们使用共享存储卷启动了一个Postgres数据库,并在其中存储了一些数据。下一步是检查服务器停止后数据是否仍然存在。

现在,杀死Postgres服务器容器:

$ docker-compose stop

再次启动Postgres容器:

$ docker-compose up

我们希望数据库服务器将重新使用存储,因此我们非常重要的数据仍然存在。校验:

$ docker exec -it $(docker-compose ps -q postgres9 ) psql -Upostgres -c 'z'   Access privileges Schema |   Name    | Type  | Access privileges | Column access privileges --------+-----------+-------+-------------------+--------------------------public | beer      | table |        |

我们已经成功地使用新型Docker Compose文件使用外部数据量运行Postgres数据库,并检查了它是否确保我们的数据安全可靠。

储存资料

首先,进行备份,将我们的数据存储在主机上:

$ docker exec -it $(docker-compose ps -q postgres9 ) pg_dump -Upostgres > backup.sql

修改来宾数据库中的数据:

$ docker exec -it $(docker-compose ps -q postgres9 ) psql -Upostgres -c 'drop table beer'

将我们的备份(存储在主机上)还原到Postgres容器中。

注意: 使用“ exec -i” 而不是 “ -it”,否则将出现“输入设备不是TTY”错误。

$ docker exec -i $(docker-compose ps -q postgres9 ) psql -Upostgres < backup.sql

列出表以验证还原是否有效:

$ docker exec -it $(docker-compose ps -q postgres9 ) psql -Upostgres -c 'z'   Access privilegesSchema |   Name    | Type  | Access privileges | Column access privileges --------+-----------+-------+-------------------+--------------------------public | beer      | table |        |

总结起来,我们已经验证了可以启动数据库,重新启动后数据仍然存在,并且可以从主机将备份还原到该数据库中。

谢谢托马斯!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378864.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号