Help us learn about your current experience with the documentation. Take the survey.

禁用 Geo

  • Tier: Premium, Ultimate
  • Offering: GitLab Self-Managed

如果您在测试后想恢复到常规的 Linux 软件包安装设置,或者您遇到了灾难恢复 (Disaster Recovery) 的状况,并想暂时禁用 Geo,您可以使用这些说明来禁用您的 Geo 设置。

如果操作正确,禁用 Geo 后,其功能与一个活跃但没有 secondary 站点的 Geo 设置没有区别。

要禁用 Geo,请按以下步骤操作:

  1. 移除所有 secondary Geo 站点
  2. 从 UI 中移除 primary 站点
  3. 移除 secondary 复制槽
  4. 移除 Geo 相关配置
  5. (可选)将 PostgreSQL 设置恢复为使用密码并监听 IP 地址

移除所有 secondary Geo 站点

要禁用 Geo,您需要首先移除所有的 secondary Geo 站点,这意味着这些站点上将不再进行复制。您可以按照我们的文档 移除您的 secondary Geo 站点 进行操作。

如果您希望继续使用的当前站点是一个 secondary 站点,您需要先将其提升为 primary 站点。您可以使用我们关于 如何提升 secondary 站点 的步骤来完成此操作。

从 UI 中移除 primary 站点

要移除 primary 站点:

  1. 移除所有 secondary Geo 站点
  2. 在左侧边栏的底部,选择 管理员
  3. 选择 Geo > 节点
  4. primary 节点选择 移除
  5. 当提示出现时,选择 移除 进行确认。

移除 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 相关配置

  1. 对于您 primary Geo 站点上的每个节点,请通过 SSH 登录该节点并以 root 用户身份登录:

    sudo -i
  2. 编辑 /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']
  3. 进行这些更改后,重新配置 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'] =  ['...', '...']