禁用 Geo
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed
如果您在测试后想恢复到常规的 Linux 软件包安装设置,或者您遇到了灾难恢复 (Disaster Recovery) 的状况,并想暂时禁用 Geo,您可以使用这些说明来禁用您的 Geo 设置。
如果操作正确,禁用 Geo 后,其功能与一个活跃但没有 secondary 站点的 Geo 设置没有区别。
要禁用 Geo,请按以下步骤操作:
- 移除所有 secondary Geo 站点。
- 从 UI 中移除 primary 站点。
- 移除 secondary 复制槽。
- 移除 Geo 相关配置。
- (可选)将 PostgreSQL 设置恢复为使用密码并监听 IP 地址。
移除所有 secondary Geo 站点
要禁用 Geo,您需要首先移除所有的 secondary Geo 站点,这意味着这些站点上将不再进行复制。您可以按照我们的文档 移除您的 secondary Geo 站点 进行操作。
如果您希望继续使用的当前站点是一个 secondary 站点,您需要先将其提升为 primary 站点。您可以使用我们关于 如何提升 secondary 站点 的步骤来完成此操作。
从 UI 中移除 primary 站点
要移除 primary 站点:
- 移除所有 secondary Geo 站点
- 在左侧边栏的底部,选择 管理员。
- 选择 Geo > 节点。
- 为 primary 节点选择 移除。
- 当提示出现时,选择 移除 进行确认。
移除 secondary 复制槽
要移除 secondary 复制槽,请在您的 primary Geo 节点上,在 PostgreSQL 控制台 (sudo gitlab-psql) 中运行以下查询之一:
-
如果您已经有一个 PostgreSQL 集群,请按名称删除单个复制槽,以防止从同一集群中移除您的 secondary 数据库。您可以使用以下命令获取所有名称,然后逐个删除每个复制槽:
SELECT slot_name, slot_type, active FROM pg_replication_slots; -- view present replication slots SELECT pg_drop_replication_slot('slot_name'); -- where slot_name is the one expected from the previous command -
要移除所有 secondary 复制槽:
SELECT pg_drop_replication_slot(slot_name) FROM pg_replication_slots;
移除 Geo 相关配置
-
对于您 primary Geo 站点上的每个节点,请通过 SSH 登录该节点并以 root 用户身份登录:
sudo -i -
编辑
/etc/gitlab/gitlab.rb文件,通过移除任何启用了geo_primary_role的行来删除 Geo 相关配置:## In pre-11.5 documentation, the role was enabled as follows. Remove this line. geo_primary_role['enable'] = true ## In 11.5+ documentation, the role was enabled as follows. Remove this line. roles ['geo_primary_role'] -
进行这些更改后,重新配置 GitLab 以使更改生效。
(可选)将 PostgreSQL 设置恢复为使用密码并监听 IP 地址
如果您想移除 PostgreSQL 特定设置并恢复为默认设置(改用 socket),可以安全地从 /etc/gitlab/gitlab.rb 文件中删除以下几行:
postgresql['sql_user_password'] = '...'
gitlab_rails['db_password'] = '...'
postgresql['listen_address'] = '...'
postgresql['md5_auth_cidr_addresses'] = ['...', '...']