Docker部署postgresql-11以及主从配置

Docker部署postgresql-11以及主从配置

  • 一. Docker部署postgresql-11(简单版)
      • 1. 拉取镜像
      • 2.启动命令脚本
      • 3.给脚本写权限:
      • 4.执行启动脚本:
      • 5.查看日志,启动报错:
      • 6.在容器中安装中文编码:
      • 7.重启动docker容器:
  • 二. 【最全】从Docker中运行postgresql数据库
    • 一. Docker 中使用postgresql
      • 1. Linux 下内核版本
      • 2. docker , docker-compose 版本
      • 3. 根据自己的系统配置拉取相应的official images
      • 4. 安装步骤(docker 不熟悉的自觉点击[docker docs](https://docs.docker.com/get-started/overview/))
        • 1. 拉取镜像
      • 2. 创建并进入 pg 目录
      • 3. `docker-compose.yml` 内容如下
      • 4. 启动数据库容器
      • 5. 进入数据库
    • 二. 从小白到大佬的 `pgsql` 学习-基础语法
      • 一. 导入数据
        • 1. 搭建数据库
        • 2. 导入数据表
        • 3. 下载后将两个文件分别 docker cp 到postgresql 容器内
        • 4. 依次运行如下指令开始导入
        • 5. 遇到语法格式错误,去hub链接下,把原始内容复制下,粘贴在同文件中即可.
        • 6. 验证是否导入成功
      • 二. PostgreSQL 基础命令
        • 1. SELECT
          • 1. 普通查找
          • 2.如果想检索结果显示的好看些,可以使用\x , 再SELECT,退出的话再使用\x即可。
          • 3. 使用带有表达式的
        • 2. WHERE
          • 语法结构如下:
          • 举个例子
            • 1. where 子句和LIKE 混用
            • 2. where 子句和 BETWEEN 混用
            • 3. where 子句中使用不等运算符 (<>)运算符
        • 3. ORDER BY
          • 语法结构如下:
          • 一个小例子
            • 按照自定义排序规则排序 CASE
        • 4. FETCH
        • 5. LIMIT
        • 6. OFFSET
        • 7. DISTINCT
        • 8. 列别名
        • 9. 表别名
        • 10. IN
        • 11. BETWEEN
        • 12. LIKE 模糊
        • 13. IS NULL
        • 14. EXISTS
        • 15. ALL
        • 16. ANY
        • 17. GROUP BY 将结果集按照某个维度进行汇总
        • 18. HAVING
        • 19. 一次查询中生成多个维度的报表,三种实现
        • 20. JOIN
          • 1. 创建 student, student_score 两个表,并insert 三条数据,得到如下
          • 2. 左连接
          • 3. 右连接 和左连接相反, 不赘述~~~~~~~~~~~~
          • 4. 全连接
        • 21. 子查询
        • 22. CTE (后面再补,太陌生啦,哎)
        • 23. UNION
        • 24. INTERSECT
        • 25. EXCEPT
        • 26. INSERT
        • 27. INSERT ON CONFLICT
        • 28. UPDATE
        • 29. UPDATE FROM
        • 30. DELETE
        • 31. 清空表
        • 32. 简单学习一下json
    • 三. `postgresql`【数据库管理】用户权限、更改密码、数据备份、启动、停止、重启动数据库
      • 一 .数据库管理
        • 1. psql 命令
          • 1. 连接 数据库
          • 2. 远程连接数据库
        • 2. 列出数据库
        • 3. 复制数据库
          • 1. 从模板数据库复制数据库:
          • 2. 将某个数据库修改为模板数据库:
        • 4. 查看空间
        • 5. 列出表
        • 6. 复制表
        • 7. 备份和恢复
        • 8. EXPLAIN
        • 9. 重置密码
    • 四. 【干货! 最详细教程】`Dockerfile postgresql` 安装 `wal2json` 插件
      • 1、postgresql 版本安装
      • 2、wal2json 插件要求
      • 3、不使用docker-compose 的安装插件的情况下
      • 4、使用 docker-compose 安装插件的情况下
      • 5、自定义postgresql 配置文件 postgresql.conf
        • 1、找到postgresql 使用的配置文件路径
        • 2、修改 postgresql.conf 文件内容如下:
        • 3、修改`pg_hba.conf` 内容如下
      • 6、如何使用 wal2json 插件
        • 进入容器内, 分别开启两个终端,进入容器内
          • Terminal 1
          • Terminal2
      • 附上一个这次学习的小技能哈哈哈哈哈哈哈
        • 1、小技能1
        • 2、小技能2
        • 3、可以用这个命令看 当前正在使用的镜像 是如何 build 出来的。
  • 三. 基于docker容器的Postgresql 11主从复制搭建 及切换
      • 一. 要在Docker容器中搭建PostgreSQL 11主从复制,需要遵循以下步骤:
        • 1.创建网络
        • 2.启动主数据库(或者可以通过docker-compose文件启动)
        • 3.启动从数据库(或者可以通过docker-compose文件启动)
        • 4.配置主数据库
        • 5.重新启动主数据库以使更改生效
        • 6.在主数据库中创建数据库和表,并插入一些数据以进行测试
        • 7.配置从数据库
        • 8.重新启动从数据库以使更改生效
        • 9.在从数据库中执行以下命令以开始复制
        • 10.从数据库将开始复制主数据库中的数据
        • 11.在主数据库中进行更改并查看从数据库是否正确复制数据
      • 二. 要进行主从切换,需要遵循以下步骤:
        • 1.停止主数据库
        • 2.在从数据库中创建触发文件
        • 3.重新启动从数据库以使更改生效
        • 4.确认从数据库已经变成了主数据库
        • 5.这将返回 false,表示从数据库现在是主数据库,主数据库现在是不可用的。







一. Docker部署postgresql-11(简单版)

1. 拉取镜像

docker pull docker.io/postgres:11

2.启动命令脚本

vi startPostgres.sh

填入以下内容:

docker run -d --name postgresql-11 \
--restart=always  \
-v /postgresql/data:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=123456 \
-p 5432:5432 \
docker.io/postgres:11

3.给脚本写权限:

chmod +x startPostgres.sh

4.执行启动脚本:

./startPostgres.sh

5.查看日志,启动报错:

docker logs postgresql-11

2019-06-13 12:35:21.977 UTC [1] FATAL:  configuration file "/var/lib/postgresql/data/postgresql.conf" contains errors
2019-06-13 12:35:23.182 UTC [1] LOG:  invalid value for parameter "lc_messages": "zh_CN.UTF-8"
2019-06-13 12:35:23.182 UTC [1] LOG:  invalid value for parameter "lc_monetary": "zh_CN.UTF-8"
2019-06-13 12:35:23.182 UTC [1] LOG:  invalid value for parameter "lc_numeric": "zh_CN.UTF-8"
2019-06-13 12:35:23.182 UTC [1] LOG:  invalid value for parameter "lc_time": "zh_CN.UTF-8"

6.在容器中安装中文编码:

>>docker exec -it postgresql-11 /bin/bash
1、root@9a36f3d4c0e9:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"


 
2、debian下安装 locale 并设置 zh_CN.UTF-8
root@9a36f3d4c0e9:/# apt-get install locales
Reading package lists... Done
Building dependency tree
Reading state information... Done
locales is already the newest version (2.24-11+deb9u4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 
 
3、root@9a36f3d4c0e9:/# dpkg-reconfigure locales
Locales to be generated: 468
Default locale for the system environment: 3
 
Generating locales (this might take a while)...
  zh_CN.UTF-8... done
Generation complete.

7.重启动docker容器:

doker start postgresql-11










你可能感兴趣的:(运维,docker,postgresql,容器)