返回

在 Docker 中构建 MGR:可靠数据库集群的快速入门指南

闲谈

众所周知,Docker 是一个开源的应用程序容器引擎,允许您在隔离的沙箱中运行应用程序。它使您可以轻松地在不同的环境中部署和运行应用程序,而无需担心依赖项或配置问题。

MGR(管理复制)是一个 PostgreSQL 扩展,它允许您将多个 PostgreSQL 实例复制到一个集群中。这使得您可以轻松地扩展您的数据库,并提高其可用性和可靠性。

在 Docker 中构建 MGR 集群

在 Docker 中构建 MGR 集群非常简单。首先,您需要安装 Docker 和 PostgreSQL。然后,您可以使用以下步骤构建 MGR 集群:

  1. 拉取 GreatSQL Docker 镜像:
docker pull greatsql/greatsql
  1. 创建一个新的 Docker 网络:
docker network create mgr-net
  1. 运行 GreatSQL 主节点容器:
docker run -d --name mgr-primary -p 5432:5432 --network mgr-net greatsql/greatsql
  1. 运行 GreatSQL 从节点容器:
docker run -d --name mgr-replica1 -p 5433:5432 --network mgr-net greatsql/greatsql
  1. 初始化 MGR 集群:
docker exec -it mgr-primary bash

# 进入GreatSQL容器
gosu postgres postgres

# 初始化MGR集群
mgr_init --master-host=mgr-primary --master-port=5432
  1. 将 GreatSQL 从节点添加到 MGR 集群:
docker exec -it mgr-primary bash

# 进入GreatSQL容器
gosu postgres postgres

# 将GreatSQL从节点添加到MGR集群
mgr_add -h mgr-replica1 -p 5433
  1. 启动 MGR 集群:
docker exec -it mgr-primary bash

# 进入GreatSQL容器
gosu postgres postgres

# 启动MGR集群
mgr_start
  1. 测试 MGR 集群:
docker exec -it mgr-primary bash

# 进入GreatSQL容器
gosu postgres postgres

# 在主节点上创建表
CREATE TABLE test ( id SERIAL PRIMARY KEY, name VARCHAR(255) );

# 向主节点插入数据
INSERT INTO test (name) VALUES ('Hello, world!');

# 在从节点上查询数据
SELECT * FROM test;

如果查询结果显示 "Hello, world!",则表示您的 MGR 集群已成功构建并运行。

结论

MGR 集群是一种可靠且易于管理的数据库集群解决方案。通过在 Docker 中构建 MGR 集群,您可以轻松地扩展您的数据库,并提高其可用性和可靠性。