返回
在 Docker 中构建 MGR:可靠数据库集群的快速入门指南
闲谈
2023-12-28 14:05:16
众所周知,Docker 是一个开源的应用程序容器引擎,允许您在隔离的沙箱中运行应用程序。它使您可以轻松地在不同的环境中部署和运行应用程序,而无需担心依赖项或配置问题。
MGR(管理复制)是一个 PostgreSQL 扩展,它允许您将多个 PostgreSQL 实例复制到一个集群中。这使得您可以轻松地扩展您的数据库,并提高其可用性和可靠性。
在 Docker 中构建 MGR 集群
在 Docker 中构建 MGR 集群非常简单。首先,您需要安装 Docker 和 PostgreSQL。然后,您可以使用以下步骤构建 MGR 集群:
- 拉取 GreatSQL Docker 镜像:
docker pull greatsql/greatsql
- 创建一个新的 Docker 网络:
docker network create mgr-net
- 运行 GreatSQL 主节点容器:
docker run -d --name mgr-primary -p 5432:5432 --network mgr-net greatsql/greatsql
- 运行 GreatSQL 从节点容器:
docker run -d --name mgr-replica1 -p 5433:5432 --network mgr-net greatsql/greatsql
- 初始化 MGR 集群:
docker exec -it mgr-primary bash
# 进入GreatSQL容器
gosu postgres postgres
# 初始化MGR集群
mgr_init --master-host=mgr-primary --master-port=5432
- 将 GreatSQL 从节点添加到 MGR 集群:
docker exec -it mgr-primary bash
# 进入GreatSQL容器
gosu postgres postgres
# 将GreatSQL从节点添加到MGR集群
mgr_add -h mgr-replica1 -p 5433
- 启动 MGR 集群:
docker exec -it mgr-primary bash
# 进入GreatSQL容器
gosu postgres postgres
# 启动MGR集群
mgr_start
- 测试 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 集群,您可以轻松地扩展您的数据库,并提高其可用性和可靠性。